Initial commit
This commit is contained in:
33
Language.module.fs
Normal file
33
Language.module.fs
Normal 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
|
||||
Reference in New Issue
Block a user