示例#1
0
        public static void SetMessageTranslation(TranslationWrapper translation)
        {
            DefineLanguage(translation.NewLang);
            MessageTranslation trl = new MessageTranslation();

            trl.Message      = translation.Component;
            trl.MessageGroup = translation.Form;
            trl.Language     = translation.NewLang;
            trl.Translation  = translation.Translation;
            trl.Translated   = true;
            Crud.Put(trl);
        }
示例#2
0
        public Dictionary <int, MessageTranslation> LoadMessagesTranslations()
        {
            Dictionary <int, MessageTranslation> result = null;

            try
            {
                if (_Connection.State != System.Data.ConnectionState.Open)
                {
                    //I raise an error as there is no connection to the database
                    throw new Exception("There is no connection to the database");
                }

                String sql = "SELECT * FROM MessagesTranslations;";

                SQLiteCommand    command = new SQLiteCommand(sql, _Connection);
                SQLiteDataReader reader  = command.ExecuteReader();

                if (reader.HasRows)
                {
                    result = new Dictionary <int, MessageTranslation>();

                    while (reader.Read())
                    {
                        MessageTranslation msg = new MessageTranslation();

                        if (reader["id"] != DBNull.Value)
                        {
                            msg.ID = reader.GetInt32(0);
                        }

                        if (reader["english"] != DBNull.Value)
                        {
                            msg.English = reader.GetString(1);
                        }

                        if (reader["italian"] != DBNull.Value)
                        {
                            msg.Italian = reader.GetString(2);
                        }

                        result.Add(msg.ID, msg);
                    }
                }

                return(result);
            }
            catch (Exception)
            {
                return(null);
            }
        }
示例#3
0
        public static MessageTranslation Translate(string message, string language, string group = "*")
        {
            Logging.Log("Translate message '" + message + "' for messagegroup " + group + ", language=" + language, Logging.LogLevel.Debug);

            group    = group.ToUpper();
            language = language.ToLower();

            DefineLanguage(language);

            var session           = DataConnector.NHibernateConnector.OpenSession();
            MessageTranslation ft = session.CreateCriteria(typeof(MessageTranslation))
                                    .Add(Expression.Eq("Language", language))
                                    .Add(Expression.Eq("MessageGroup", group))
                                    .Add(Expression.Eq("Message", message))
                                    .UniqueResult <MessageTranslation>();

            if (!(string.IsNullOrEmpty(ft?.Translation)))
            {
                Logging.Log("Translation found: '" + ft.Translation + "'", Logging.LogLevel.Debug);
                return(ft);
            }
            else
            {
                Logging.Log("Translation not found, looking for English translation", Logging.LogLevel.Debug);
                MessageTranslation fte = session.CreateCriteria(typeof(MessageTranslation))
                                         .Add(Expression.Eq("Language", "en"))
                                         .Add(Expression.Eq("MessageGroup", group))
                                         .Add(Expression.Eq("Message", message))
                                         .UniqueResult <MessageTranslation>();
                if (!(string.IsNullOrEmpty(fte?.Translation)))
                {
                    Logging.Log("Translation found: '" + fte.Translation + "'", Logging.LogLevel.Debug);
                    return(fte);
                }
                else
                {
                    Logging.Log("Translation not found, creating new translation record", Logging.LogLevel.Debug);
                    ft = new MessageTranslation();
                    ft.MessageGroup = group;
                    ft.Message      = message;
                    ft.Language     = "en";
                    ft.Translation  = message;
                    ft.Translated   = false;
                    Crud.Add(ft);
                    Logging.Log("Translation record added", Logging.LogLevel.Debug);
                    return(ft);
                }
            }
        }
示例#4
0
 public void LoadMessage(long idMessage)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         dtoModuleMessagesContext context  = View.ContainerContext;
         MessageTranslation       tMessage = Service.GetMessageTranslation(idMessage);
         if (tMessage == null)
         {
             LoadUserMessages(View.ContainerContext, View.Pager.PageIndex, View.CurrentPageSize);
         }
         else
         {
             View.DisplayMessagePreview(tMessage.LanguageCode, new DomainModel.Languages.ItemObjectTranslation()
             {
                 Body = tMessage.Body, Subject = tMessage.Subject, IsHtml = tMessage.Message.MailSettings.IsBodyHtml
             }, tMessage.Message.MailSettings, context.IdCommunity, context.ModuleObject);
         }
     }
 }
示例#5
0
        public static IList <TranslationWrapper> GetMessageTranslationsByForm(string messageGroup, string language, bool onlyNotTranslated)
        {
            IList <TranslationWrapper> resultList = new List <TranslationWrapper>();

            using (var session = DataConnector.NHibernateConnector.OpenSession())
            {
                IList <MessageTranslation> fte = session.CreateCriteria(typeof(MessageTranslation))
                                                 .Add(Expression.Eq("Language", "en"))
                                                 .Add(Expression.InsensitiveLike("MessageGroup", "%" + messageGroup + "%"))
                                                 .List <MessageTranslation>();

                foreach (MessageTranslation tr in fte)
                {
                    MessageTranslation ftt = session.CreateCriteria(typeof(MessageTranslation))
                                             .Add(Expression.Eq("Language", language))
                                             .Add(Expression.Eq("MessageGroup", tr.MessageGroup))
                                             .Add(Expression.Eq("Message", tr.Message))
                                             .UniqueResult <MessageTranslation>();
                    if ((onlyNotTranslated && string.IsNullOrEmpty(ftt?.Translation)) || !onlyNotTranslated)
                    {
                        TranslationWrapper tw = new TranslationWrapper();
                        tw.Form        = tr.MessageGroup;
                        tw.Component   = tr.Message;
                        tw.English     = tr.Translation;
                        tw.NewLang     = language;
                        tw.Translation = "";
                        if (!(string.IsNullOrEmpty(ftt?.Translation)))
                        {
                            tw.Translation = ftt.Translation;
                        }
                        resultList.Add(tw);
                    }
                }
            }
            return(resultList);
        }
示例#6
0
        public static void DefineLanguage(string language)
        {
            var session = DataConnector.NHibernateConnector.OpenSession();

            Logging.Log("Checking if language '" + language + "' is defined in MessageTranslation", Logging.LogLevel.Debug);

            MessageTranslation trl = session.CreateCriteria(typeof(MessageTranslation))
                                     .Add(Expression.Eq("MessageGroup", "*"))
                                     .Add(Expression.Eq("Message", "_name"))
                                     .Add(Expression.Eq("Language", language))
                                     .UniqueResult <MessageTranslation>();

            if (trl == null)
            {
                Logging.Log("Language '" + language + "' is not defined, creating record in MessageTranslation", Logging.LogLevel.Debug);
                trl = new MessageTranslation();
                trl.MessageGroup = "*";
                trl.Message      = "_name";
                trl.Language     = language;
                trl.Translation  = language;
                Crud.Add(trl);
                Logging.Log("Record for language '" + language + "' is created in MessageTranslation", Logging.LogLevel.Debug);
            }
        }