Ejemplo n.º 1
0
 public MultiLanguageFilterStream(Stream baseStream, CoreLanguageClass currentLanguage, CoreLanguageClass currentLanguagePure, string basicHostName, List <KeyValuePair <string, string> > replaceList)
 {
     this.baseStream          = baseStream;
     this.currentLanguage     = currentLanguage;
     this.currentLanguagePure = currentLanguagePure;
     this.basicHostName       = basicHostName;
     this.ReplaceList         = replaceList;
 }
Ejemplo n.º 2
0
    public string GetFullUrlForLanguage(CoreLanguageClass lang)
    {
        string url = (IsSSL ? "https://" : "http://") + Host + GetPathForLanguage(lang);

        if (Str.IsEmptyStr(Args) == false)
        {
            url += "?" + Args;
        }

        return(url);
    }
Ejemplo n.º 3
0
    public string ConvertPath(string url, CoreLanguageClass lang)
    {
        string ja = CoreLanguageList.Japanese.Name;

        if (url.StartsWith("/" + ja, StringComparison.InvariantCultureIgnoreCase))
        {
            url = "/" + lang.Name + url.Substring(ja.Length + 1);
        }

        return(url);
    }
Ejemplo n.º 4
0
    bool isLang(CoreLanguageClass lang)
    {
        CoreLanguageClass[] langList = stack.ToArray();

        foreach (CoreLanguageClass c in langList)
        {
            if (c != lang)
            {
                return(false);
            }
        }

        return(true);
    }
Ejemplo n.º 5
0
    public MailUser(CsvEntry e)
    {
        this.MailAddress = e[0];
        this.Company     = e[1];
        this.FullName    = e[2];
        this.Language    = CoreLanguageList.GetLanguageClassByName(e[3]);

        if (e.Count >= 5)
        {
            string pStr = e[4];

            this.ParamList = MailUtil.StrToParamList(pStr);
        }

        normalize();
    }
Ejemplo n.º 6
0
    public static string ProcStr(string str, CoreLanguageClass lang, List <KeyValuePair <string, string> > paramList)
    {
        foreach (KeyValuePair <string, string> p in paramList)
        {
            string tag   = "<$" + p.Key.Trim() + "$>";
            string value = p.Value.Trim();

            str = Str.ReplaceStr(str, tag, value);
        }

        StringBuilder sb = new StringBuilder();

        bool b = false;
        int  i;

        for (i = 0; i < str.Length; i++)
        {
            char c  = str[i];
            bool ok = true;

            if (b == false)
            {
                if (c == '<' && str[i + 1] == '$')
                {
                    i++;
                    b  = true;
                    ok = false;
                }
            }
            else
            {
                if (c == '$' && str[i + 1] == '>')
                {
                    i++;
                    b  = false;
                    ok = false;
                }
            }

            if (b == false && ok == true)
            {
                sb.Append(c);
            }
        }

        return(sb.ToString());
    }
Ejemplo n.º 7
0
    public MailUser(string mail, string name, string company, string language, List <KeyValuePair <string, string> > paramList)
    {
        this.MailAddress = mail;
        this.Company     = company;
        this.FullName    = name;
        this.Language    = CoreLanguageList.GetLanguageClassByName(language);
        if (paramList == null)
        {
            this.ParamList = new List <KeyValuePair <string, string> >();
        }
        else
        {
            this.ParamList = paramList;
        }

        normalize();
    }
Ejemplo n.º 8
0
 public static string GetStr(string srcStr, CoreLanguageClass lang)
 {
     return(MultiLang.ProcStr(srcStr, lang));
 }
Ejemplo n.º 9
0
    public static string ProcStr(string str, CoreLanguageClass lang, CoreLanguageClass langPure)
    {
        MultiLanguageFilterStream st = new MultiLanguageFilterStream(null, lang, langPure, null, null);

        return(st.FilterString(str));
    }
