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.
Uyarı
Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.
Masaüstü uygulamalarında özniteliği, NeutralResourcesLanguageAttribute bir uygulamanın varsayılan kültürünü ve kaynaklarının konumunu kaynak yöneticisine bildirir. Varsayılan olarak, kaynaklar ana uygulama derlemesine eklenir ve özniteliğini aşağıdaki gibi kullanabilirsiniz. Bu deyim, İngilizcenin (ABD) uygulamanın varsayılan kültürü olduğunu belirtir.
[assembly: NeutralResourcesLanguage("en-US")]
<Assembly:NeutralResourcesLanguage("en-US")>
NeutralResourcesLanguageAttribute özniteliğini, öznitelik deyiminde bir ResourceManager numaralandırma değeri sağlayarak UltimateResourceFallbackLocation'in varsayılan kültür kaynaklarını nerede bulabileceğini belirtmek için de kullanabilirsiniz. Bu en yaygın olarak kaynakların bir uydu derlemesinde bulunduğunu belirtmek için yapılır. Örneğin, aşağıdaki deyim İngilizcenin (ABD) uygulamanın varsayılan veya nötr kültürü olduğunu ve kaynaklarının bir uydu derlemesinde bulunduğunu belirtir. ResourceManager nesnesi bunları en-USadlı bir alt dizinde arar.
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
<Assembly:NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
Tavsiye
Uygulamanızın varsayılan kültürünü tanımlamak için her zaman özniteliğini kullanmanızı NeutralResourcesLanguageAttribute öneririz.
özniteliği iki rol gerçekleştirir:
Varsayılan kültürün kaynakları uygulamanın ana derlemesine eklenmişse ve ResourceManager varsayılan kültürle aynı kültüre ait kaynakları almak zorundaysa, ResourceManager uydu derlemesi aramak yerine otomatik olarak ana derlemede bulunan kaynakları kullanır. Bu, her zamanki derleme araştırmasını atlar, yüklediğiniz ilk kaynak için arama performansını artırır ve çalışma kümenizi azaltabilir. Kaynak dosyalarını araştırmak için kullanan işlemi, ResourceManager bölümüne bakın.
Varsayılan kültürün kaynakları ana uygulama derlemesi yerine bir uydu derlemesinde bulunuyorsa, NeutralResourcesLanguageAttribute özniteliği çalışma zamanının kaynakları yükleyebileceği kültürü ve dizini belirtir.
Windows 8.x Store uygulamaları
Windows 8.x Store uygulamalarında, kaynakları ResourceManager sınıfı ile yüklenen ve alınan durumlarda, NeutralResourcesLanguageAttribute özniteliği, bir arama başarısız olduğunda hangi nötr kültürün kaynaklarının kullanılacağını tanımlar. Kaynakların konumunu belirtmez. Varsayılan olarak, ResourceManager varsayılan kültürün kaynaklarını bulmak için uygulamanın paket kaynak dizini (PRI) dosyasını kullanır. NeutralResourcesLanguageAttribute özniteliği tarafından tanımlanan nötr kültür, bu etkinin simülasyonunu yapmak için kullanıcı arabirimi dil listesinin sonuna eklenir.
Windows RuntimeWindows.ApplicationModel.Resources.ResourceLoader sınıfını veya Windows.ApplicationModel.Resources.Core ad alanındaki türleri kullanarak kaynakları yükler ve alırsanız, NeutralResourcesLanguageAttribute öznitelik yoksayılır.
Örnekler
Aşağıdaki örnek, varsayılan veya geri dönüş kültürünü tanımlamak için özniteliğin NeutralResourcesLanguageAttribute kullanımını göstermek için basit bir "Merhaba Dünya" uygulaması kullanır. İngilizce (en), İngilizce (ABD) (en-US) ve Fransızca (Fransa) (fr-FR) kültürleri için ayrı kaynak dosyalarının oluşturulmasını gerektirir. Aşağıda, İngilizce kültürü için ExampleResources.txt adlı bir metin dosyasının içeriği gösterilmektedir.
# Resources for the default (en) culture.
Greeting=Hello
Kaynak dosyasını bir uygulamada kullanmak için Kaynak Dosya Oluşturucusunu (Resgen.exe) kullanarak dosyayı metin (.txt) biçiminden ikili (.resources) biçimine aşağıdaki gibi dönüştürmelisiniz:
resgen ExampleResources.txt
Uygulama derlendiğinde ikili kaynak dosyası ana uygulama derlemesine eklenir.
Aşağıda, İngilizce (ABD) kültürü için kaynaklar sağlayan ExampleResources.en-US.txt adlı bir metin dosyasının içeriği gösterilmektedir.
# Resources for the en-US culture.
Greeting=Hi
Metin dosyası, komut satırındaki Kaynak Dosya Oluşturucu (ResGen.exe) kullanılarak aşağıdaki gibi ikili kaynaklar dosyasına dönüştürülebilir:
resgen ExampleResources.en-US.txt ExampleResources.en-US.resources
İkili kaynak dosyası daha sonra Derleme Bağlayıcısı (Al.exe) kullanılarak bir derlemede derlenmeli ve aşağıdaki komutu vererek uygulama dizininin en-US alt dizinine yerleştirilmelidir:
al /t:lib /embed:ExampleResources.en-US.resources /culture:en-US /out:en-us\Example.resources.dll
Aşağıda, Fransızca (Fransa) kültürü için kaynaklar sağlayan ExampleResources.fr-FR.txt adlı bir metin dosyasının içeriği gösterilmektedir.
# Resources for the fr-FR culture.
Greeting=Bonjour
Metin dosyası, komut satırında ResGen.exe kullanılarak aşağıdaki gibi ikili kaynak dosyasına dönüştürülebilir:
resgen ExampleResources.fr-FR.txt ExampleResources.fr-FR.resources
İkili kaynaklar dosyası daha sonra Derleme Bağlayıcısı kullanılarak bir derlemede derlenmeli ve aşağıdaki komutu vererek uygulama dizininin fr-FR alt dizinine yerleştirilmelidir:
al /t:lib /embed:ExampleResources.fr-FR.resources /culture:fr-FR /out:fr-FR\Example.resources.dll
Aşağıdaki örnek, geçerli kültürü ayarlayan, kullanıcının adını soran ve yerelleştirilmiş bir dize görüntüleyen yürütülebilir kodu sağlar.
using System;
using System.Globalization;
using System.Reflection;
using System.Resources;
using System.Threading;
[assembly: NeutralResourcesLanguageAttribute("en")]
public class Example
{
public static void Main()
{
// Select the current culture randomly to test resource fallback.
string[] cultures = { "de-DE", "en-us", "fr-FR" };
Random rnd = new Random();
int index = rnd.Next(0, cultures.Length);
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(cultures[index]);
Console.WriteLine($"The current culture is {CultureInfo.CurrentUICulture.Name}");
// Retrieve the resource.
ResourceManager rm = new ResourceManager("ExampleResources",
typeof(Example).Assembly);
string greeting = rm.GetString("Greeting");
Console.Write("Enter your name: ");
string name = Console.ReadLine();
Console.WriteLine($"{greeting} {name}!");
}
}
Imports System.Globalization
Imports System.Resources
Imports System.Threading
<Assembly:NeutralResourcesLanguageAttribute("en")>
Module Example
Public Sub Main()
' Select the current culture randomly to test resource fallback.
Dim cultures() As String = { "de-DE", "en-us", "fr-FR" }
Dim rnd As New Random()
Dim index As Integer = rnd.Next(0, cultures.Length)
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(cultures(index))
Console.WriteLine("The current culture is {0}",
CultureInfo.CurrentUICulture.Name)
' Retrieve the resource.
Dim rm As New ResourceManager("ExampleResources" , GetType(Example).Assembly)
Dim greeting As String = rm.GetString("Greeting")
Console.Write("Enter your name: ")
Dim name As String = Console.ReadLine()
Console.WriteLine("{0} {1}", greeting, name)
End Sub
End Module
Visual Basic'te aşağıdaki komut kullanılarak derlenebilir:
vbc Example.vb /resource:ExampleResources.resources
veya C# dilinde aşağıdaki komutu kullanarak:
csc Example.cs /resource:ExampleResources.resources