What is the best way to have data work across multilingual sites?

Currently I’m using what I had found in this support area but it was listed as A way to do multilingual data. Wondering if there is a better way due to an increasing number of folders.

Current Code example:

{{with index .Site.Data.events .Site.Language.Lang}}

and a folder structure as so


I have almost the same structure,
But instead of a file (en.yml) I have a folder.
That’s what drive the Homepage.


For the other pages I use the content folder :
And you can specify the content folder for each supported languages :

config :

languageName = "Fr"
languageCode = "fr-fr"
contentDir = "content/fr"

Folder structure :


Then in the content folder there is no need to deal with the language variable (.Site.Language.Lang).

I do the same with content but I also have my config also broken out into


Due to the sheer number of languages. The problem is data being used on more than one page but also needing to be used across multiple languages. Digging through the stacks got me to this article:

I should probably refactor to set my data folders by language first.

The one alternative I’ve actually been looking at is perhaps using another instance of Hugo so that I can use posts (which support multilingual by default) as an API similar to what @regis used here: Build a JSON API With Hugo’s Custom Output Formats

The only problem with this would be having to maintain two repos not one and it simply isn’t that large a volume of data.