Ejemplo n.º 10
0
 public static string ProcStr(string str, CoreLanguageClass lang)
 {
     return(ProcStr(str, lang, lang));
 }
Ejemplo n.º 11
0
	public MultiLang(Page currentPage, bool fast, string basicHostName, List<KeyValuePair<string, string>> replaceList)
	{
		this.Page = currentPage;

		this.Request = Page.Request;
		this.Response = Page.Response;
		this.BasicHostName = basicHostName;
		string tmp = Page.Request.ServerVariables["HTTPS"];
		string hostRaw = Page.Request.Headers["Host"];
		this.ReplaceList = replaceList;
		bool isSsl = false;
		string[] tokens;
		string host = "";

		tokens = hostRaw.Split(':');
		if (tokens.Length >= 1)
		{
			host = tokens[0];
		}

		host = host.ToLower();

		if (tmp != null)
		{
			if (tmp.Equals("on", StringComparison.InvariantCultureIgnoreCase))
			{
				isSsl = true;
			}
		}

		this.IsSSL = isSsl;
		this.Host = host;

		this.IsUrlModefied = Str.StrToBool((string)Request.Headers["SEISAPI_MODIFIED_URL"]);
		this.OriginalUrl = (string)Request.Headers["SEISAPI_ORIGINAL_URL"];

		int i;
		i = this.OriginalUrl.IndexOf("?");
		if (i != -1)
		{
			this.OriginalUrl = this.OriginalUrl.Substring(0, i);
		}

		if (Str.IsEmptyStr(this.OriginalUrl) || this.IsUrlModefied == false)
		{
			this.OriginalUrl = AspUtil.RemoveDefaultHtml(AspUtil.GetCurrentRequestUrl(Page));
		}

		string s = (string)Request.Headers["SEISAPI_ORIGINAL_FILENAME"];
		if (Str.IsEmptyStr(s) == false)
		{
			this.IsFilenameModified = true;
			this.OriginalFileName = s;
			this.OriginalFilePath = (string)Request.Headers["SEISAPI_ORIGINAL_FILEPATH"];
		}

		string langCode = GetCurrentLangCodeFromPath(this.OriginalUrl);

		this.CurrentLanguage = CoreLanguageList.GetLanguageClassByName(langCode);
		this.CurrentLanguageCode = CurrentLanguage.Name;

		try
		{
			HtmlFileName = AspUtil.WebPathToFilePath(currentPage, AspUtil.GetCurrentRequestUrl(currentPage));
		}
		catch
		{
		}

		if (this.IsFilenameModified)
		{
			HtmlFileName = Path.Combine(Path.GetDirectoryName(HtmlFileName), Path.GetFileName(OriginalFilePath));
		}

		try
		{
			if (fast == false)
			{
				HtmlBody = File.ReadAllText(HtmlFileName, Str.Utf8Encoding);
			}
		}
		catch
		{
		}

		PhysicalUrl = AspUtil.RemoveDefaultHtml(AspUtil.GetCurrentRequestUrl((currentPage)));

		Args = currentPage.Request.ServerVariables["QUERY_STRING"];

		if (CurrentLanguage == CoreLanguageList.Japanese)
		{
			IsCurrentLanguageSupported = true;
		}
		else
		{
			IsCurrentLanguageSupported = Str.SearchStr(HtmlBody, string.Format("<!-- ml:{0} -->", CurrentLanguage.Name), 0, false) != -1;
		}

		GoogleTranslateUrl = string.Format("http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&sl=ja&tl={1}&u={0}",
			HttpUtility.UrlEncode((isSsl ? "https://" : "http://") + host + this.OriginalUrl, Str.Utf8Encoding),
			this.CurrentLanguageCode);

		OriginalFullUrl = (isSsl ? "https://" : "http://") + host + this.OriginalUrl;

		ContentsPrintLanguage = this.CurrentLanguage;
		if (IsCurrentLanguageSupported == false)
		{
			ContentsPrintLanguage = CoreLanguageList.Japanese;
		}

		if (fast == false)
		{
			mfs = new MultiLanguageFilterStream(Response.Filter, ContentsPrintLanguage, this.CurrentLanguage, this.BasicHostName, this.ReplaceList);
			mfs.Page = Page;
			Response.Filter = mfs;
		}
	}
