diff --git a/src/domain/LoginViewModel.js b/src/domain/LoginViewModel.js index 11d43dc9..544bb980 100644 --- a/src/domain/LoginViewModel.js +++ b/src/domain/LoginViewModel.js @@ -10,9 +10,20 @@ export class LoginViewModel extends EventEmitter { this._loadViewModel = null; } - get usernamePlaceholder() { return "Username"; } - get passwordPlaceholder() { return "Password"; } - get hsPlaceholder() { return "Your matrix homeserver"; } + // TODO: this will need to support binding + // if any of the expr is a function, assume the function is a binding, and return a binding function ourselves + i18n(parts, ...expr) { + // just concat for now + let result = ""; + for (let i = 0; i < parts.length; ++i) { + result = result + parts[i]; + if (i < expr.length) { + result = result + expr[i]; + } + } + return result; + } + get defaultHomeServer() { return this._defaultHomeServer; } get loadViewModel() {return this._loadViewModel; } diff --git a/src/ui/web/login/LoginView.js b/src/ui/web/login/LoginView.js index 6ba6459c..7baf707d 100644 --- a/src/ui/web/login/LoginView.js +++ b/src/ui/web/login/LoginView.js @@ -3,12 +3,12 @@ import {brawlGithubLink} from "./common.js"; export class LoginView extends TemplateView { render(t, vm) { - const username = t.input({type: "text", placeholder: vm.usernamePlaceholder, disabled}); - const password = t.input({type: "password", placeholder: vm.passwordPlaceholder, disabled}); - const homeserver = t.input({type: "text", placeholder: vm.hsPlaceholder, value: vm.defaultHomeServer, disabled}); const disabled = vm => !!vm.loadViewModel; + const username = t.input({type: "text", placeholder: vm.i18n`Username`, disabled}); + const password = t.input({type: "password", placeholder: vm.i18n`Password`, disabled}); + const homeserver = t.input({type: "text", placeholder: vm.i18n`Your matrix homeserver`, value: vm.defaultHomeServer, disabled}); return t.div({className: "LoginView form"}, [ - t.h1(["Log in to your homeserver"]), + t.h1([vm.i18n`Log in to your homeserver`]), t.if(vm => vm.error, t.createTemplate(t => t.div({className: "error"}, vm => vm.error))), t.div(username), t.div(password), @@ -16,8 +16,8 @@ export class LoginView extends TemplateView { t.div(t.button({ onClick: () => vm.login(username.value, password.value, homeserver.value), disabled - }, "Log In")), - t.div(t.button({onClick: () => vm.goBack(), disabled}, ["Pick an existing session"])), + }, vm.i18n`Log In`)), + t.div(t.button({onClick: () => vm.goBack(), disabled}, [vm.i18n`Pick an existing session`])), t.if(vm => vm.loadViewModel, vm => new SessionLoadView(vm.loadViewModel)), t.p(brawlGithubLink(t)) ]);