예제 #1
0
        /// <summary>
        /// Returns a Language String (if available in the passed Language)
        /// </summary>
        /// <param name="l">the Language</param>
        /// <returns>List of Strings</returns>
        public StrToken FallbackedLanguageItem(Data.MetaData.Languages l, int index)
        {
            StrItemList list = this.LanguageItems(l);
            StrToken    name;

            if (list.Length > index)
            {
                name = list[index];
            }
            else
            {
                name = new StrToken(0, 0, "", "");
            }

            if (name.Title.Trim() == "")
            {
                list = this.LanguageItems(1);
                if (list.Length > index)
                {
                    name = list[index];
                }
            }


            return(name);
        }
예제 #2
0
        /// <summary>
        /// Returns all Language-specific Strings
        /// </summary>
        /// <param name="l">the Language</param>
        /// <returns>List of Strings</returns>
        public StrItemList LanguageItems(Data.MetaData.Languages l)
        {
            StrItemList items = (StrItemList)lines[(byte)l];

            if (items == null)
            {
                items = new StrItemList();
            }

            return(items);
        }
예제 #3
0
        /// <summary>
        /// Returns all Langugae specific Strings, if the String is not included in the passed
        /// Language the Fallback String (use en) will be returned
        /// </summary>
        /// <param name="l">the Language</param>
        /// <returns>List of Strings</returns>
        public StrItemList FallbackedLanguageItems(Data.MetaData.Languages l)
        {
            if (l == Data.MetaData.Languages.English)
            {
                return(this.LanguageItems(l));
            }

            StrItemList real     = (StrItemList)LanguageItems(l).Clone();
            StrItemList fallback = null;

            if (this.Languages.Contains(Data.MetaData.Languages.English))
            {
                fallback = LanguageItems(Data.MetaData.Languages.English);
            }
            else if (this.Languages.Count == 1)
            {
                fallback = LanguageItems(Languages[0]);
            }
            else
            {
                fallback = LanguageItems(Data.MetaData.Languages.English);
            }


            for (int i = 0; i < fallback.Length; i++)
            {
                if (real.Length <= i)
                {
                    real.Add(fallback[i]);
                }
                else if ((real[i] == null) || (real[i].Title.Trim() == ""))
                {
                    real[i] = fallback[i];
                }
            }
            return(real);
        }