Exemple #1
0
        /// <summary>
        /// Retrieves the key on depends on the language
        /// </summary>
        /// <param name="language">"FR", "EN" or "ES"</param>
        /// <param name="key">Key of the label</param>
        /// <param name="parameters">list of parameters - null or empty if you want the label without parameters</param>
        /// <returns></returns>
        private string GetDefaultLabel(string language, string key, params object[] parameters)
        {
            if (!_defaults.ContainsKey(key.Trim()))
            {
                return(key.Trim());
            }

            LanguageLabel currentLabel = _defaults[key.Trim()];

            if (currentLabel == null)
            {
                return(key);
            }

            if (!currentLabel.Languages.ContainsKey(language.Trim()))
            {
                return(key);
            }

            if (parameters == null || parameters.Count() == 0)
            {
                return(currentLabel.Languages[language.Trim()]);
            }

            return(Interpolation(language, currentLabel.Languages[language.Trim()], parameters));
        }
Exemple #2
0
        /// <summary>
        /// Declare a new label into the multilingual dictionary (in the default dictionary)
        /// </summary>
        /// <param name="key"></param>
        /// <param name="FR"></param>
        /// <param name="EN"></param>
        /// <param name="comment"></param>
        private void DeclareDefaultLabel(string key, string FR, string EN, string comment)
        {
            if (key == null)
            {
                return;
            }

            LanguageLabel newLabel = new LanguageLabel(FR, EN, comment);

            _defaults[key.Trim()] = newLabel;
        }
Exemple #3
0
        /// <summary>
        /// Declare a new label into the multilingual dictionary
        /// </summary>
        /// <param name="key"></param>
        /// <param name="FR"></param>
        /// <param name="EN"></param>
        /// <param name="comment"></param>
        public LanguageLabel DeclareLabel(string key, string FR, string EN, string comment)
        {
            if (key == null)
            {
                return(null);
            }

            LanguageLabel newLabel = new LanguageLabel(FR, EN, comment);

            _labels[key.Trim()] = newLabel;
            return(newLabel);
        }
Exemple #4
0
        /// <summary>
        /// Load once all languages and all labels
        /// </summary>
        /// <param name="database"></param>
        /// <param name="customerId"></param>
        public void Load(DatabaseContext database, int customerId)
        {
            if (database == null)
            {
                Error("No database defined ... unable to load all labels into the multilingual dictionary");
                return;
            }

            // Remove all existing labels

            if (_labels.Count > 0)
            {
                Debug("Reloading labels ...");
                _labels.Clear();
            }
            else
            {
                Debug("Loading labels ...");
            }

            // Load all labels and add it into the manager

            try
            {
                int i = 0;

                foreach (LanguageRecord label in LanguageManager.GetInstance(database, customerId).GetLabels(customerId))
                {
                    LanguageLabel newLabel = DeclareLabel(label.Key, label.FR, label.EN, label.Comment);

                    if (newLabel == null)
                    {
                        continue;
                    }

                    i++;
                }

                Debug($"{i} labels loaded");
            }
            catch (System.Exception ex)
            {
                Exception("Unable to load all labels", ex);
            }
        }
Exemple #5
0
        /// <summary>
        /// Update or create a label into the dictionary
        /// </summary>
        /// <param name="language"></param>
        /// <param name="key"></param>
        /// <param name="label"></param>
        /// <param name="comment"></param>
        public void SetLabel(string language, string key, string label, string comment = "")
        {
            if (key == null || language == null)
            {
                return;
            }

            if (!_labels.ContainsKey(key.Trim()))
            {
                _labels[key.Trim()] = new LanguageLabel(comment);
                return;
            }

            LanguageLabel currentLabel = _labels[key.Trim()];

            if (currentLabel == null)
            {
                return;
            }

            currentLabel.SetLabel(language, label, comment);
        }
Exemple #6
0
        /// <summary>
        /// Retrieves the key on depends on the language
        /// </summary>
        /// <param name="language">"FR", "EN" or "ES"</param>
        /// <param name="key">Key of the label</param>
        /// <param name="parameters">list of parameters - null or empty if you want the label without parameters</param>
        /// <returns></returns>
        public string GetLabel(string language, string key, params object[] parameters)
        {
            if (key == null)
            {
                return(string.Empty);
            }

            if (language == null)
            {
                return(GetLabel(DefaultLanguage, key, parameters));
            }

            if (!_labels.ContainsKey(key.Trim()))
            {
                return(GetDefaultLabel(language, key, parameters));
            }

            LanguageLabel currentLabel = _labels[key.Trim()];

            if (currentLabel == null)
            {
                return(GetDefaultLabel(language, key, parameters));
            }

            if (!currentLabel.Languages.ContainsKey(language.Trim()))
            {
                return(key);
            }

            if (parameters == null || parameters.Count() == 0)
            {
                return(currentLabel.Languages[language.Trim()]);
            }

            return(Interpolation(language, currentLabel.Languages[language.Trim()], parameters));
        }