Ejemplo n.º 12
0
    public string GetPathForLanguage(CoreLanguageClass lang)
    {
        string url = PhysicalUrl;

        return(ConvertPath(url, lang));
    }
Ejemplo n.º 13
0
	public string GetFullUrlForLanguage(CoreLanguageClass lang)
	{
		string url = (IsSSL ? "https://" : "http://") + Host + GetPathForLanguage(lang);

		if (Str.IsEmptyStr(Args) == false)
		{
			url += "?" + Args;
		}

		return url;
	}
Ejemplo n.º 14
0
    public MultiLang(Page currentPage, bool fast, string basicHostName, List <KeyValuePair <string, string> > replaceList)
    {
        this.Page = currentPage;

        this.Request       = Page.Request;
        this.Response      = Page.Response;
        this.BasicHostName = basicHostName;
        string tmp     = Page.Request.ServerVariables["HTTPS"];
        string hostRaw = Page.Request.Headers["Host"];

        this.ReplaceList = replaceList;
        bool isSsl = false;

        string[] tokens;
        string   host = "";

        tokens = hostRaw.Split(':');
        if (tokens.Length >= 1)
        {
            host = tokens[0];
        }

        host = host.ToLower();

        if (tmp != null)
        {
            if (tmp.Equals("on", StringComparison.InvariantCultureIgnoreCase))
            {
                isSsl = true;
            }
        }

        this.IsSSL = isSsl;
        this.Host  = host;

        this.IsUrlModified = Str.StrToBool((string)Request.Headers["SEISAPI_MODIFIED_URL"]);
        this.OriginalUrl   = (string)Request.Headers["SEISAPI_ORIGINAL_URL"];

        int i;

        i = this.OriginalUrl.IndexOf("?");
        if (i != -1)
        {
            this.OriginalUrl = this.OriginalUrl.Substring(0, i);
        }

        if (Str.IsEmptyStr(this.OriginalUrl) || this.IsUrlModified == false)
        {
            this.OriginalUrl = AspUtil.RemoveDefaultHtml(AspUtil.GetCurrentRequestUrl(Page));
        }

        string s = (string)Request.Headers["SEISAPI_ORIGINAL_FILENAME"];

        if (Str.IsEmptyStr(s) == false)
        {
            this.IsFilenameModified = true;
            this.OriginalFileName   = s;
            this.OriginalFilePath   = (string)Request.Headers["SEISAPI_ORIGINAL_FILEPATH"];
        }

        string langCode = GetCurrentLangCodeFromPath(this.OriginalUrl);

        this.CurrentLanguage     = CoreLanguageList.GetLanguageClassByName(langCode);
        this.CurrentLanguageCode = CurrentLanguage.Name;

        try
        {
            HtmlFileName = AspUtil.WebPathToFilePath(currentPage, AspUtil.GetCurrentRequestUrl(currentPage));
        }
        catch
        {
        }

        if (this.IsFilenameModified)
        {
            HtmlFileName = Path.Combine(Path.GetDirectoryName(HtmlFileName), Path.GetFileName(OriginalFilePath));
        }

        try
        {
            if (fast == false)
            {
                HtmlBody = File.ReadAllText(HtmlFileName, Str.Utf8Encoding);
            }
        }
        catch
        {
        }

        PhysicalUrl = AspUtil.RemoveDefaultHtml(AspUtil.GetCurrentRequestUrl((currentPage)));

        Args = currentPage.Request.ServerVariables["QUERY_STRING"];

        if (CurrentLanguage == CoreLanguageList.Japanese)
        {
            IsCurrentLanguageSupported = true;
        }
        else
        {
            IsCurrentLanguageSupported = Str.SearchStr(HtmlBody, string.Format("<!-- ml:{0} -->", CurrentLanguage.Name), 0, false) != -1;
        }

        GoogleTranslateUrl = string.Format("http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&sl=ja&tl={1}&u={0}",
                                           HttpUtility.UrlEncode((isSsl ? "https://" : "http://") + host + this.OriginalUrl, Str.Utf8Encoding),
                                           this.CurrentLanguageCode);

        OriginalFullUrl = (isSsl ? "https://" : "http://") + host + this.OriginalUrl;

        ContentsPrintLanguage = this.CurrentLanguage;
        if (IsCurrentLanguageSupported == false)
        {
            ContentsPrintLanguage = CoreLanguageList.Japanese;
        }

        if (fast == false)
        {
            mfs             = new MultiLanguageFilterStream(Response.Filter, ContentsPrintLanguage, this.CurrentLanguage, this.BasicHostName, this.ReplaceList);
            mfs.Page        = Page;
            Response.Filter = mfs;
        }
    }
