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); }
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); } }
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); } } }
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); } } }
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); }
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); } }