I think the best solution depends on the size of your company, who does the writing/translation, and how many languages you want to support. We will only ever need to support 2 languages, so I think we’ll go with compile-time translations like @gampleman, but just write them directly as Elm files.
I’m thinking of having two folders like:
And then the build script would rename one of the folders to
Text and build, and then rename the other one to
Text and build. If the languages don’t match, you’ll get an error at build time.
For development you could have a symlink like
Text -> Swedish
Btw, all phrases wouldn’t need to be simple strings either, you could have functions like:
pluralFruit : Int -> Fruit -> String
pluralFruit count frut =
case fruit of
String.fromInt count ++ " banan" ++ (if count == 1 then "" else "er")
Like string templates but type safe