Ejemplo n.º 15
0
	public MultiLanguageFilterStream(Stream baseStream, CoreLanguageClass currentLanguage, CoreLanguageClass currentLanguagePure, string basicHostName, List<KeyValuePair<string, string>> replaceList)
	{
		this.baseStream = baseStream;
		this.currentLanguage = currentLanguage;
		this.currentLanguagePure = currentLanguagePure;
		this.basicHostName = basicHostName;
		this.ReplaceList = replaceList;
	}
Ejemplo n.º 16
0
	bool isLang(CoreLanguageClass lang)
	{
		CoreLanguageClass[] langList = stack.ToArray();

		foreach (CoreLanguageClass c in langList)
		{
			if (c != lang)
			{
				return false;
			}
		}

		return true;
	}
Ejemplo n.º 17
0
	public static string GetStr(string srcStr, CoreLanguageClass lang)
	{
		return MultiLang.ProcStr(srcStr, lang);
	}
Ejemplo n.º 18
0
	public static string ProcStr(string str, CoreLanguageClass lang, CoreLanguageClass langPure)
	{
		MultiLanguageFilterStream st = new MultiLanguageFilterStream(null, lang, langPure, null, null);

		return st.FilterString(str);
	}
Ejemplo n.º 19
0
	public static string ProcStr(string str, CoreLanguageClass lang)
	{
		return ProcStr(str, lang, lang);
	}
