.NET uygulamalarındaki kaynaklar
Üretim kalitesindeki neredeyse tüm uygulamaların kaynakları kullanması gerekir. Kaynak, bir uygulamayla mantıksal olarak dağıtılan yürütülemez verilerdir. Bir kaynak, bir uygulamada hata iletileri veya kullanıcı arabiriminin bir parçası olarak görüntülenebilir. Kaynaklar dizeler, görüntüler ve kalıcı nesneler de dahil olmak üzere bir dizi biçimde veri içerebilir. (Kalıcı nesneleri bir kaynak dosyasına yazmak için nesnelerin serileştirilebilir olması gerekir.) Verilerinizi bir kaynak dosyasında depolamak, uygulamanızın tamamını yeniden derlemeden verileri değiştirmenize olanak tanır. Ayrıca verileri tek bir konumda depolamanızı sağlar ve çoklu konumlarda depolanan sabit kodlanmış verilerin kullanılması gereğini ortadan kaldırır.
.NET, kaynakların oluşturulması ve yerelleştirilmesi için kapsamlı destek sağlar. Ayrıca.NET, yerelleştirilmiş kaynakları paketlemek ve dağıtmak için basit bir modeli destekler.
Kaynakları oluşturma ve yerelleştirme
Yerelleştirilmemiş bir uygulamada, özellikle aksi takdirde kaynak koddaki birden fazla konumda sabit kodlanmış olabilen dizeler için kaynak dosyalarını uygulama verilerinin bir deposu olarak kullanabilirsiniz. En yaygın olarak, kaynakları metin (.txt) veya XML (.resx) dosyaları olarak oluşturur ve ikili .resources dosyalarında derlemek için Resgen.exe (Kaynak Dosya Oluşturucu) kullanırsınız. Bu dosyalar, bir dil derleyicisi tarafından uygulamanın yürütülebilir dosyası içine gömülebilir. Kaynak oluşturma hakkında daha fazla bilgi için bkz . Kaynak dosyaları oluşturma.
Aynı zamanda uygulamalarınızın kaynaklarını belirli kültürler için yerelleştirebilirsiniz. Bu, uygulamalarınızın yerelleştirilmiş (çevrilmiş) sürümlerini oluşturmanıza olanak sağlar. Yerelleştirilmiş kaynakları kullanan bir uygulama geliştirdiğinizde, kaynakları uygun kaynaklar mevcut olmadığında nötr veya geri dönüş kültürü olarak hizmet veren bir kültür belirtirsiniz. Genel olarak, nötr kültürün kaynakları uygulamanın yürütülebilir dosyasında depolanır. Yerelleştirilmiş tek kaynaklar için kalan kaynaklar tek başına uydu derlemeleri içinde depolanır. Daha fazla bilgi için bkz . Uydu derlemeleri oluşturma.
Kaynakları paketleme ve dağıtma
Yerelleştirilmiş uygulama kaynaklarını uydu derlemelerine dağıtırsınız. Bir uydu derlemesi, tek bir kültüre ait kaynakları içerir; herhangi bir uygulama kodu içermez. Uydu derleme dağıtım modelinde, bir varsayılan derlemesi olan (genellikle ana derleme) ve uygulamanın desteklediği her bir kültür için bir uydu derlemesi olan bir uygulama oluşturun. Uydu derlemeleri ana derlemenin parçası olmadığından, uygulamanın ana derlemesini değiştirmeden belirli bir kültüre karşılık gelen kaynakları kolay bir şekilde değiştirebilir veya güncelleştirebilirsiniz.
Uygulamanızın varsayılan kaynak derlemesini hangi kaynakların oluşturacağını dikkatli bir şekilde belirleyin. Ana derlemenin bir parçası olduğundan, bunda yapılacak herhangi bir değişiklik, ana derlemeyi değiştirmenizi gerektirecektir. Varsayılan bir kaynak sağlamazsanız, kaynak geri dönüş işlemi kaynağı bulmaya çalıştığında bir özel durum oluşur. İyi tasarlanmış bir uygulamada kaynakların kullanılması hiçbir zaman özel bir durum oluşturmamalıdır.
Daha fazla bilgi için Kaynakları Paketleme ve Dağıtma makalesine bakın.
Kaynakları alma
Çalışma zamanında bir uygulama, CultureInfo.CurrentUICulture özelliği tarafından belirtilen kültürü temel alan, iş parçacığını düzeyinde uygun yerelleştirilmiş kaynakları yükler. Bu özellik değeri aşağıdaki şekilde türetilir:
Yerelleştirilmiş kültürü temsil eden bir CultureInfo nesnesini doğrudan Thread.CurrentUICulture özelliğine atayarak.
Eğer bir kültür açıkça atanmamışsa, CultureInfo.DefaultThreadCurrentUICulture özelliğinden varsayılan iş parçacığı UI kültürünü alarak.
Varsayılan iş parçacığı ui kültürü açıkça atanmamışsa, yerel bilgisayardaki geçerli kullanıcı için kültürü alarak. Windows üzerinde çalışan .NET uygulamaları bunu Windows
GetUserDefaultUILanguage
işlevini çağırarak yapar.
Geçerli UI kültürünün nasıl ayarlandığı hakkında daha fazla bilgi için CultureInfo ve CultureInfo.CurrentUICulture başvuru sayfalarına bakın.
Ardından, System.Resources.ResourceManager sınıfını kullanarak geçerli UI kültürünün veya belirli bir kültürün kaynaklarını alabilirsiniz. sınıfı en yaygın olarak kaynakları System.Resources almak için kullanılır, ancak ResourceManager ad alanı kaynakları almak için kullanabileceğiniz ek türler içerir. Bu modüller şunlardır:
Bir derlemede gömülü olan veya bir tek başına ikili .resources dosyasında depolanan kaynakları numaralandırmanızı sağlayan ResourceReader sınıfı. Çalışma zamanında kullanılabilir olan kaynakların tam adını bilmediğinizde bu yararlı olur.
Kaynakları bir XML (.resx) dosyasından almanızı sağlayan ResXResourceReader sınıfı.
Geri dönüş kurallarını gözlemlemeden belirli bir kültüre ait kaynakları almanızı sağlayan ResourceSet sınıfı. Kaynaklar bir derlemede veya bir tek başına ikili .resources dosyasında depolanabilir. Kaynakları başka bir kaynaktan almak için aynı zamanda IResourceReader sınıfını kullanmanızı sağlayan bir ResourceSet uygulaması geliştirebilirsiniz.
Bir XML kaynak dosyasındaki tüm öğeleri belleğe almanızı sağlayan ResXResourceSet sınıfı.