簡體   English   中英

.net本地化 - 在englisch操作系統上拋出希伯來語中的異常

[英].net localization - throw exception in hebrew on englisch operating system

除了英語和德語,我還有一個應用程序被翻譯成希伯來語。

為了檢查用戶輸入,我創建了一個驗證規則,如果該值超出其限制,則會拋出ArgumentOutOfRangeException

public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
  double validationValue = 0;
  validationValue = double.Parse(value.ToString());

  if(validationValue < Min)
  {
    ArgumentOutOfRangeException ex = new ArgumentOutOfRangeException();
    return new ValidationResult(false, ex.Message);
  }
  else if(validationValue > Max)
  {
    ArgumentOutOfRangeException ex = new ArgumentOutOfRangeException();
    return new ValidationResult(false, ex.Message);
  }

  return new ValidationResult(true, null); 
 }

驗證工作正常。
但是,如果我使用CultureInfo.DefaultThreadCurrentCultureCultureInfo.DefaultThreadCurrentUICulture將應用程序語言設置為希伯來語,我會得到英語異常。 將語言設置為德語或英語,我得到正確的異常消息。 操作系統是Windows 7英文版。

  • 異常的文本是否取決於操作系統的已安裝語言?
  • 我可以通過安裝希伯來語語言包(僅適用於Win 7 Enterprise / Ultimate Edition)來解決問題嗎?

我試圖將該地區設置為以色列,但我不能在我當前的測試環境中安裝希伯來語LP。

我找到了線程,人們說不應該翻譯異常。 我可以使用我的內部本地化服務將我的特定異常與翻譯文本一起拋出。 但如果有機會,我想避免這種情況。

.Net語言包正在運行。 雖然我重構了我的驗證規則。 如果值超出范圍,則現在返回自定義消息。

  • 我可以包括可能值的最小值和最大值。
  • 未來的翻譯不依賴於已安裝的.NET語言包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM