using System.Collections.Generic;
static void Main(string[] args)
{ ""english"": ""PLAY CLASSIC"" },
{ ""spanish"": ""JUEGO CLÁSICO"" },
{ ""portuguese"": ""JUEGO CLÁSICO"" },
{ ""russian"": ""IGRAT' V KLASSICHESKUYU"" }
{ ""english"": ""PLAY"" },
{ ""spanish"": ""JUEGO"" },
{ ""portuguese"": ""JUEGO"" },
{ ""russian"": ""IGRAT'"" }
{ ""english"": ""CLASSIC"" },
{ ""spanish"": ""CLÁSICO"" },
{ ""portuguese"": ""CLÁSICO"" },
{ ""russian"": ""KLASSICHESKUYU"" }
var resultRaw = JsonConvert.DeserializeObject<Dictionary<string, List<Dictionary<string, string>>>>(input);
var resultFlattern = resultRaw.ToDictionary(
x=> x.Value.SelectMany(trd=> trd)
.ToDictionary(kvp=> kvp.Key, kvp=> kvp.Value)
var buttonName="play_classic"; var language= "portuguese";
if(resultFlattern.TryGetValue(buttonName, out Dictionary<string, string> allTrads))
if(allTrads.TryGetValue(language, out string traduction)){
Console.WriteLine($"Traduction for button [{buttonName}] in [{language}] is : [{traduction}]") ;
Console.WriteLine($"Cant find tanslation for button : [{buttonName}] in [{language}]") ;
Console.WriteLine($"Cant find tanslation for button : [{buttonName}]");
Console.WriteLine($"Direct access : [{resultFlattern[buttonName][language]}]");