Ejemplo n.º 20
0
    string filterStringInner(string src, CoreLanguageClass useLang, CoreLanguageClass useLangPure)
    {
        int    i;
        string ret = src;

        if (Str.IsEmptyStr(basicHostName) == false)
        {
            ret = Str.ReplaceStr(ret, "=\"/\"", "=\"http://" + basicHostName + "/\"", false);
            ret = Str.ReplaceStr(ret, "=\'/\'", "=\'http://" + basicHostName + "/\'", false);

            ret = Str.ReplaceStr(ret, "=\"/" + CoreLanguageList.Japanese.Name + "/\"", "=\"http://" + basicHostName + "/" + useLangPure.Name + "/\"", false);
            ret = Str.ReplaceStr(ret, "=\'/" + CoreLanguageList.Japanese.Name + "/\'", "=\'http://" + basicHostName + "/" + useLangPure.Name + "/\'", false);
        }

        ret = Str.ReplaceStr(ret, "=\"/" + CoreLanguageList.Japanese.Name + "/", "=\"/" + useLangPure.Name + "/", false);
        ret = Str.ReplaceStr(ret, "=\'/" + CoreLanguageList.Japanese.Name + "/", "=\'/" + useLangPure.Name + "/", false);

        ret = Str.ReplaceStr(ret, "_lm_" + CoreLanguageList.Japanese.Name, "_lm_" + useLang.Name, false);

        if (this.ReplaceList != null)
        {
            foreach (KeyValuePair <string, string> p in this.ReplaceList)
            {
                ret = Str.ReplaceStr(ret, p.Key, p.Value, false);
            }
        }

        StringBuilder ret2 = new StringBuilder();

        int next = 0;

        while (true)
        {
            int min = int.MaxValue;
            int j   = -1;
            for (i = 0; i < langKeys.Count; i++)
            {
                int r = Str.SearchStr(ret, langKeys[i].Key, next, false);
                if (r != -1)
                {
                    if (r < min)
                    {
                        j   = i;
                        min = r;
                    }
                }
            }

            if (j != -1)
            {
                KeyValuePair <string, CoreLanguageClass> v = langKeys[j];

                if (currentBodyLanguage == null || isLang(useLang))
                {
                    ret2.Append(ret.Substring(next, min - next));
                }

                if (v.Value != null)
                {
                    if (lastBodyLanguage == null || v.Value.Id <= lastBodyLanguage.Id)
                    {
                        stack.Push(v.Value);
                    }
                    else
                    {
                        stack.Pop();
                        stack.Push(v.Value);
                    }
                }
                else
                {
                    stack.Pop();
                }

                next = min + v.Key.Length;
            }
            else
            {
                if (currentBodyLanguage == null || isLang(useLang))
                {
                    ret2.Append(ret.Substring(next, ret.Length - next));
                }
                break;
            }
        }

        ret = ret2.ToString();

        string lang = useLangPure != CoreLanguageList.Japanese ? useLangPure.Name : "ja";

        if (useLangPure != CoreLanguageList.Japanese)
        {
            ret = Str.ReplaceStr(ret, "<meta http-equiv=\"Content-Language\" content=\"ja\" />",
                                 string.Format("<meta http-equiv=\"Content-Language\" content=\"{0}\" />", lang), false);
        }

        ret = Str.ReplaceStr(ret, "<html>", string.Format("<html lang=\"{0}\">", lang), false);

        next = 0;
        while (true)
        {
            i = Str.SearchStr(ret, "<link rel=\"stylesheet\" href=\"", next, false);
            if (i == -1)
            {
                break;
            }
            next = i + 1;
            int j = Str.SearchStr(ret, "/>", next, false);
            if (j == -1)
            {
                break;
            }
            string linkStr = ret.Substring(i, j - i + 2 - 1);
            int    k       = Str.SearchStr(linkStr, "href=\"", 0, false);
            if (k != -1)
            {
                int m = Str.SearchStr(linkStr, "\"", k + 6, false);
                if (m != -1)
                {
                    string fileName = linkStr.Substring(k + 6, m - k - 6);
                    fileName = Str.ReplaceStr(fileName, ".css", "_" + lang + ".css", false);
                    string linkStr2 = string.Format("<link rel=\"stylesheet\" href=\"{0}\" type=\"text/css\" />", fileName);

                    ret  = ret.Substring(0, j + 2) + linkStr2 + ret.Substring(j + 2);
                    next = j + 2 + linkStr2.Length;
                }
            }
        }

        return(ret);
    }
Ejemplo n.º 21
0
	public string ConvertPath(string url, CoreLanguageClass lang)
	{
		string ja = CoreLanguageList.Japanese.Name;

		if (url.StartsWith("/" + ja, StringComparison.InvariantCultureIgnoreCase))
		{
			url = "/" + lang.Name + url.Substring(ja.Length + 1);
		}

		return url;
	}
