public IEnumerable <(string code, ILanguageDictionary dictionary, TMP_FontAsset fontAsset)> ReadAll()
        {
            var names = Directory.EnumerateDirectories(LanguageFilePath.LanguageRootDirectoryPath).Select(Path.GetFileName);    //GetFileNameで末端のディレクトリ名を取得している.

            return(names.Where(name => File.Exists(LanguageFilePath.GetWordsJsonFilePath(name)))
                   .Select(name => (code: name, dictionary: ReadDictionary(name), fontAsset: ReadFont(name)))
                   .Where(dictionary => dictionary.dictionary != null));
        }
        ILanguageDictionary ReadDictionary(string languageCode)
        {
            string json = string.Empty;

            using (StreamReader streamReader = new StreamReader(LanguageFilePath.GetWordsJsonFilePath(languageCode)))
            {
                json = streamReader.ReadToEnd();
            }

            var dictionary = JsonSerializer.Deserialize <Dictionary <string, string> >(json);

            return(factory.Create(dictionary));
        }