2017-08-15 56 views
0

翻訳のために新しいカルチャーを作成する際に問題が発生しています。私が持っている現在の問題は、ウィンドウは、この文化があるように見えるフォルダにアクセスするアプリケーションを許可していないということです。私たちのローカルマシンでは、単にVisual Studioをadminとして置くことができますが、問題はありませんが、Azureでアプリケーションをデプロイしてから、問題のあるフォルダへのアクセスを許可する方法がわからないので、この例外が発生します。 System.Globalization.CultureNotFoundException:カルチャがサポートされていません。パラメータ名:name en-US-bizは無効なカルチャ識別子です。ラインintheSystem.Globalization.CultureNotFoundException:カルチャがサポートされていません。パラメータ名:name en-US-bizは無効なカルチャ識別子です

var currentUserLanguage = 'en-US-biz'; 
    IocContainer.SetCurrentUserLanguage(currentUserLanguage); 

    var ci = domCultureLanguage != null ? domCultureLanguage.CultureInfo : new CultureInfo(currentUserLanguage); 

    Thread.CurrentThread.CurrentUICulture = ci; 
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name); 

::私たちは、ユーザーの言語を更新するコードの次の部分で

例外私は例外を取得する場所新しいのCultureInfo(currentUserLanguage)があります。

私たちは、Global.asaxファイル内の文化を登録します。

private void LoadCultureManager() 
{ 
    BizCultureEn.Register(); 
    BizCultureEs.Register(); 
} 

そして、我々は2つの異なる文化教室+ rsexそれぞれのファイルを構築しています。 BizCultureEnクラスの

例:

public static class BizCultureEn 
{ 
    //"es-ES-custom" need to match with Translations.es-ES-custom.resx 
    public static string CustomCultureName = "en-US-biz"; 
    public static CultureInfo CultureInfo { get; set; } 

    public static void Register() 
    { 
     // Create a custom culture for ru-US. 
     CultureAndRegionInfoBuilder builder = new CultureAndRegionInfoBuilder(CustomCultureName, CultureAndRegionModifiers.None); 
     CultureInfo = CultureInfo.CreateSpecificCulture(CustomCultureName); 
     builder.LoadDataFromCultureInfo(CultureInfo); 
     builder.CultureEnglishName = "Biz English (United States)"; 
     builder.CultureNativeName = "Biz English (United States)"; 

     builder.ThreeLetterISOLanguageName = "ben"; 
     builder.ThreeLetterWindowsLanguageName = "ben"; 
     builder.TwoLetterISOLanguageName = "bn"; 

     builder.RegionEnglishName = "Biz English"; 
     builder.ThreeLetterISORegionName = "USA"; 
     builder.ThreeLetterWindowsRegionName = "USA"; 
     builder.TwoLetterISORegionName = "US"; 

     // Register the culture. 
     try 
     { 
      builder.Register(); 
     } 
     catch (InvalidOperationException ex) 
     { 
      var ex1 = ex; 
      // Swallow the exception: the culture already is registered. 
     } 

     // Use the custom culture. 
     //CultureInfo = CultureInfo.CreateSpecificCulture(CustomCultureName); 
     Thread.CurrentThread.CurrentCulture = CultureInfo; 
     Thread.CurrentThread.CurrentUICulture = CultureInfo; 
    } 
} 

答えて

0

あなたはKuduから "デバッグコンソール> PowerShellを" アクセスすることにより、すべての文化を取得するために[system.Globalization.CultureInfo]::GetCultures('AllCultures')コマンドを実行することができます。ほかに

、私の知る限りでは、我々は独自の文化を登録するCultureAndRegionInfoBuilder.Registerメソッドを呼び出すときに、登録プロセスは.nlpファイルを作成し、%Windir%は\グローバリゼーションシステムディレクトリに.nlpファイルを保存します管理者権限が必要です。 Azure Webアプリケーションでこれを行うと、アクセス権に関連する問題が発生します。 remote debug your web appを試して、カスタムカルチャの登録中に例外が発生していないかどうかを確認することができます。

Azure Web App sandboxでカスタムカルチャを登録できない場合は、別のホスティングオプション(仮想マシンなど)を試すことができます。

+0

私はadminモードでvisual studioを実行しても問題はありませんが、私たちはazureからアプリケーションを変更することはできません。これは現在オプションではありません。 – alecellis1985

関連する問題