public TableDataPlatform[] platforms; //these overwrite certain keys in the string table

            public Dictionary <string, LocalizeData> Generate()
            {
                if (!file)
                {
                    return(new Dictionary <string, LocalizeData>());
                }

                List <LocalizeJSON.Entry> tableEntries = JSONList <LocalizeJSON.Entry> .FromJSON(file.text);

                var entries = new Dictionary <string, LocalizeData>(tableEntries.Count);

                foreach (var entry in tableEntries)
                {
                    entries.Add(entry.key, new LocalizeData(entry.text, entry.param));
                }

                //append platform specific entries
                if (platforms != null)
                {
                    TableDataPlatform platform = null;
                    foreach (TableDataPlatform platformDat in platforms)
                    {
                        if (platformDat.platform == Application.platform)
                        {
                            platform = platformDat;
                            break;
                        }
                    }

                    //override entries based on platform
                    if (platform != null && platform.file)
                    {
                        var platformEntries = JSONList <LocalizeJSON.Entry> .FromJSON(platform.file.text);

                        foreach (var platformEntry in platformEntries)
                        {
                            LocalizeData dat;
                            if (entries.TryGetValue(platformEntry.key, out dat))
                            {
                                dat.text = platformEntry.text;
                                if (platformEntry.param != null && platformEntry.param.Length > 0)
                                {
                                    dat.param = platformEntry.param;
                                }

                                entries[platformEntry.key] = dat;
                            }
                            else
                            {
                                entries.Add(platformEntry.key, new LocalizeData(platformEntry.text, platformEntry.param));
                            }
                        }
                    }
                }

                return(entries);
            }
Beispiel #2
0
        void LoadCurrentPlatform(TableDataPlatform[] platforms, Dictionary <string, Data> table)
        {
            if (platforms == null)
            {
                return;
            }

            //append platform specific entries
            TableDataPlatform platform = null;

            foreach (TableDataPlatform platformDat in platforms)
            {
                if (platformDat.platform == Application.platform)
                {
                    platform = platformDat;
                    break;
                }
            }

            //override entries based on platform
            if (platform != null)
            {
                List <Entry> platformEntries = fastJSON.JSON.ToObject <List <Entry> >(platform.file.text);

                foreach (Entry platformEntry in platformEntries)
                {
                    Data dat;
                    if (table.TryGetValue(platformEntry.key, out dat))
                    {
                        dat.text = platformEntry.text;
                        if (platformEntry.param != null)
                        {
                            dat.param = platformEntry.param;
                        }

                        table[platformEntry.key] = dat;
                    }
                    else
                    {
                        table.Add(platformEntry.key, new Data(platformEntry.text, platformEntry.param));
                    }
                }
            }
        }
Beispiel #3
0
            public void Generate(string json, Dictionary <string, Data> baseTable)
            {
                if (mEntries != null)
                {
                    return;
                }

                List <Entry> tableEntries = EntryList.FromJSON(json);

                mEntries = new Dictionary <string, Data>(tableEntries.Count);

                foreach (Entry entry in tableEntries)
                {
                    string[] parms = null;

                    //if no params, grab from base
                    if (entry.param == null && baseTable != null)
                    {
                        Data dat;
                        if (baseTable.TryGetValue(entry.key, out dat))
                        {
                            parms = dat.param;
                        }
                    }
                    else
                    {
                        parms = entry.param;
                    }

                    mEntries.Add(entry.key, new Data(entry.text, parms));
                }

                //append platform specific entries
                if (platforms != null)
                {
                    TableDataPlatform platform = null;
                    foreach (TableDataPlatform platformDat in platforms)
                    {
                        if (platformDat.platform == Application.platform)
                        {
                            platform = platformDat;
                            break;
                        }
                    }

                    //override entries based on platform
                    if (platform != null)
                    {
                        List <Entry> platformEntries = EntryList.FromJSON(platform.file.text);

                        foreach (Entry platformEntry in platformEntries)
                        {
                            Data dat;
                            if (mEntries.TryGetValue(platformEntry.key, out dat))
                            {
                                dat.text = platformEntry.text;
                                if (platformEntry.param != null)
                                {
                                    dat.param = platformEntry.param;
                                }

                                mEntries[platformEntry.key] = dat;
                            }
                            else
                            {
                                mEntries.Add(platformEntry.key, new Data(platformEntry.text, platformEntry.param));
                            }
                        }
                    }
                }
            }