Example #1
0
        public void OnCommand(GameClient client, string[] args)
        {
            if (IsSpammingCommand(client.Player, "translate"))
                return;

            if (args.Length < 2)
            {
                DisplaySyntax(client);
                return;
            }

            switch (args[1].ToLower())
            {
                #region add
                case "add":
                    {
                        if (client.Account.PrivLevel != (uint)ePrivLevel.Player)
                        {
                            if (args.Length < 5)
                            {
                                DisplayMessage(client, "[Language-Manager] Usage: '/translate add [Language] [TranslationId] [Text]'");
                                return;
                            }

                            LanguageDataObject translation = LanguageMgr.GetLanguageDataObject(args[2].ToUpper(), args[3], LanguageDataObject.eTranslationIdentifier.eSystem);
                            if (translation != null)
                            {
                                DisplayMessage(client, "[Language-Manager] This translation id is already in use by the given language! ( Language <" + args[2].ToUpper() + "> - TranslationId <" + args[3] + "> )");
                                return;
                            }

                            translation = new DBLanguageSystem();
                            ((DBLanguageSystem)translation).TranslationId = args[3];
                            ((DBLanguageSystem)translation).Text = args[4];
                            ((DBLanguageSystem)translation).Language = args[2];

                            GameServer.Database.AddObject(translation);
                            LanguageMgr.RegisterLanguageDataObject(translation);
                            DisplayMessage(client, "[Language-Manager] Translation successfully added! (Language <" + args[2].ToUpper() + "> - TranslationId <" + args[3] + "> )");
                            return;
                        }

                        return;
                    }
                #endregion add

                #region debug
                case "debug":
                    {
                        bool debug = client.Player.TempProperties.getProperty("LANGUAGEMGR-DEBUG", false);
                        debug = !debug;
                        client.Player.TempProperties.setProperty("LANGUAGEMGR-DEBUG", debug);
                        DisplayMessage(client, "[Language-Manager] Debug mode: " + (debug ? "ON" : "OFF"));
                        return;
                    }
                #endregion debug

                #region memadd
                case "memadd":
                    {
                        // This sub command adds a new language object to your temp properties which will "pre save" the given translation id
                        // and language. Use this sub command if the translation id or text of your new translation requires more room
                        // as the DAoC chat allows you to use in one line. Use the memsave sub command to add a text to this language object
                        // and to save it into the database - or use "memclear" to remove the language object from your temp properties.

                        if (args.Length < 4)
                            DisplayMessage(client, "[Language-Manager] Usage: '/translate memadd [Language] [TranslationId]'");
                        else
                        {
                            LanguageDataObject lngObj = (LanguageDataObject)client.Player.TempProperties.getProperty<object>(LANGUAGEMGR_MEM_LNG_OBJ, null);

                            if (lngObj != null)
                                DisplayMessage(client, "[Language-Manager] Can't add language object, there is already another one!");
                            else
                            {
                                lngObj = LanguageMgr.GetLanguageDataObject(args[2].ToUpper(), args[3], LanguageDataObject.eTranslationIdentifier.eSystem);

                                if (lngObj != null)
                                    DisplayMessage(client, "[Language-Manager] The combination of the given TranslationId <" + args[3] + "> and Language <" + args[2].ToUpper() + "> is already in use!");
                                else
                                {
                                    lngObj = new DBLanguageSystem();
                                    ((DBLanguageSystem)lngObj).TranslationId = args[3];
                                    ((DBLanguageSystem)lngObj).Language = args[2];

                                    client.Player.TempProperties.setProperty(LANGUAGEMGR_MEM_LNG_OBJ, lngObj);
                                    DisplayMessage(client, "[Language-Manager] Language object successfully added to your temporary properties! ( Language <" + args[2].ToUpper() + "> TranslationId <" + args[3] + "> )");
                                }
                            }
                        }

                        return;
                    }
                #endregion memadd

                #region memclear
                case "memclear":
                    {
                        // Removes the language object from your temp properties you've previously added with the "memadd" sub command.
                        LanguageDataObject lngObj = (LanguageDataObject)client.Player.TempProperties.getProperty<object>(LANGUAGEMGR_MEM_LNG_OBJ, null);

                        if (lngObj == null)
                            DisplayMessage(client, "[Language-Manager] No language object found.");
                        else
                        {
                            client.Player.TempProperties.removeProperty(LANGUAGEMGR_MEM_LNG_OBJ);
                            DisplayMessage(client, "[Language-Manager] Language object successfully removed.");
                        }

                        return;
                    }
                #endregion memclear

                #region memsave
                case "memsave":
                    {
                        // See "memadd" sub command for a description.
                        if (args.Length < 3)
                            DisplayMessage(client, "[Language-Manager] Usage: '/translate memsave [Text]'");
                        else
                        {
                            LanguageDataObject lngObj = (LanguageDataObject)client.Player.TempProperties.getProperty<object>(LANGUAGEMGR_MEM_LNG_OBJ, null);

                            if (lngObj == null)
                                DisplayMessage(client, "[Language-Manager] No language object found.");
                            else
                            {
                                if (args.Length > 3)
                                    ((DBLanguageSystem)lngObj).Text = string.Join(" ", args, 2, args.Length - 2);
                                else
                                    ((DBLanguageSystem)lngObj).Text = args[2];

                                if (!LanguageMgr.RegisterLanguageDataObject(lngObj))
                                    DisplayMessage(client, "[Language-Manager] Can't register language object in LanguageMgr, there is already another one!");
                                else
                                {
                                    GameServer.Database.AddObject(lngObj);
                                    client.Player.TempProperties.removeProperty(LANGUAGEMGR_MEM_LNG_OBJ);
                                    DisplayMessage(client, "[Language-Manager] Translation successfully added into the database and registered in LanguageMgr.");
                                }
                            }
                        }

                        return;
                    }
                #endregion memsave

                #region memshow
                case "memshow":
                    {
                        LanguageDataObject lngObj = (LanguageDataObject)client.Player.TempProperties.getProperty<object>(LANGUAGEMGR_MEM_LNG_OBJ, null);

                        if (lngObj == null)
                            DisplayMessage(client, "[Language-Manager] No language object found.");
                        else
                            DisplayMessage(client, "[Language-Manager] Language object info: Language <" + lngObj.Language + "> TranslationId <" + lngObj.TranslationId + ">");

                        return;
                    }
                #endregion memshow

                #region refresh
                case "refresh":
                    {
                        if (args.Length < 5)
                            DisplayMessage(client, "[Language-Manager] Usage: '/translate refresh [Language] [TranslationId] [Text]'");
                        else
                        {
                            LanguageDataObject lngObj = LanguageMgr.GetLanguageDataObject(args[2].ToUpper(), args[3], LanguageDataObject.eTranslationIdentifier.eSystem);

                            if (lngObj == null)
                                DisplayMessage(client, "[Language-Manager] Can't find TranslationId <" + args[3] + "> (Language <" + args[2].ToUpper() + "> !");
                            else
                            {
                                ((DBLanguageSystem)lngObj).Text = args[3];
                                GameServer.Database.SaveObject(lngObj);
                                DisplayMessage(client, "[Language-Manager] TranslationId <" + args[3] + "> (Language: " + args[2].ToUpper() + " ) successfully updated in database!");
                            }
                        }

                        return;
                    }
                #endregion refresh

                #region select
                case "select":
                    {
                        if (args.Length < 4)
                            DisplayMessage(client, "[Language-Manager] Usage: '/translate select [Language] [TranslationId]'");
                        else
                        {
                            LanguageDataObject lngObj = (LanguageDataObject)client.Player.TempProperties.getProperty<object>(LANGUAGEMGR_SEL_LNG_OBJ, null);

                            if (lngObj != null)
                            {
                                DisplayMessage(client, "[Language-Manager] You already have selected a language object! ( Language <" + ((DBLanguageSystem)lngObj).Language +
                                                       "> - TranslationId <" + ((DBLanguageSystem)lngObj).TranslationId + "> )");
                            }
                            else
                            {
                                lngObj = LanguageMgr.GetLanguageDataObject(args[2].ToUpper(), args[3], LanguageDataObject.eTranslationIdentifier.eSystem);

                                if (lngObj == null)
                                {
                                    DisplayMessage(client, "[Language-Manager] Can't find language object. ( Language <" + args[2].ToUpper() +
                                                           "> - TranslationId <" + args[3] + "> )");
                                }
                                else
                                {
                                    client.Player.TempProperties.setProperty(LANGUAGEMGR_SEL_LNG_OBJ, lngObj);
                                    DisplayMessage(client, "[Language-Manager] Language object found and added to your temporary properties! ( Language <" + args[2].ToUpper() +
                                                           "> - TranslationId <" + args[3] + "> )");
                                }
                            }
                        }

                        return;
                    }
                #endregion select

                #region selectclear
                case "selectclear":
                    {
                        // Removes the language object from your temp properties you've previously selected with the "select" sub command.
                        LanguageDataObject lngObj = (LanguageDataObject)client.Player.TempProperties.getProperty<object>(LANGUAGEMGR_SEL_LNG_OBJ, null);

                        if (lngObj == null)
                            DisplayMessage(client, "[Language-Manager] No language object selected!");
                        else
                        {
                            client.Player.TempProperties.removeProperty(LANGUAGEMGR_SEL_LNG_OBJ);
                            DisplayMessage(client, "[Language-Manager] Language object successfully removed from your temporary properties." +
                                                   "( Language <" + ((DBLanguageSystem)lngObj).Language +
                                                   "> - TranslationId <" + ((DBLanguageSystem)lngObj).TranslationId + "> )");
                        }

                        return;
                    }
                #endregion selectclear

                #region selectsave
                case "selectsave":
                    {
                        if (args.Length < 3)
                            DisplayMessage(client, "[Language-Manager] Usage: '/translate selectsave [Text]'");
                        else
                        {
                            LanguageDataObject lngObj = (LanguageDataObject)client.Player.TempProperties.getProperty<object>(LANGUAGEMGR_SEL_LNG_OBJ, null);

                            if (lngObj == null)
                                DisplayMessage(client, "[Language-Manager] No language object selected!");
                            else
                            {
                                if (args.Length > 3)
                                    ((DBLanguageSystem)lngObj).Text = string.Join(" ", args, 2, args.Length - 2);
                                else
                                    ((DBLanguageSystem)lngObj).Text = args[2];

                                GameServer.Database.SaveObject(lngObj);
                                client.Player.TempProperties.removeProperty(LANGUAGEMGR_SEL_LNG_OBJ);
                                DisplayMessage(client, "[Language-Manager] Language object successfully changed and saved in database." +
                                                       "( Language <" + ((DBLanguageSystem)lngObj).Language +
                                                       "> - TranslationId <" + ((DBLanguageSystem)lngObj).TranslationId +
                                                       "> - Text <" + ((DBLanguageSystem)lngObj).Text + "> )");
                            }
                        }

                        return;
                    }
                #endregion selectsave

                #region selectshow
                case "selectshow":
                    {
                        LanguageDataObject lngObj = (LanguageDataObject)client.Player.TempProperties.getProperty<object>(LANGUAGEMGR_SEL_LNG_OBJ, null);

                        if (lngObj == null)
                            DisplayMessage(client, "[Language-Manager] No language object selected!");
                        else
                            DisplayMessage(client, "[Language-Manager] Language object info: Language <" + lngObj.Language + "> - TranslationId <" + lngObj.TranslationId +
                                                   "> - Text <" + ((DBLanguageSystem)lngObj).Text + ">");
                        return;
                    }
                #endregion selectshow

                #region show
                case "show":
                    {
                        if (args.Length < 4)
                            DisplayMessage(client, "[Language-Manager] Usage: '/translate show [Language] [TranslationId]'");
                        else
                        {
                            LanguageDataObject lngObj = LanguageMgr.GetLanguageDataObject(args[2].ToUpper(), args[3], LanguageDataObject.eTranslationIdentifier.eSystem);

                            if (lngObj == null)
                                DisplayMessage(client, "[Language-Manager] Can't find language object. ( Language <" + args[2].ToUpper() +
                                                       "> - TranslationId <" + args[3] + "> )");
                            else
                                DisplayMessage(client, "[Language-Manager] " + ((DBLanguageSystem)lngObj).Text);
                        }

                        return;
                    }
                #endregion show

                #region showlist
                /*
                 * The code works fine, but DAoC does not support a such huge list.
                 * 
                 * case "showlist":
                    {
                        if (args.Length < 3)
                            DisplayMessage(client, "aaa");
                        else
                        {
                            #region showall
                            if (args[2].ToLower() == "showall")
                            {
                                IDictionary<string, IList<string>> idLangs = new Dictionary<string, IList<string>>();
                                List<string> languages = new List<string>();
                                languages.AddRange(LanguageMgr.Languages);
                                IList<string> data = new List<string>();

                                foreach (string language in LanguageMgr.Translations.Keys)
                                {
                                    if (!LanguageMgr.Translations[language].ContainsKey(LanguageDataObject.eTranslationIdentifier.eSystem))
                                        continue;

                                    data.Add("======== Language <" + language + "> ========\n\n");

                                    foreach (LanguageDataObject lngObj in LanguageMgr.Translations[language][LanguageDataObject.eTranslationIdentifier.eSystem])
                                    {
                                        data.Add("TranslationId: " + lngObj.TranslationId + "\nText: " + ((DBLanguageSystem)lngObj).Text + "\n\n");

                                        if (!idLangs.ContainsKey(lngObj.TranslationId))
                                        {
                                            IList<string> langs = new List<string>();
                                            langs.Add(lngObj.Language);
                                            idLangs.Add(lngObj.TranslationId, langs);
                                            continue;
                                        }

                                        if (!idLangs[lngObj.TranslationId].Contains(lngObj.Language))
                                            idLangs[lngObj.TranslationId].Add(lngObj.Language);

                                        continue;
                                    }
                                }

                                IDictionary<string, IList<string>> missingLanguageTranslations = new Dictionary<string, IList<string>>();

                                foreach (string translationId in idLangs.Keys)
                                {
                                    foreach (string language in languages)
                                    {
                                        if (idLangs[translationId].Contains(language))
                                            continue;

                                        if (!missingLanguageTranslations.ContainsKey(translationId))
                                        {
                                            IList<string> langs = new List<string>();
                                            langs.Add(language);
                                            missingLanguageTranslations.Add(translationId, langs);
                                            continue;
                                        }

                                        if (!missingLanguageTranslations[translationId].Contains(language))
                                            missingLanguageTranslations[translationId].Add(language);

                                        continue;
                                    }
                                }

                                if (missingLanguageTranslations.Count > 0)
                                {
                                    data.Add("======== Missing language translations ========\n\n");

                                    foreach (string translationId in missingLanguageTranslations.Keys)
                                    {
                                        string str = ("TranslationId: " + translationId + "\nLanguages: ");

                                        foreach (string language in missingLanguageTranslations[translationId])
                                            str += (language + ",");

                                        if (str[(str.Length - 1)] == ',')
                                            str = str.Remove(str.Length - 1);

                                        data.Add(str);
                                    }
                                }

                                client.Out.SendCustomTextWindow("[Language-Manager] Translations", data); // I wish you a merry christmas and a happy new year (2112)! :-)
                            }
                            #endregion  showall

                            #region language
                            else
                            {
                                if (!LanguageMgr.Languages.Contains(args[2].ToUpper()))
                                    DisplayMessage(client, "aaa");
                                else
                                {
                                    if (!LanguageMgr.Translations[args[2].ToUpper()].ContainsKey(LanguageDataObject.eTranslationIdentifier.eSystem))
                                        DisplayMessage(client, "aaa");
                                    else
                                    {
                                        IList<string> data = new List<string>();

                                        foreach (LanguageDataObject lngObj in LanguageMgr.Translations[args[2].ToUpper()][LanguageDataObject.eTranslationIdentifier.eSystem])
                                            data.Add("TranslationId: " + lngObj.TranslationId + "\nText: " + ((DBLanguageSystem)lngObj).Text + "\n\n");

                                        client.Out.SendCustomTextWindow("[Language-Manager] Language translations <" + args[2].ToUpper() + ">", data);
                                    }
                                }
                            }
                            #endregion language
                        }

                        return;
                    }*/
                #endregion showlist

                default:
                    {
                        DisplaySyntax(client);
                        return;
                    }
            }
        }
