Could you try posting the layout you used which did not work, and what error it produced? Using your file (saved as data/truc.json) with the following snippet works perfectly on my side:
{{ range .Site.Data.truc.talk }}{{ .name }}{{ end }}
Amazing! If you take a closer look at the docs, it actually says $.Site and not $Site. $ is a reference to the main context (.) at the start of your template. So it’s basically making . still available in case you override it in your template (for example, in a range loop).
So $ being a dictionary (like the main context), you can access its values with the dot, like $.Site or $.Scratch.
You can find more infos about context in the docs.