2

以下のコードを使用して言語を変更します (たとえば、 changelanguge("en") ) C# win アプリケーションで asp でこのような sth を使用するにはどうすればよいですか?

public void changelanguge(String languge)
        {
            foreach (InputLanguage lang in InputLanguage.InstalledInputLanguages)
            {
                if (lang.Culture.TwoLetterISOLanguageName == languge)
                {
                    Application.CurrentCulture = lang.Culture;
                    Application.CurrentInputLanguage = lang;
                }
            }
        }
4

1 に答える 1

1

オプション1

InitializeCultureASP.NET ページ (ASPX) では、メソッドをオーバーライドする必要があります。

    protected override void InitializeCulture()
    {
        this.UICulture = "";
        this.Culture = "";
    }

オプション 2

ページのマークアップ:

<%@ Page UICulture="" Culture=""

オプション 3

web.config 内

<globalization culture="" uiCulture="" enableClientBasedCulture="true" />

オプション 4

を使用するHttpModule(このサンプルでは ASP.NET プロファイルを使用して言語を取得します。別のソースから言語を取得するように変更できます)

public class LocalizationModule : IHttpModule
{
    public void Dispose()
    {
    }

    public void Init(HttpApplication context)
    {
        context.PreRequestHandlerExecute += context_PreRequestHandlerExecute;
    }

    void context_PreRequestHandlerExecute(object sender, EventArgs e)
    {
        var application = sender as HttpApplication;
        var context = application.Context;
        var handler = context.Handler;
        var profile = context.Profile as CustomProfile;

        if (handler != null)
        {
            var page = handler as Page;

            if (page != null)
            {
                if (profile != null)
                {
                    if (!string.IsNullOrEmpty(profile.Language))
                    {
                        page.UICulture = profile.Language;
                        page.Culture = profile.Language;
                    }
                }
            }
        }
    }
}

次に、web.config ファイルで構成する必要があります。

<httpModules>
  <add name="Localization" type="Msts.Topics.Chapter06___Globalization_and_Accessibility.Lesson01___Globalization_and_Localization.LocalizationModule" />
</httpModules>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
      <add name="Localization" type="Msts.Topics.Chapter06___Globalization_and_Accessibility.Lesson01___Globalization_and_Localization.LocalizationModule" />
    </modules>
  </system.webServer>
于 2012-10-08T22:15:59.230 に答える