Example #2
0
        private static bool LoadTranslations()
        {
            #region Load system translations
            if (log.IsDebugEnabled)
                log.Info("[Language-Manager] Loading system sentences...");

            ArrayList fileSentences = new ArrayList();
            bool defaultLanguageDirectoryFound = false;
            bool defaultLanguageFilesFound = false;
            foreach (string langDir in Directory.GetDirectories(LangPath, "*", SearchOption.TopDirectoryOnly))
            {
                string language = (langDir.Substring(langDir.LastIndexOf(Path.DirectorySeparatorChar) + 1)).ToUpper();
                if (language != DefaultLanguage)
                {
                    if (language != "CU") // Ignore the custom language folder. This check should be removed in the future! (code written: may 2012)
                        fileSentences.AddRange(ReadLanguageDirectory(Path.Combine(LangPath, language), language));
                }
                else
                {
                    defaultLanguageDirectoryFound = true;
                    ArrayList sentences = ReadLanguageDirectory(Path.Combine(LangPath, language), language);

                    if (sentences.Count < 1)
                        break;
                    else
                    {
                        fileSentences.AddRange(sentences);
                        defaultLanguageFilesFound = true;
                    }
                }
            }

            if (!defaultLanguageDirectoryFound)
            {
                log.Error("Could not find default '" + DefaultLanguage + "' language directory, server can't start without it!");
                return false;
            }

            if (!defaultLanguageFilesFound)
            {
                log.Error("Default '" + DefaultLanguage + "' language files missing, server can't start without those files!");
                return false;
            }

            if (DOL.GS.ServerProperties.Properties.USE_DBLANGUAGE)
            {
                int newEntries = 0;
                int updatedEntries = 0;

                IList<DBLanguageSystem> dbos = GameServer.Database.SelectAllObjects<DBLanguageSystem>();

                if (GS.ServerProperties.Properties.UPDATE_EXISTING_DB_SYSTEM_SENTENCES_FROM_FILES)
                {
                    foreach (string[] sentence in fileSentences)
                    {
                        bool found = false;
                        foreach (DBLanguageSystem dbo in dbos)
                        {
                            if (dbo.TranslationId != sentence[ID])
                                continue;

                            if (dbo.Language != sentence[LANGUAGE])
                                continue;

                            if (dbo.Text != sentence[TEXT])
                            {
                                dbo.Text = sentence[TEXT];
                                GameServer.Database.SaveObject(dbo); // Please be sure to use the UTF-8 format for your language files, otherwise
                                // some database rows will be updated on each server start, because one char
                                // differs from the one within the database.
                                updatedEntries++;

                                if (log.IsWarnEnabled)
                                    log.Warn("[Language-Manager] Language <" + sentence[LANGUAGE] + "> TranslationId <" + dbo.TranslationId + "> updated in database!");
                            }

                            found = true;
                            break;
                        }

                        if (!found)
                        {
                            DBLanguageSystem dbo = new DBLanguageSystem();
                            dbo.TranslationId = sentence[ID];
                            dbo.Text = sentence[TEXT];
                            dbo.Language = sentence[LANGUAGE];

                            GameServer.Database.AddObject(dbo);
                            RegisterLanguageDataObject(dbo);
                            newEntries++;

                            if (log.IsWarnEnabled)
                                log.Warn("[Language-Manager] Language <" + dbo.Language + "> TranslationId <" + dbo.TranslationId + "> added into the database.");
                        }
                    }
                }
                else // Add missing translations.
                {
                    foreach (string[] sentence in fileSentences)
                    {
                        bool found = false;
                        foreach (DBLanguageSystem lngObj in dbos)
                        {
                            if (lngObj.TranslationId != sentence[ID])
                                continue;

                            if (lngObj.Language != sentence[LANGUAGE])
                                continue;

                            found = true;
                            break;
                        }

                        if (!found)
                        {
                            DBLanguageSystem dbo = new DBLanguageSystem();
                            dbo.TranslationId = sentence[ID];
                            dbo.Text = sentence[TEXT];
                            dbo.Language = sentence[LANGUAGE];

                            GameServer.Database.AddObject(dbo);
                            RegisterLanguageDataObject(dbo);
                            newEntries++;

                            if (log.IsWarnEnabled)
                                log.Warn("[Language-Manager] Language <" + dbo.Language + "> TranslationId <" + dbo.TranslationId + "> added into the database.");
                        }
                    }
                }

                // Register all DBLanguageSystem rows. Must be done in this way to
                // register ALL database rows. The reason for this is simple:
                //
                // If a user adds new rows into the database without also adding those
                // data into the language files, the above foreach loop just adds the
                // sentences which have been added in the language files.
                foreach (DBLanguageSystem dbo in dbos)
                    RegisterLanguageDataObject(dbo);

                if (newEntries > 0)
                {
                    if (log.IsWarnEnabled)
                        log.Warn("[Language-Manager] Added <" + newEntries + "> new entries into the Database.");
                }

                if (updatedEntries > 0)
                {
                    if (log.IsWarnEnabled)
                        log.Warn("[Language-Manager] Updated <" + updatedEntries + "> entries in Database.");
                }
            }
            else
            {
                foreach (string[] sentence in fileSentences)
                {
                    DBLanguageSystem obj = new DBLanguageSystem();
                    obj.TranslationId = sentence[ID];
                    obj.Text = sentence[TEXT];
                    obj.Language = sentence[LANGUAGE];
                    RegisterLanguageDataObject(obj);
                }
            }

            fileSentences = null;
            #endregion Load system translations

            #region Load object translations
            if (log.IsDebugEnabled)
                log.Info("[Language-Manager] Loading object translations...");

            IList<LanguageDataObject> lngObjs = new List<LanguageDataObject>();
            lngObjs.AddRange((IList<LanguageDataObject>)GameServer.Database.SelectAllObjects<DBLanguageArea>());
            lngObjs.AddRange((IList<LanguageDataObject>)GameServer.Database.SelectAllObjects<DBLanguageGameObject>());
            lngObjs.AddRange((IList<LanguageDataObject>)GameServer.Database.SelectAllObjects<DBLanguageNPC>());
            lngObjs.AddRange((IList<LanguageDataObject>)GameServer.Database.SelectAllObjects<DBLanguageZone>());

            foreach (LanguageDataObject lngObj in lngObjs)
                RegisterLanguageDataObject(lngObj);

            lngObjs = null;
            #endregion Load object translations
            return true;
        }
