/// <summary>
        /// Try get text
        /// </summary>
        /// <param name="holidayDefinition"></param>
        /// <param name="languageTag"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public bool TryGetText(IHolidayFunc holidayDefinition, string languageTag, out string text)
        {
            if (holidayDefinition == null)
            {
                throw new ArgumentNullException(nameof(holidayDefinition));
            }

            if (string.IsNullOrWhiteSpace(languageTag))
            {
                // set language alias  = default lang from holiday definition
                languageTag = "en"; //todo  temp
            }
            else
            {
                //todo 检查是否为默认 language
                //如果不是,则返回 False
            }

            if (string.IsNullOrWhiteSpace(holidayDefinition.Name))
            {
                text = default;
                return(false);
            }

            text = holidayDefinition.Name;
            return(true);
        }
Esempio n. 2
0
        /// <summary>
        /// Try get text
        /// </summary>
        /// <param name="holidayDefinition"></param>
        /// <param name="languageTag"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public bool TryGetText(IHolidayFunc holidayDefinition, string languageTag, out string text)
        {
            if (holidayDefinition == null)
            {
                throw new ArgumentNullException(nameof(holidayDefinition));
            }

            if (string.IsNullOrWhiteSpace(languageTag))
            {
                // set language alias  = default lang from holiday definition
                languageTag = "en"; //todo  temp
            }

            var template = BuildInResourceGetter.Template(holidayDefinition.Country, languageTag);

            if (template == null)
            {
                text = default;
                return(false);
            }

            var code = holidayDefinition.I18NIdentityCode.Remove($"i18n_holiday_{template.Alias}_");

            if (template.TryGetText(code, out text))
            {
                return(true);
            }

            var gkey = holidayDefinition.GlobalizationKey;

            if (template.TryGetTextByGKey(gkey, out text))
            {
                return(true);
            }

            text = default;
            return(false);
        }