There is no reason not to share the Language enum between backend and frontend. With this change this is possible. You can have something like this in your server:
const
defaultLanguage = Language.enUS
proc parseLanguage(s: string): Language =
let i = binarySearch(languageToCode, s)
if i >= 0: result = Language(i)
else: result = defaultLanguage
proc getLanguage(url: Uri): Language =
var lang = ""
for key, val in decodeQuery(url.query):
if key == "lang":
lang = val
break
result = parseLanguage(lang)
There is no reason not to share the Language enum between backend and frontend. With this change this is possible. You can have something like this in your server:
The lang=key is send from the frontend like this: