Exemple #1
0
        private I18N(I18NOption option)
        {
            string languageName      = Thread.CurrentThread.CurrentCulture.Name;
            string resourceShortName = null;

            if (languageName.Equals(option.FirstLanguage))
            {
                resourceShortName = option.FirstLanguageFile;
            }
            else if (languageName.Equals(option.SecondLanguage))
            {
                resourceShortName = option.SecondLanguageFile;
            }
            else if (UtilityConstants.EnglishName.Equals(option.FirstLanguage) || UtilityConstants.EnglishName.Equals(option.SecondLanguage))
            {
                resourceShortName = UtilityConstants.EnglishResourceName;
            }
            else
            {
                string msgFormat = GetResourceItem("UnsupportedLanguage");
                throw new TestflowRuntimeException(ModuleErrorCode.I18nRuntimeError, string.Format(msgFormat, languageName));
            }
            string resourceFullName = null;

            // 修改国际化为使用反射获取资源文件配置
            foreach (string resourceName in option.Assembly.GetManifestResourceNames())
            {
                if (resourceName.Equals(resourceShortName) || resourceName.Contains($".{resourceShortName}.resx") ||
                    resourceName.Contains($".{resourceShortName}.resources") ||
                    resourceName.Contains($"_{resourceShortName}.resx") ||
                    resourceName.Contains($"_{resourceShortName}.resources"))
                {
                    resourceFullName = resourceName.Remove(resourceName.LastIndexOf("."));
                    break;
                }
            }
            if (null == resourceFullName)
            {
                string msgFormat = GetResourceItem("ResourceNotExist");
                throw new TestflowRuntimeException(ModuleErrorCode.I18nRuntimeError, string.Format(msgFormat, resourceShortName));
            }
            this._resourceManager = new ResourceManager(resourceFullName, option.Assembly);
        }
Exemple #2
0
 /// <summary>
 /// 判断两个Option实例是否相等
 /// </summary>
 public bool Equals(I18NOption comparer)
 {
     return(ReferenceEquals(Assembly, comparer.Assembly) && FirstLanguage.Equals(comparer.FirstLanguage) &&
            SecondLanguage.Equals(comparer.SecondLanguage) && FirstLanguageFile.Equals(comparer.FirstLanguageFile) &&
            SecondLanguageFile.Equals(comparer.SecondLanguageFile));
 }