2016-03-25 19 views
4

İşletim sistemi dilinin Japonca olduğu bir sistemde aşağıdaki kod barındırılıyor ve zaman diliminin Japonca dilinde görüntülenmesini sağlıyorum. Globalization ayarını web.config dosyasında İngilizce olarak ayarlıyorum ancak şans yok. Ekranı İngilizce metin olarak almanın bir yolu var mı? Kullanıcı ara yüzüSystem TimeZone in Türkçe Metin

<select id="timezone" name="timezone"> 
    @foreach (var timeZone in TimeZoneInfo.GetSystemTimeZones()) { 
     <option value="@timeZone.Id">@timeZone.DisplayName</option> 
    } 
</select> 

Ekran

enter image description here

+3

bununla ilgili bir sorun olabilir: http://stackoverflow.com/questions/13163241/getting-system-timezones-in-different-languages ​​ – greenshade

+0

Sitemi barındırma ortamında barındırma iznim var ve yok Herhangi bir dil paketini yüklemek için herhangi bir izin. – Hoque

+0

Evet, .NET'in küreselleşme özellikleri değil, işletim sisteminin yerelleştirmesine bağlıdır. Bu [timezone tag wiki] 'de belgelenmiştir (http://stackoverflow.com/tags/timezone/info). Ayrıca, [bu konudaki blog'um] bölümüne bakın (http://codeofmatt.com/2014/12/26/localized-time-zone-names-in-net/) ve bu kütüphaneyi deneyin (http: // Bir çözüm için mj1856.github.io/TimeZoneNames/). –

cevap

2

(istemci tarafı) Uygulama Ana bilgisayarın işletim sistemi saat dilimleri güncellenirse bunu korumak için (saat dilimlerinin değişmesi durumunda ... ve DO değiştiriniz). Eğer konağı kontrol etmezseniz, bu eşek için gerçek bir acı olabilir. Ben sizin için yaptık

(eğer it ... in this fiddle kontrol tüm Demirbaş kodu göz ardı edebilirsiniz, bu MVC için dotnetfiddle varsayılan kod, sadece görünümü değişti):

@functions{ 
    string GetTimeZonesInEnglish(string timeZoneId, string defaultDisplayName) 
    { 
    var dict = new Dictionary<string, string>() 
    { 
     { "Dateline Standard Time"," (UTC-12:00) International Date Line West" }, 
     { "UTC-11"," (UTC-11:00) Coordinated Universal Time-11" }, 
     { "Hawaiian Standard Time"," (UTC-10:00) Hawaii" }, 
     { "Alaskan Standard Time"," (UTC-09:00) Alaska" }, 
     { "Pacific Standard Time (Mexico)"," (UTC-08:00) Baja California" }, 
     { "Pacific Standard Time"," (UTC-08:00) Pacific Time (US & Canada)" }, 
     { "US Mountain Standard Time"," (UTC-07:00) Arizona" }, 
     { "Mountain Standard Time (Mexico)"," (UTC-07:00) Chihuahua, La Paz, Mazatlan" }, 
     { "Mountain Standard Time"," (UTC-07:00) Mountain Time (US & Canada)" }, 
     { "Central America Standard Time"," (UTC-06:00) Central America" }, 
     { "Central Standard Time"," (UTC-06:00) Central Time (US & Canada)" }, 
     { "Central Standard Time (Mexico)"," (UTC-06:00) Guadalajara, Mexico City, Monterrey" }, 
     { "Canada Central Standard Time"," (UTC-06:00) Saskatchewan" }, 
     { "SA Pacific Standard Time"," (UTC-05:00) Bogota, Lima, Quito, Rio Branco" }, 
     { "Eastern Standard Time (Mexico)"," (UTC-05:00) Chetumal" }, 
     { "Eastern Standard Time"," (UTC-05:00) Eastern Time (US & Canada)" }, 
     { "US Eastern Standard Time"," (UTC-05:00) Indiana (East)" }, 
     { "Venezuela Standard Time"," (UTC-04:30) Caracas" }, 
     { "Paraguay Standard Time"," (UTC-04:00) Asuncion" }, 
     { "Atlantic Standard Time"," (UTC-04:00) Atlantic Time (Canada)" }, 
     { "Central Brazilian Standard Time"," (UTC-04:00) Cuiaba" }, 
     { "SA Western Standard Time"," (UTC-04:00) Georgetown, La Paz, Manaus, San Juan" }, 
     { "Newfoundland Standard Time"," (UTC-03:30) Newfoundland" }, 
     { "E. South America Standard Time"," (UTC-03:00) Brasilia" }, 
     { "SA Eastern Standard Time"," (UTC-03:00) Cayenne, Fortaleza" }, 
     { "Argentina Standard Time"," (UTC-03:00) City of Buenos Aires" }, 
     { "Greenland Standard Time"," (UTC-03:00) Greenland" }, 
     { "Montevideo Standard Time"," (UTC-03:00) Montevideo" }, 
     { "Bahia Standard Time"," (UTC-03:00) Salvador" }, 
     { "Pacific SA Standard Time"," (UTC-03:00) Santiago" }, 
     { "UTC-02"," (UTC-02:00) Coordinated Universal Time-02" }, 
     { "Mid-Atlantic Standard Time"," (UTC-02:00) Mid-Atlantic - Old" }, 
     { "Azores Standard Time"," (UTC-01:00) Azores" }, 
     { "Cape Verde Standard Time"," (UTC-01:00) Cabo Verde Is." }, 
     { "Morocco Standard Time"," (UTC) Casablanca" }, 
     { "UTC"," (UTC) Coordinated Universal Time" }, 
     { "GMT Standard Time"," (UTC) Dublin, Edinburgh, Lisbon, London" }, 
     { "Greenwich Standard Time"," (UTC) Monrovia, Reykjavik" }, 
     { "W. Europe Standard Time"," (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna" }, 
     { "Central Europe Standard Time"," (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague" }, 
     { "Romance Standard Time"," (UTC+01:00) Brussels, Copenhagen, Madrid, Paris" }, 
     { "Central European Standard Time"," (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb" }, 
     { "W. Central Africa Standard Time"," (UTC+01:00) West Central Africa" }, 
     { "Namibia Standard Time"," (UTC+01:00) Windhoek" }, 
     { "Jordan Standard Time"," (UTC+02:00) Amman" }, 
     { "GTB Standard Time"," (UTC+02:00) Athens, Bucharest" }, 
     { "Middle East Standard Time"," (UTC+02:00) Beirut" }, 
     { "Egypt Standard Time"," (UTC+02:00) Cairo" }, 
     { "Syria Standard Time"," (UTC+02:00) Damascus" }, 
     { "E. Europe Standard Time"," (UTC+02:00) E. Europe" }, 
     { "South Africa Standard Time"," (UTC+02:00) Harare, Pretoria" }, 
     { "FLE Standard Time"," (UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius" }, 
     { "Turkey Standard Time"," (UTC+02:00) Istanbul" }, 
     { "Israel Standard Time"," (UTC+02:00) Jerusalem" }, 
     { "Kaliningrad Standard Time"," (UTC+02:00) Kaliningrad (RTZ 1)" }, 
     { "Libya Standard Time"," (UTC+02:00) Tripoli" }, 
     { "Arabic Standard Time"," (UTC+03:00) Baghdad" }, 
     { "Arab Standard Time"," (UTC+03:00) Kuwait, Riyadh" }, 
     { "Belarus Standard Time"," (UTC+03:00) Minsk" }, 
     { "Russian Standard Time"," (UTC+03:00) Moscow, St. Petersburg, Volgograd (RTZ 2)" }, 
     { "E. Africa Standard Time"," (UTC+03:00) Nairobi" }, 
     { "Iran Standard Time"," (UTC+03:30) Tehran" }, 
     { "Arabian Standard Time"," (UTC+04:00) Abu Dhabi, Muscat" }, 
     { "Azerbaijan Standard Time"," (UTC+04:00) Baku" }, 
     { "Russia Time Zone 3"," (UTC+04:00) Izhevsk, Samara (RTZ 3)" }, 
     { "Mauritius Standard Time"," (UTC+04:00) Port Louis" }, 
     { "Georgian Standard Time"," (UTC+04:00) Tbilisi" }, 
     { "Caucasus Standard Time"," (UTC+04:00) Yerevan" }, 
     { "Afghanistan Standard Time"," (UTC+04:30) Kabul" }, 
     { "West Asia Standard Time"," (UTC+05:00) Ashgabat, Tashkent" }, 
     { "Ekaterinburg Standard Time"," (UTC+05:00) Ekaterinburg (RTZ 4)" }, 
     { "Pakistan Standard Time"," (UTC+05:00) Islamabad, Karachi" }, 
     { "India Standard Time"," (UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi" }, 
     { "Sri Lanka Standard Time"," (UTC+05:30) Sri Jayawardenepura" }, 
     { "Nepal Standard Time"," (UTC+05:45) Kathmandu" }, 
     { "Central Asia Standard Time"," (UTC+06:00) Astana" }, 
     { "Bangladesh Standard Time"," (UTC+06:00) Dhaka" }, 
     { "N. Central Asia Standard Time"," (UTC+06:00) Novosibirsk (RTZ 5)" }, 
     { "Myanmar Standard Time"," (UTC+06:30) Yangon (Rangoon)" }, 
     { "SE Asia Standard Time"," (UTC+07:00) Bangkok, Hanoi, Jakarta" }, 
     { "North Asia Standard Time"," (UTC+07:00) Krasnoyarsk (RTZ 6)" }, 
     { "China Standard Time"," (UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi" }, 
     { "North Asia East Standard Time"," (UTC+08:00) Irkutsk (RTZ 7)" }, 
     { "Singapore Standard Time"," (UTC+08:00) Kuala Lumpur, Singapore" }, 
     { "W. Australia Standard Time"," (UTC+08:00) Perth" }, 
     { "Taipei Standard Time"," (UTC+08:00) Taipei" }, 
     { "Ulaanbaatar Standard Time"," (UTC+08:00) Ulaanbaatar" }, 
     { "North Korea Standard Time"," (UTC+08:30) Pyongyang" }, 
     { "Tokyo Standard Time"," (UTC+09:00) Osaka, Sapporo, Tokyo" }, 
     { "Korea Standard Time"," (UTC+09:00) Seoul" }, 
     { "Yakutsk Standard Time"," (UTC+09:00) Yakutsk (RTZ 8)" }, 
     { "Cen. Australia Standard Time"," (UTC+09:30) Adelaide" }, 
     { "AUS Central Standard Time"," (UTC+09:30) Darwin" }, 
     { "E. Australia Standard Time"," (UTC+10:00) Brisbane" }, 
     { "AUS Eastern Standard Time"," (UTC+10:00) Canberra, Melbourne, Sydney" }, 
     { "West Pacific Standard Time"," (UTC+10:00) Guam, Port Moresby" }, 
     { "Tasmania Standard Time"," (UTC+10:00) Hobart" }, 
     { "Magadan Standard Time"," (UTC+10:00) Magadan" }, 
     { "Vladivostok Standard Time"," (UTC+10:00) Vladivostok, Magadan (RTZ 9)" }, 
     { "Russia Time Zone 10"," (UTC+11:00) Chokurdakh (RTZ 10)" }, 
     { "Central Pacific Standard Time"," (UTC+11:00) Solomon Is., New Caledonia" }, 
     { "Russia Time Zone 11"," (UTC+12:00) Anadyr, Petropavlovsk-Kamchatsky (RTZ 11)" }, 
     { "New Zealand Standard Time"," (UTC+12:00) Auckland, Wellington" }, 
     { "UTC+12"," (UTC+12:00) Coordinated Universal Time+12" }, 
     { "Fiji Standard Time"," (UTC+12:00) Fiji" }, 
     { "Kamchatka Standard Time"," (UTC+12:00) Petropavlovsk-Kamchatsky - Old" }, 
     { "Tonga Standard Time"," (UTC+13:00) Nuku'alofa" }, 
     { "Samoa Standard Time"," (UTC+13:00) Samoa" }, 
     { "Line Islands Standard Time"," (UTC+14:00) Kiritimati Island" }, 
    }; 
    string retVal; 
    if(dict.TryGetValue(timeZoneId, out retVal)) 
     return retVal; 
    return defaultDisplayName; 
    }    
} 

Ve sonra:

<select id="timezone" name="timezone"> 
    @foreach (var timeZone in TimeZoneInfo.GetSystemTimeZones()) { 
     <option value="@timeZone.Id">@GetTimeZonesInEnglish(timeZone.Id, timeZone.DisplayName)</option> 
    } 
</select> 

onları güncellemek istediğiniz durumda, bir İngiliz makineden çıkışına "Sözlük başlatıcı formatında" dizeleri bazı basit konsol programı yaptı:

saat dilimleri ana bilgisayar işletim sisteminin kayıt kullanılarak bulunur adlarını görüntülemek ve bağımlı dil olduğundan ne yukarıda adı geçen onlar eğer hiçbir zaman "çalışır" ise

... in this fiddle

bu sözü tüm Şuna bakın güncelleme, bununla başa çıkmanın en iyi yolu olmadığını söyleyebilirim.

benim veritabanı veya her neyse, Konukçumun kontrolünde değilse ben şahsen kendi saat dilimleri halledeceğini

... güncellenmiş bir zaman dilimi veritabanı in the IANA bulabilirsiniz ya wikipedia içinde bunu Datamine kadar ise.

(birçok gereksiz zaman dilimlerini göz önüne alınmadan) kullanıcılara saat dilimlerini gösteren genellikle daha uygundur ve pek çok dilde

Ve tabii ki

yılında (kolayca ayrıştırılabilir) XML dosyası sağlar Unicode gelen Common Locale Data Repository de var, orada ayrıca kontrol etmek isteyebileceğiniz Jon Skeet (et al.) 'dan başka hiçbiri tarafından Noda Time. Ben düşünmek kendi Olson Timezone Veritabanı'nı korur, ama ben bu kadar emin değilim.

0

bir çözüm İngilizce olarak değerlere sahip bir dize tablo kullanmak olacaktır. Dize tablosuna ya sunucu tarafına (yukarıda yaptığınız gibi) ya da istemci tarafına erişirsiniz ve buradaki değerleri kullanarak açılır kutunuzu doldurursunuz.

Numune JSON dosyası:

{ 
"timezones":{ 
    "en":{ 
     "standard":[ 
      {"zone":"(UTC-5:00)", 
      "title":"Eastern Standard Time"}, 
      {"zone":"(UTC-6:00)", 
      "title":"Central Standard Time"}, 
      {"zone":"(UTC-7:00)", 
      "title":"Mountain Standard Time"}, 
      {"zone":"(UTC-7:00)", 
      "title":"Phoenix Standard Time"}, 
      {"zone":"(UTC-8:00)", 
      "title":"Pacific Standard Time"} 
     ], 
     "daylightSavings":[ 
      {"zone":"(UTC-4:00)", 
      "title":"Eastern Standard Time"}, 
      {"zone":"(UTC-5:00)", 
      "title":"Central Standard Time"}, 
      {"zone":"(UTC-6:00)", 
      "title":"Mountain Standard Time"}, 
      {"zone":"(UTC-7:00)", 
      "title":"Pacific Standard Time"} 
     ] 
    } 
} 

}

Numune Sen bir sözlük kullanabilirsiniz, ancak o zaman olurdu

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="jquery-2.0.3.js" ></script> 
     <script type="text/javascript"> 
      var inDaylightSavings = false; 

      $(document).ready(function() { 
       // TODO - set in daylight savings. 

       // Load data from local json file 
       $.getJSON("tz.json", function(obj) { 
        var targetDataset = obj.timezones.en.standard; 
        // Adjust for U.S. daylight savings 
        if(inDaylightSavings){ 
         targetDataset = obj.timezones.en.daylightSavings; 
        } 

        // Update the dropdown 
        $.each(targetDataset, function(key, value){ 
         $("#selectTimezones").append("<option>" + value.zone + " " + value.title + "</option>"); 
        }); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <label>Select Timezone</label> 
     <select name="timezones" id="selectTimezones"> 
      <option value="None" selected="Selected">- not selected -</option> 
     </select> 
    </body> 
</html> 

Result

İlgili konular