Ejemplo n.º 22
0
	string filterStringInner(string src, CoreLanguageClass useLang, CoreLanguageClass useLangPure)
	{
		int i;
		string ret = src;

		if (Str.IsEmptyStr(basicHostName) == false)
		{
			ret = Str.ReplaceStr(ret, "=\"/\"", "=\"http://" + basicHostName + "/\"", false);
			ret = Str.ReplaceStr(ret, "=\'/\'", "=\'http://" + basicHostName + "/\'", false);

			ret = Str.ReplaceStr(ret, "=\"/" + CoreLanguageList.Japanese.Name + "/\"", "=\"http://" + basicHostName + "/" + useLangPure.Name + "/\"", false);
			ret = Str.ReplaceStr(ret, "=\'/" + CoreLanguageList.Japanese.Name + "/\'", "=\'http://" + basicHostName + "/" + useLangPure.Name + "/\'", false);
		}

		ret = Str.ReplaceStr(ret, "=\"/" + CoreLanguageList.Japanese.Name + "/", "=\"/" + useLangPure.Name + "/", false);
		ret = Str.ReplaceStr(ret, "=\'/" + CoreLanguageList.Japanese.Name + "/", "=\'/" + useLangPure.Name + "/", false);

		ret = Str.ReplaceStr(ret, "_lm_" + CoreLanguageList.Japanese.Name, "_lm_" + useLang.Name, false);

		if (this.ReplaceList != null)
		{
			foreach (KeyValuePair<string, string> p in this.ReplaceList)
			{
				ret = Str.ReplaceStr(ret, p.Key, p.Value, false);
			}
		}

		StringBuilder ret2 = new StringBuilder();

		int next = 0;
		while (true)
		{
			int min = int.MaxValue;
			int j = -1;
			for (i = 0; i < langKeys.Count; i++)
			{
				int r = Str.SearchStr(ret, langKeys[i].Key, next, false);
				if (r != -1)
				{
					if (r < min)
					{
						j  = i;
						min = r;
					}
				}
			}

			if (j != -1)
			{
				KeyValuePair<string, CoreLanguageClass> v = langKeys[j];

				if (currentBodyLanguage == null || isLang(useLang))
				{
					ret2.Append(ret.Substring(next, min - next));
				}

				if (v.Value != null)
				{
					if (lastBodyLanguage == null || v.Value.Id <= lastBodyLanguage.Id)
					{
						stack.Push(v.Value);
					}
					else
					{
						stack.Pop();
						stack.Push(v.Value);
					}
				}
				else
				{
					stack.Pop();
				}

				next = min + v.Key.Length;
			}
			else
			{
				if (currentBodyLanguage == null || isLang(useLang))
				{
					ret2.Append(ret.Substring(next, ret.Length - next));
				}
				break;
			}
		}

		ret = ret2.ToString();

		string lang = useLangPure != CoreLanguageList.Japanese ? useLangPure.Name : "ja";

		if (useLangPure != CoreLanguageList.Japanese)
		{
			ret = Str.ReplaceStr(ret, "<meta http-equiv=\"Content-Language\" content=\"ja\" />",
				string.Format("<meta http-equiv=\"Content-Language\" content=\"{0}\" />", lang), false);
		}

		ret = Str.ReplaceStr(ret, "<html>", string.Format("<html lang=\"{0}\">", lang), false);

		next = 0;
		while (true)
		{
			i = Str.SearchStr(ret, "<link rel=\"stylesheet\" href=\"", next, false);
			if (i == -1)
			{
				break;
			}
			next = i + 1;
			int j = Str.SearchStr(ret, "/>", next, false);
			if (j == -1)
			{
				break;
			}
			string linkStr = ret.Substring(i, j - i + 2 - 1);
			int k = Str.SearchStr(linkStr, "href=\"", 0, false);
			if (k != -1)
			{
				int m = Str.SearchStr(linkStr, "\"", k + 6, false);
				if (m != -1)
				{
					string fileName = linkStr.Substring(k + 6, m - k - 6);
					fileName = Str.ReplaceStr(fileName, ".css", "_" + lang + ".css", false);
					string linkStr2 = string.Format("<link rel=\"stylesheet\" href=\"{0}\" type=\"text/css\" />", fileName);

					ret = ret.Substring(0, j + 2) + linkStr2 + ret.Substring(j + 2);
					next = j + 2 + linkStr2.Length;
				}
			}
		}

		return ret;
	}
Ejemplo n.º 23
0
	public string GetPathForLanguage(CoreLanguageClass lang)
	{
		string url = PhysicalUrl;

		return ConvertPath(url, lang);
	}