Files
DredgePos/Language.module.fs
2022-01-02 15:17:36 +10:00

33 lines
996 B
Forth

module language
open System.IO
open System.Text.RegularExpressions
open Thoth.Json.Net
open FSharp.Data
let defaultLanguage = "english"
let languageFile = "wwwroot/languages/" + defaultLanguage + "/main.json"
let languageData = languageFile |> File.ReadAllText
//Returns an array of all language variables as defined in the the language file.
let languageVars =
languageData
|> Decode.unsafeFromString (Decode.keyValuePairs Decode.string)
|> Map.ofList
//Gets a value of a language variable
let get var =
if languageVars.ContainsKey var then
languageVars[var]
else
"Missing language variable: " + var
let getAndReplace languageVar replacements =
let langString = get languageVar
replacements
|> List.mapi (fun index string
-> index + 1, string)
|> List.fold (fun (result: string) (index, string)
-> result.Replace($"[{index}]", string)
) langString