Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.
IgnoreCase özelliği, name kaynak adlarıyla karşılaştırılmasının, büyük/küçük harfe duyarsız (varsayılan) mı yoksa büyük/küçük harfe duyarlı mı olduğunu belirler.
Uyarı
GetString yöntemleri listelenenden daha fazla özel durum oluşturabilir. Bunun nedenlerinden biri, bu yöntemin çağırmış olduğu bir yöntemin özel durum oluşturmasıdır. Örneğin, bir uydu bütünleştirme parçası dağıtılırken veya yüklenirken bir hata yapıldığında bir FileLoadException özel durumu fırlatılabilir veya kullanıcı tanımlı bir tür, seri durumdan çıkarılırken kullanıcı tanımlı bir özel durum fırlatırsa bir SerializationException özel durumu fırlatılabilir.
GetString(String) yöntemi
Masaüstü uygulamaları
Masaüstü uygulamalarında döndürülen kaynak, CultureInfo.CurrentUICulture özelliği tarafından tanımlandığı gibi geçerli iş parçacığının kullanıcı arabirimi kültürü için yerelleştirilir. Kaynak bu kültür için yerelleştirilmemişse, kaynak yöneticisi kaynakları paketleme ve dağıtma makalesinin "Kaynak Geri Dönüş İşlemi" bölümünde açıklanan adımları izleyerek kaynağı yoklar. Kullanılabilir yerelleştirilmiş kaynak kümesi bulunmazsa, kaynak yöneticisi varsayılan kültürün kaynaklarına geri döner. Kaynak yöneticisi varsayılan kültürün kaynak kümesini yükleyemiyorsa, yöntemi bir MissingManifestResourceException özel durumu oluşturur veya kaynak kümesinin bir uydu derlemesinde bulunması bekleniyorsa MissingSatelliteAssemblyException özel durumu oluşturur. Kaynak yöneticisi uygun bir kaynak kümesi yükleyebiliyorsa ancak nameadlı bir kaynağı bulamıyorsa, yöntemi nulldöndürür.
Windows 8.x uygulamaları
Önemli
ResourceManager sınıfı Windows 8.x uygulamalarında desteklense de, kullanılmasını önermeyiz. Bu sınıfı yalnızca Windows 8.x uygulamalarıyla kullanılabilecek Taşınabilir Sınıf Kitaplığı projeleri geliştirirken kullanın. Windows 8.x uygulamalarından kaynak almak için bunun yerine Windows.ApplicationModel.Resources.ResourceLoader sınıfını kullanın.
Windows 8.x uygulamalarında GetString(String) yöntemi, çağıranın geçerli kullanıcı arabirimi kültürü ayarları için yerelleştirilmiş name dize kaynağının değerini döndürür. Kültür listesi, işletim sisteminin tercih edilen kullanıcı arabirimi dil listesinden türetilir. Kaynak yöneticisi nameeşleştiremezse yöntemi nulldöndürür.
Örnek
Aşağıdaki örnek, kültüre özgü kaynakları almak için GetString yöntemini kullanır. İngilizce (en), Fransızca (Fransa) (fr-FR) ve Rusça (Rusya) (ru-RU) kültürleri için .txt dosyalardan derlenen kaynaklardan oluşur. Örnek, geçerli kültürü ve geçerli kullanıcı arabirimi kültürünü İngilizce (ABD), Fransızca (Fransa), Rusça (Rusya) ve İsveççe (İsveç) olarak değiştirir. Ardından yerelleştirilmiş dizeyi almak için GetString yöntemini çağırır ve bu dize geçerli gün ve ay ile birlikte görüntülenir. Çıktının, geçerli kullanıcı arabirimi kültürünün İsveççe (İsveç) olması dışında uygun yerelleştirilmiş dizeyi görüntülediğine dikkat edin. İsveç dili kaynakları kullanılamadığından, uygulama bunun yerine varsayılan kültürün (İngilizce) kaynaklarını kullanır. Örnek, aşağıdaki tabloda listelenen metin tabanlı kaynak dosyalarını gerektirir. Her birinin DateStartadlı tek bir dize kaynağı vardır.
| Kültür | Dosya adı | Kaynak adı | Kaynak değeri |
|---|---|---|---|
| en-US | DateStrings.txt | DateStart |
Bugün |
| fr-FR | DateStrings.fr-FR.txt | DateStart |
Bugün, bu |
| ru-RU | DateStrings.ru-RU.txt | DateStart |
Сегодня |
C# örneğini derlemek için aşağıdaki toplu iş dosyasını kullanabilirsiniz. Visual Basic için cscvbcolarak değiştirin ve kaynak kod dosyasının uzantısını .cs.vbolarak değiştirin.
resgen DateStrings.txt
csc showdate.cs /resource:DateStrings.resources
md fr-FR
resgen DateStrings.fr-FR.txt
al /out:fr-FR\Showdate.resources.dll /culture:fr-FR /embed:DateStrings.fr-FR.resources
md ru-RU
resgen DateStrings.ru-RU.txt
al /out:ru-RU\Showdate.resources.dll /culture:ru-RU /embed:DateStrings.ru-RU.resources
Örnek için kaynak kodu aşağıda verilmiştir (Visual Basic sürümü için ShowDate.vb veya C# sürümü için ShowDate.cs).
using System;
using System.Globalization;
using System.Resources;
using System.Threading;
public class Example
{
public static void Main()
{
string[] cultureNames = [ "en-US", "fr-FR", "ru-RU", "sv-SE" ];
ResourceManager rm = new ResourceManager("DateStrings",
typeof(Example).Assembly);
foreach (var cultureName in cultureNames) {
CultureInfo culture = CultureInfo.CreateSpecificCulture(cultureName);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
Console.WriteLine($"Current UI Culture: {CultureInfo.CurrentUICulture.Name}");
string dateString = rm.GetString("DateStart");
Console.WriteLine($"{dateString} {DateTime.Now:M}.\n");
}
}
}
// The example displays output similar to the following:
// Current UI Culture: en-US
// Today is February 03.
//
// Current UI Culture: fr-FR
// Aujourd'hui, c'est le 3 février
//
// Current UI Culture: ru-RU
// Сегодня февраля 03.
//
// Current UI Culture: sv-SE
// Today is den 3 februari.
Imports System.Globalization
Imports System.Resources
Imports System.Threading
<Assembly:NeutralResourcesLanguage("en")>
Module Example
Public Sub Main()
Dim cultureNames() As String = { "en-US", "fr-FR", "ru-RU", "sv-SE" }
Dim rm As New ResourceManager("DateStrings",
GetType(Example).Assembly)
For Each cultureName In cultureNames
Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
Thread.CurrentThread.CurrentCulture = culture
Thread.CurrentThread.CurrentUICulture = culture
Console.WriteLine("Current UI Culture: {0}",
CultureInfo.CurrentUICulture.Name)
Dim dateString As String = rm.GetString("DateStart")
Console.WriteLine("{0} {1:M}.", dateString, Date.Now)
Console.WriteLine()
Next
End Sub
End Module
' The example displays output similar to the following:
' Current UI Culture: en-US
' Today is February 03.
'
' Current UI Culture: fr-FR
' Aujourd'hui, c'est le 3 février
'
' Current UI Culture: ru-RU
' Сегодня февраля 03.
'
' Current UI Culture: sv-SE
' Today is den 3 februari.
GetString(String, CultureInfo) yöntemi
Masaüstü uygulamaları
Masaüstü uygulamalarında, culturenullise GetString(String, CultureInfo) yöntemi CultureInfo.CurrentUICulture özelliğinden elde edilen geçerli kullanıcı arabirimi kültürünü kullanır.
Döndürülen kaynak, culture parametresi tarafından belirtilen kültür için yerelleştirilir. Kaynak cultureiçin yerelleştirilmemişse, kaynak yöneticisi, Kaynakları Paketleme ve Dağıtma konusunun "Kaynak Geri Dönüş İşlemi" bölümünde açıklanan adımları izleyerek kaynağı yoklar. Kullanılabilir kaynak kümesi bulunmazsa, kaynak yöneticisi varsayılan kültürün kaynaklarına geri döner. Kaynak yöneticisi varsayılan kültürün kaynak kümesini yükleyemiyorsa, yöntemi bir MissingManifestResourceException özel durumu oluşturur veya kaynak kümesinin bir uydu derlemesinde bulunması bekleniyorsa MissingSatelliteAssemblyException özel durumu oluşturur. Kaynak yöneticisi uygun bir kaynak kümesi yükleyebiliyorsa ancak nameadlı bir kaynağı bulamıyorsa, yöntemi nulldöndürür.
Windows 8.x uygulamaları
Önemli
ResourceManager sınıfı Windows 8.x uygulamalarında desteklense de, kullanılmasını önermeyiz. Bu sınıfı yalnızca Windows 8.x uygulamalarıyla kullanılabilecek Taşınabilir Sınıf Kitaplığı projeleri geliştirirken kullanın. Windows 8.x uygulamalarından kaynak almak için bunun yerine Windows.ApplicationModel.Resources.ResourceLoader sınıfını kullanın.
Windows 8.x uygulamalarında GetString(String, CultureInfo) yöntemi, name parametresi tarafından belirtilen kültür için yerelleştirilmiş culture dize kaynağının değerini döndürür. Kaynak culture kültürü için yerelleştirilmemişse arama, Windows 8 dilinin geri dönüş listesinin tamamını kullanır ve varsayılan kültüre baktıktan sonra durur. Kaynak yöneticisi nameeşleştiremezse yöntemi nulldöndürür.
Örnek
Aşağıdaki örnek, kültüre özgü kaynakları almak için GetString(String, CultureInfo) yöntemini kullanır. Örneğin varsayılan kültürü İngilizcedir (en) ve Fransızca (Fransa) (fr-FR) ve Rusça (Rusya) (ru-RU) kültürleri için uydu derlemeleri içerir. Örnek, GetString(String, CultureInfo)çağırmadan önce geçerli kültürü ve geçerli kullanıcı arabirimi kültürünü Rusça (Rusya) olarak değiştirir. Ardından GetString yöntemini ve DateTime.ToString(String, IFormatProvider) yöntemini çağırır ve her yönteme Fransızca (Fransa) ve İsveççe (İsveç) kültürlerini temsil eden CultureInfo nesneleri geçirir. Çıktıda, GetString yöntemi Fransızca dil kaynağını alabildiği için, ayın ayı ve gününün yanı sıra onlardan önce gelen dize Fransızca görünür. Ancak İsveççe (İsveç) kültürü kullanıldığında, kendisinden önceki dize İngilizce olmasına rağmen ayın ayı ve günü İsveççe olarak görünür. Bunun nedeni kaynak yöneticisinin yerelleştirilmiş İsveç dili kaynaklarını bulamamasıdır, bu nedenle bunun yerine varsayılan İngilizce kültürü için bir kaynak döndürür.
Örnek, aşağıdaki tabloda listelenen metin tabanlı kaynak dosyalarını gerektirir. Her birinin DateStartadlı tek bir dize kaynağı vardır.
| Kültür | Dosya adı | Kaynak adı | Kaynak değeri |
|---|---|---|---|
| en-US | DateStrings.txt | DateStart |
Bugün |
| fr-FR | DateStrings.fr-FR.txt | DateStart |
Bugün, bu |
| ru-RU | DateStrings.ru-RU.txt | DateStart |
Сегодня |
Visual Basic örneğini derlemek için aşağıdaki toplu iş dosyasını kullanabilirsiniz. C# dilinde derlemek için vbccscolarak değiştirin ve kaynak kod dosyasının uzantısını .vb olarak .csolarak değiştirin.
resgen DateStrings.txt
vbc showdate.vb /resource:DateStrings.resources
md fr-FR
resgen DateStrings.fr-FR.txt
al /out:fr-FR\Showdate.resources.dll /culture:fr-FR /embed:DateStrings.fr-FR.resources
md ru-RU
resgen DateStrings.ru-RU.txt
al /out:ru-RU\Showdate.resources.dll /culture:ru-RU /embed:DateStrings.ru-RU.resources
Örnek için kaynak kodu aşağıda verilmiştir (Visual Basic sürümü için ShowDate.vb veya C# sürümü için ShowDate.cs).
using System;
using System.Globalization;
using System.Resources;
using System.Threading;
public class Example2
{
public static void Main()
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-RU");
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU");
string[] cultureNames = [ "fr-FR", "sv-SE" ];
ResourceManager rm = new ResourceManager("DateStrings",
typeof(Example).Assembly);
foreach (var cultureName in cultureNames)
{
CultureInfo culture = CultureInfo.CreateSpecificCulture(cultureName);
string dateString = rm.GetString("DateStart", culture);
Console.WriteLine($"{culture.DisplayName}: {dateString} {DateTime.Now.ToString("M", culture)}.");
Console.WriteLine();
}
}
}
// The example displays output similar to the following:
// French (France): Aujourd'hui, c'est le 7 février.
//
// Swedish (Sweden): Today is den 7 februari.
Imports System.Globalization
Imports System.Resources
Imports System.Threading
Module Example2
Public Sub Main()
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-RU")
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU")
Dim cultureNames() As String = {"fr-FR", "sv-SE"}
Dim rm As New ResourceManager("DateStrings",
GetType(Example).Assembly)
For Each cultureName In cultureNames
Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
Dim dateString As String = rm.GetString("DateStart", culture)
Console.WriteLine("{0}: {1} {2}.", culture.DisplayName, dateString,
Date.Now.ToString("M", culture))
Console.WriteLine()
Next
End Sub
End Module
' The example displays output similar to the following:
' French (France): Aujourd'hui, c'est le 7 février.
'
' Swedish (Sweden): Today is den 7 februari.