Initial commit

This commit is contained in:
2021-10-23 19:59:20 +10:00
commit ba4c9a7d7a
1851 changed files with 1250444 additions and 0 deletions

33
Language.module.fs Normal file
View File

@@ -0,0 +1,33 @@
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