Example #3
0
        public void Update()
        {
            log.Info("Updating the LanguageSystem table (this can take a few minutes)...");

            if (GameServer.Database.GetObjectCount<DBLanguageSystem>() < 1 && ServerProperties.Properties.USE_DBLANGUAGE)
            {
                var objs = GameServer.Database.SelectAllObjects<language>();
                if (objs.Count > 0)
                {
                    List<DBLanguageSystem> lngObjs = new List<DBLanguageSystem>();

                    foreach (language obj in objs)
                    {
                        if (Util.IsEmpty(obj.TranslationID))
                            continue;

                        // This kind of row will later be readded by the LanguageMgr
                        // with it's updated values.
                        if (obj.TranslationID.Contains("System.LanguagesName."))
                            continue;

                        DBLanguageSystem lngObj = null;

                        if (!Util.IsEmpty(obj.EN))
                        {
                            if (!ListContainsObjectData(lngObjs, "EN", obj.TranslationID)) // Ignore duplicates
                            {
                                lngObj = new DBLanguageSystem();
                                lngObj.TranslationId = obj.TranslationID;
                                lngObj.Language = "EN";
                                lngObj.Text = obj.EN;
                                lngObj.Tag = obj.PackageID;
                                lngObjs.Add(lngObj);
                            }
                        }

                        if (!Util.IsEmpty(obj.DE))
                        {
                            if (!ListContainsObjectData(lngObjs, "DE", obj.TranslationID)) // Ignore duplicates
                            {
                                lngObj = new DBLanguageSystem();
                                lngObj.TranslationId = obj.TranslationID;
                                lngObj.Language = "DE";
                                lngObj.Text = obj.DE;
                                lngObj.Tag = obj.PackageID;
                                lngObjs.Add(lngObj);
                            }
                        }

                        if (!Util.IsEmpty(obj.FR))
                        {
                            if (!ListContainsObjectData(lngObjs, "FR", obj.TranslationID)) // Ignore duplicates
                            {
                                lngObj = new DBLanguageSystem();
                                lngObj.TranslationId = obj.TranslationID;
                                lngObj.Language = "FR";
                                lngObj.Text = obj.FR;
                                lngObj.Tag = obj.PackageID;
                                lngObjs.Add(lngObj);
                            }
                        }

                        if (!Util.IsEmpty(obj.IT))
                        {
                            if (!ListContainsObjectData(lngObjs, "IT", obj.TranslationID)) // Ignore duplicates
                            {
                                lngObj = new DBLanguageSystem();
                                lngObj.TranslationId = obj.TranslationID;
                                lngObj.Language = "IT";
                                lngObj.Text = obj.IT;
                                lngObj.Tag = obj.PackageID;
                                lngObjs.Add(lngObj);
                            }
                        }

                        // CU will be ignored!
                    }

                    foreach (DBLanguageSystem lngObj in lngObjs)
                    {
                        GameServer.Database.AddObject(lngObj);

                        if (log.IsWarnEnabled)
                            log.Warn("Moving sentence from 'language' to 'languagesystem'. ( Language <" + lngObj.Language +
                                     "> - TranslationId <" + lngObj.TranslationId + "> )");
                    }
                }
            }
        }