.NET Fiddle

CSharp · Console

/Program.cs

using System;
using System.Collections.Generic;
using System.Linq;

using Newtonsoft.Json;
					
class Program
{
    static void Main(string[] args)
    {
		string input = @"{
	""play_classic"": [
		{ ""english"": ""PLAY CLASSIC"" },
		{ ""spanish"": ""JUEGO CLÁSICO"" },
		{ ""portuguese"": ""JUEGO CLÁSICO"" },
		{ ""russian"": ""IGRAT' V KLASSICHESKUYU"" }
	],
	""play"": [
		{ ""english"": ""PLAY"" },
		{ ""spanish"": ""JUEGO"" },
		{ ""portuguese"": ""JUEGO"" },
		{ ""russian"": ""IGRAT'"" }
	],
	""classic"": [
		{ ""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.Key, 
										x=> x.Value.SelectMany(trd=> trd)
										.ToDictionary(kvp=> kvp.Key, kvp=> kvp.Value)
									);


		// given the button play_classic and the langue "portuguese"
		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}]") ;
			}
			else
			{				
				Console.WriteLine($"Cant find tanslation for button : [{buttonName}] in [{language}]") ;
			}
		}
		else{ 
			Console.WriteLine($"Cant find tanslation for button : [{buttonName}]");
		}
		
		//Direct access:
		Console.WriteLine($"Direct access : [{resultFlattern[buttonName][language]}]"); 
		
			
    }
}
;