Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az alkalmazások a ResourceManager osztály által képviselt .NET Framework erőforráskezelőre támaszkodnak a honosított erőforrások lekéréséhez. A Resources Manager feltételezi, hogy hub and spoke modell kerül alkalmazásra az erőforrások csomagolására és üzembe helyezésére. A központ a fő szerelvény, amely tartalmazza a nem lokálható végrehajtható kódot és az egyetlen kultúrához tartozó erőforrásokat, az úgynevezett semleges vagy alapértelmezett kultúrát. Az alapértelmezett kultúra az alkalmazás tartalék kultúrája; ez az a kultúra, amelynek erőforrásait akkor használja a rendszer, ha a honosított erőforrások nem találhatók. Minden küllő egy olyan műholdas szerelvényhez csatlakozik, amely egyetlen kultúra erőforrásait tartalmazza, de nem tartalmaz kódot.
Ennek a modellnek számos előnye van:
- Az alkalmazás üzembe helyezése után növekményesen adhat hozzá erőforrásokat az új kultúrákhoz. Mivel a kultúraspecifikus erőforrások későbbi fejlesztése jelentős időt igényelhet, ez lehetővé teszi a fő alkalmazás kiadását, és később a kultúraspecifikus erőforrásokat.
- Az alkalmazás műholdszerelvényeit az alkalmazás újrafordítása nélkül frissítheti és módosíthatja.
- Egy alkalmazásnak csak azokat a műholdas szerelvényeket kell betöltenie, amelyek tartalmazzák az adott kultúrához szükséges erőforrásokat. Ez jelentősen csökkentheti a rendszererőforrások használatát.
Ennek a modellnek azonban hátrányai is vannak:
- Több erőforráskészletet kell kezelnie.
- Az alkalmazások tesztelésének kezdeti költsége nő, mivel több konfigurációt kell tesztelnie. Vegye figyelembe, hogy hosszú távon egyszerűbb és olcsóbb lesz egy magalkalmazás tesztelése több műholdon, mint több párhuzamos nemzetközi verzió tesztelése és karbantartása.
Erőforrás-elnevezési konvenciók
Amikor az alkalmazás erőforrásait csomagolja, el kell neveznie őket a közös nyelvi futtatókörnyezet által elvárt erőforrás-elnevezési konvenciók használatával. A futtatókörnyezet az erőforrást a kultúraneve alapján azonosítja. Minden kultúra egyedi nevet kap, amely általában egy nyelvhez társított kétbetűs kisbetűs kulturális név és szükség esetén egy országhoz vagy régióhoz társított kétbetűs, nagybetűs szubkultúranév kombinációja. A szubkultúra neve a kultúra nevét követi, kötőjellel (-) elválasztva. Ilyenek például a Japánban beszélt japán nyelv (ja-JP), az Egyesült Államokban beszélt angol (en-US), a Németországban beszélt német (de-DE) vagy az Ausztriában beszélt német (de-AT). A Windows által támogatott nyelv/régiónevek listájában tekintse meg a Nyelvi címke oszlopot. A kulturális nevek a BCP 47 által meghatározott szabványt követik.
Megjegyzés:
Vannak kivételek a kétbetűs kulturális nevek, például zh-Hans a kínai (egyszerűsített) esetében.
További információ: Erőforrásfájlok létrehozása és műholdas szerelvények létrehozása.
Az erőforrási visszaesési folyamat
Az erőforrások csomagolására és üzembe helyezésére szolgáló küllős modell tartalék eljárással keresi meg a megfelelő erőforrásokat. Ha egy alkalmazás olyan honosított erőforrást kér, amely nem érhető el, a közös nyelvi futtatókörnyezet a kultúrák hierarchiájában keres egy megfelelő tartalék erőforrást, amely a leginkább megfelel a felhasználó alkalmazásának kérésének, és kivételt csak végső megoldásként jelez. A hierarchia minden szintjén, ha talál egy megfelelő erőforrást, a futtatókörnyezet használja azt. Ha az erőforrás nem található, a keresés a következő szinten folytatódik.
A keresési teljesítmény javítása érdekében alkalmazza az attribútumot a NeutralResourcesLanguageAttribute főszerelvényre, és adja meg annak a semleges nyelvnek a nevét, amely a főszerelvényen fog működni.
.NET-keretrendszer erőforrás-tartalékfolyamata
A .NET-keretrendszer erőforrás-tartalékfolyamata a következő lépéseket foglalja magában:
Jótanács
Előfordulhat, hogy a <relativeBindForResources> konfigurációs elem használatával optimalizálhatja az erőforrás-visszaesési folyamatot és azt a folyamatot, amely során a futtatókörnyezet vizsgálja az erőforrás-szerelvényeket. További információ: Az erőforrás-visszavételi folyamat optimalizálása.
A futtatókörnyezet először átvizsgálja a globális assembly gyorsítótárát egy olyan assemblynél, amely megfelel az alkalmazás kért kultúrájának.
A globális assembly gyorsítótár olyan erőforrás-szerelvényeket tárolhat, amelyeket több alkalmazás is megoszt. Ez megszabadítja attól, hogy minden létrehozott alkalmazás címtárstruktúrájában bizonyos erőforráskészleteket kell tartalmaznia. Ha a futtatókörnyezet a szerelvényre mutató hivatkozást talál, megkeresi a szerelvényben a kért erőforrást. Ha megtalálja a bejegyzést a szerelésben, akkor a kért erőforrást használja. Ha nem találja a bejegyzést, folytatja a keresést.
A futtatókörnyezet ezután ellenőrzi a jelenleg futó összeállítás könyvtárát, hogy van-e benne olyan alkönyvtár, amely megfelel a kért kultúrának. Ha megtalálja az alkönyvtárat, az adott alkönyvtárban keres egy érvényes műhold-gyűjteményt a megadott kultúrához. A futtatókörnyezet ezután megkeresi a kért erőforrást a satelit-összeállításban. Ha megtalálja az erőforrást a szerelvényben, azt használja. Ha nem találja az erőforrást, folytatja a keresést.
A következő futtatókörnyezet lekérdezi a Windows Installert annak megállapításához, hogy a műholdas szerelvényt igény szerint kell-e telepíteni. Ha igen, kezeli a telepítést, betölti a gyűjteményt, és megkeresi azt vagy a kért erőforrást. Ha megtalálja az erőforrást a szerelvényben, azt használja. Ha nem találja az erőforrást, folytatja a keresést.
A futtatókörnyezet kiemeli az AppDomain.AssemblyResolve eseményt, jelezve, hogy nem tudja megtalálni a satelit összeállítást. Ha úgy dönt, hogy kezeli az eseményt, az eseménykezelő hivatkozhat arra a műholdas szerelvényre, amelynek erőforrásai a kereséshez lesznek felhasználva. Ellenkező esetben az eseménykezelő visszatér
null, és a keresés folytatódik.A futtatókörnyezet ismét megkeresi a globális assembly gyorsítótárat, ezúttal a megadott kultúra szülőassemblyjét. Ha az alapszerelvény megtalálható a globális szerelvény-gyorsítótárban, a futtatókörnyezet megkeresi a szerelvényben a kért erőforrást.
A szülői kultúra a megfelelő tartalék kultúraként van meghatározva. Tekintsük a szülőket tartalékjelöltként, mert bármilyen erőforrás biztosítása előnyösebb, mint egy kivétel feldobása. Ez a folyamat lehetővé teszi az erőforrások újrafelhasználását is. Egy adott erőforrást csak akkor szabad a szülőszinten megadni, ha a gyermekkultúrának nem kell honosítania a kért erőforrást. Például, ha műholdas szerelvényeket biztosít a
en(semleges angol),en-GB(az Egyesült Királyságban beszélt angol) ésen-US(az Egyesült Államokban beszélt angol) nyelvekhez, akkor aenműhold tartalmazná a közös terminológiát, míg aen-GBésen-USműholdak csak az eltérő kifejezések felülbírálását biztosítják.A futtatókörnyezet ezután ellenőrzi az aktuálisan végrehajtó szerelvény könyvtárát, és ellenőrzi, hogy tartalmaz-e szülőkönyvtárat. Ha létezik szülőkönyvtár, a futtatókörnyezet megkeresi a könyvtárban a szülőkultúrának megfelelő érvényes műhold-gyűjteményt. Ha megtalálja a szerelvényt, a futtatókörnyezet megkeresi benne a kért erőforrást. Ha megtalálja az erőforrást, azt használja. Ha nem találja az erőforrást, folytatja a keresést.
A következő futtatókörnyezet lekérdezi a Windows Installert annak megállapításához, hogy a szülő műholdas szerelvényt igény szerint kell-e telepíteni. Ha igen, kezeli a telepítést, betölti a gyűjteményt, és megkeresi azt vagy a kért erőforrást. Ha megtalálja az erőforrást a szerelvényben, azt használja. Ha nem találja az erőforrást, folytatja a keresést.
A futtatókörnyezet az AppDomain.AssemblyResolve eseményt aktiválja, jelezve, hogy nem talál megfelelő helyettesítő erőforrást. Ha úgy dönt, hogy kezeli az eseményt, az eseménykezelő hivatkozhat arra a műholdas szerelvényre, amelynek erőforrásai a kereséshez lesznek felhasználva. Ellenkező esetben az eseménykezelő visszatér
null, és a keresés folytatódik.A futtatókörnyezet következő lépése a szülőszerelvényekben keres, ahogy az előző három lépésben is, számos lehetséges szinten. Minden kultúrának csak egy szülője van, amelyet a CultureInfo.Parent tulajdonság határoz meg, de egy szülőnek lehet saját szülője. A szülőkultúrák keresése leáll, amikor egy kultúra tulajdonsága Parent visszatér; az erőforrás-visszavétel esetében az invariáns CultureInfo.InvariantCulturekultúra nem tekinthető szülőkultúrának vagy olyan kultúrának, amely rendelkezhet erőforrásokkal.
Ha az eredetileg megadott kultúra és az összes szülő keresése megtörtént, és az erőforrás továbbra sem található, a rendszer az alapértelmezett (tartalék) kultúra erőforrását használja. Az alapértelmezett kultúra erőforrásai általában a fő alkalmazásszerelvény részét képezik. Azonban megadhatja a Satellite attribútum Location tulajdonságának NeutralResourcesLanguageAttribute értékét, amely azt jelzi, hogy az erőforrások végső tartalék helye nem a főszerelvény, hanem egy műholdat tartalmazó szerelvény.
Megjegyzés:
Az alapértelmezett erőforrás az egyetlen olyan erőforrás, amely a főszerelvénysel fordítható le. Ha nem ad meg egy műholdas összetevőt az NeutralResourcesLanguageAttribute attribútum használatával, az lesz a végső tartalék (végső szülő). Ezért azt javasoljuk, hogy mindig adjon meg egy alapértelmezett erőforráskészletet a főszerelvényben. Ez segít megakadályozni, hogy kivételek kerüljenek dobásra. Az alapértelmezett erőforrás beleszámításával a fájl minden erőforráshoz tartalékot biztosít, és biztosítja, hogy legalább egy erőforrás mindig jelen legyen a felhasználó számára, még akkor is, ha az nem kulturálisan specifikus.
Végül, ha a futtatókörnyezet nem talál erőforrást egy alapértelmezett (tartalék) kultúrához, a rendszer kivételt MissingManifestResourceException vagy MissingSatelliteAssemblyException kivételt jelez, amely azt jelzi, hogy az erőforrás nem található.
Tegyük fel például, hogy az alkalmazás spanyol (Mexikó) (a kultúra) számára honosított erőforrást es-MX kér. A futtatókörnyezet először megkeresi a globális assembly tárolóban az es-MX-val egyező szerelvényt, de nem találja. A futtatókörnyezet ezután megkeresi az éppen futó összeállítás mappáját egy es-MX könyvtárban. Ennek hiányában a futtatókörnyezet újra megkeresi a globális assembly gyorsítótárát egy szülőassemblyben, amely a megfelelő tartalék kultúrát tükrözi – ebben az esetben es (spanyol). Ha a szülőszerelvény nem található, a futtatókörnyezet a szülőszerelvények összes lehetséges szintjét megkeresi a es-MX kultúrában, amíg meg nem talál egy megfelelő erőforrást. Ha nem található erőforrás, a futtatókörnyezet az alapértelmezett kultúrához használja az erőforrást.
A .NET-keretrendszer erőforrás-tartalékfolyamatának optimalizálása
A következő feltételek mellett optimalizálhatja azt a folyamatot, amellyel a futtatókörnyezet erőforrásokat keres a műholdas szerelvényekben:
A műholdas szerelvények a kódszerelvényével azonos helyen vannak üzembe helyezve. Ha a kódszerelvény telepítve van a globális összeszerelési gyorsítótárban, a műholdas összeszerelvények is telepítve vannak a globális összeszerelési gyorsítótárban. Ha a kódszerelvény egy könyvtárban van telepítve, a műholdas szerelvények a könyvtár kultúraspecifikus mappáiba lesznek telepítve.
A műholdas szerelvények nincsenek igény szerint telepítve.
Az alkalmazáskód nem kezeli az eseményt AppDomain.AssemblyResolve .
A műholdas szerelvényekhez tartozó szonda optimalizálásához vegye fel a <relativeBindForResources> elemet, és állítsa be annak enabled attribútumát az alkalmazáskonfigurációs fájlban, ahogyan az az alábbi példában látható.
<configuration>
<runtime>
<relativeBindForResources enabled="true" />
</runtime>
</configuration>
A műholdas szerelvényekhez optimalizált szonda egy választható funkció. Ez azt jelzi, hogy a futtatókörnyezet az erőforrás-tartalékfolyamatban dokumentált lépéseket követi, kivéve, ha a <relativeBindForResources> elem szerepel az alkalmazás konfigurációs fájljában, és az attribútuma enabled a következőre truevan állítva. Ebben az esetben a műholdas szerelvény próbafolyamata a következőképpen módosul:
A futtatókörnyezet a szülőkód-szerelvény helyét használja a műholdas szerelvény kereséséhez. Ha a fő szerelvény telepítve a globális szerelvény-gyorsítótárban, a futtatókörnyezet a gyorsítótárban keres, de nem az alkalmazás könyvtárában. Ha a szülőszerelvény egy alkalmazáskönyvtárban van telepítve, a futtatókörnyezet az alkalmazáskönyvtárban mintavételez, de nem a globális szerelvény-gyorsítótárban.
A futtatókörnyezet nem kérdezi le a Windows Installert a műholdas szerelvények igény szerinti telepítésére.
Ha egy adott erőforrás-szerelvény keresése sikertelen, a futtatókörnyezet nem váltja ki az eseményt AppDomain.AssemblyResolve.
.NET Core erőforrás-visszaesési folyamat
A .NET Core-erőforrás-visszavételi folyamat a következő lépéseket foglalja magában:
A futtatókörnyezet megpróbál betölteni egy műholdkönyvtárat a kért kultúrához.
Ellenőrzi a jelenleg futó assembly könyvtárát egy olyan alkönyvtárat, amely megfelel a kért kultúrának. Ha megtalálja az alkönyvtárat, az adott alkönyvtárban keres egy érvényes összeállítást a kért kultúrához, és betölti.
Megjegyzés:
Azoknál az operációs rendszereknél, amelyek a kis- és nagybetűk megkülönböztetésével rendelkező fájlrendszerrel működnek (mint például a Linux és a macOS), a kulturális név által megadott alkönyvtár keresése szintén megkülönbözteti a kis- és nagybetűket. Az alkönyvtár nevének pontosan meg kell egyeznie a CultureInfo.Name (például vagy
es) esetével.es-MXMegjegyzés:
Amennyiben a programozó egyéni egységbetöltési környezetet származtatott AssemblyLoadContext-ből, a helyzet bonyolulttá válik. Ha a végrehajtó szerelvényt speciális környezetben töltötték be, a futtatókörnyezet betölti a műhold-szerelvényt a speciális környezetbe. A részletek nem tartoznak a dokumentum hatókörébe. Lásd a(z) AssemblyLoadContext.
Ha nem található műholdas összeállítás, a AssemblyLoadContext eseményt kihívja, hogy jelezze, nem találja a műholdas összeállítást. Ha úgy dönt, hogy kezeli az eseményt, az eseménykezelő betöltheti és visszaküldheti a műholdas szerelvényre mutató hivatkozást.
Ha továbbra sem található műholdas szerelvény, a AssemblyLoadContext hatására az AppDomain eseményt vált ki AppDomain.AssemblyResolve , amely azt jelzi, hogy nem találja a műholdas szerelvényt. Ha úgy dönt, hogy kezeli az eseményt, az eseménykezelő betöltheti és visszaküldheti a műholdas szerelvényre mutató hivatkozást.
Ha egy satelit összeállítást talál a rendszer, a futtatókörnyezet megkeresi benne a kért erőforrást. Ha megtalálja az erőforrást a szerelvényben, azt használja. Ha nem találja az erőforrást, folytatja a keresést.
Megjegyzés:
Ha erőforrást szeretne keresni a mellékeltszerelvényen belül, a futtatókörnyezet megkeresi az erőforrásfájlt, amelyet a ResourceManager kért az aktuális CultureInfo.Name számára. Az erőforrásfájlban megkeresi a kért erőforrásnevet. Ha egyik sem található, az erőforrás nem találhatóként lesz kezelve.
A futtatókörnyezet ezután a szülői kulturális gyűjteményeket keresi meg több lehetséges szinten, és minden alkalommal megismétli az 1. és a 2. lépést.
A szülőkultúra megfelelő tartalék kultúraként van definiálva. Tekintsük a szülőket tartalékjelöltként, mert bármilyen erőforrás biztosítása előnyösebb, mint egy kivétel feldobása. Ez a folyamat lehetővé teszi az erőforrások újrafelhasználását is. Egy adott erőforrást csak akkor szabad a szülőszinten megadni, ha a gyermekkultúrának nem kell honosítania a kért erőforrást. Ha például műholdas szerelvényeket ad meg a
en(semleges angol), aen-GB(az Egyesült Királyságban beszélt angol) és aen-US(az Egyesült Államokban beszélt angol) számára, akkor aenműhold tartalmazza a közös terminológiát, míg aen-GBésen-USműholdak csak a különböző kifejezések felülbírálásait biztosítják.Minden kultúrának csak egy szülője van, amelyet a CultureInfo.Parent tulajdonság határoz meg, de egy szülőnek lehet saját szülője. A szülőkultúrák keresése leáll, amikor egy kultúra tulajdonsága Parent visszatér CultureInfo.InvariantCulture. Erőforrás-tartalék esetén az invariáns kultúra nem tekinthető szülőkultúrának vagy olyan kultúrának, amely rendelkezhet erőforrásokkal.
Ha az eredetileg megadott kultúra és az összes szülő keresése megtörtént, és az erőforrás továbbra sem található, a rendszer az alapértelmezett (tartalék) kultúra erőforrását használja. Az alapértelmezett kultúra erőforrásai általában a fő alkalmazásszerelvény részét képezik. Megadhatja azonban a Satellite értéket a Location tulajdonsághoz, amely azt jelzi, hogy az erőforrások végső tartalék helye nem a főszerelvény, hanem egy műholdas szerelvény.
Megjegyzés:
Az alapértelmezett erőforrás az egyetlen olyan erőforrás, amely a főszerelvénysel fordítható le. Ha nem ad meg egy műholdas összetevőt az NeutralResourcesLanguageAttribute attribútum használatával, az lesz a végső tartalék (végső szülő). Ezért azt javasoljuk, hogy mindig adjon meg egy alapértelmezett erőforráskészletet a főszerelvényben. Ez segít megakadályozni, hogy kivételek kerüljenek dobásra. Az alapértelmezett erőforrásfájlokkal tartalékot biztosít az összes erőforráshoz, és gondoskodik arról, hogy legalább egy erőforrás mindig jelen legyen a felhasználó számára, még akkor is, ha az nem kulturálisan specifikus.
Végül, ha a futtatókörnyezet nem talál erőforrásfájlt egy alapértelmezett (tartalék) kultúrához, a rendszer kivételt MissingManifestResourceException vagy MissingSatelliteAssemblyException kivételt jelez, amely azt jelzi, hogy az erőforrás nem található. Ha az erőforrásfájl megtalálható, de a kért erőforrás nem jelenik meg, a kérés visszaadja
null.
Végső megoldás a műhold-összeszerelésre
Igény szerint eltávolíthat erőforrásokat a főszerelvényből, és megadhatja, hogy a futtatókörnyezet betöltse a végső tartalék erőforrásokat egy adott kultúrának megfelelő műholdas szerelvényből. A tartalék folyamat szabályozásához használja a NeutralResourcesLanguageAttribute(String, UltimateResourceFallbackLocation) konstruktort, és adjon meg egy értéket a UltimateResourceFallbackLocation paraméterhez, amely meghatározza, hogy a Resource Managernek ki kell-e nyernie a tartalék erőforrásokat a fő szerelvényből vagy egy műholdas szerelvényből.
Az alábbi .NET-keretrendszer-példa az NeutralResourcesLanguageAttribute attribútum használatával tárolja az alkalmazás tartalék erőforrásait egy francia (fr) nyelvű műholdas szerelvényben. A példában két szöveges erőforrásfájl található, amelyek egyetlen sztring típusú erőforrást határoznak meg Greeting. Az első, resources.fr.txtegy francia nyelvű erőforrást tartalmaz.
Greeting=Bon jour!
A második,ru.txtnevű erőforrás egy orosz nyelvű erőforrást tartalmaz.
Greeting=Добрый день
Ezt a két fájlt a rendszer a parancssorból a Resource File Generator (resgen.exe) futtatásával állítja össze .resources fájlokba. A francia nyelvi erőforrás esetében a parancs a következő:
resgen.exe resources.fr.txt
Az orosz nyelvi erőforrás esetében a parancs a következő:
resgen.exe resources.ru.txt
A .resources-fájlok dinamikus csatolási kódtárakba vannak beágyazva a francia nyelvi erőforrás parancssorából az Assembly Linker (al.exe) futtatásával az alábbiak szerint:
al /t:lib /embed:resources.fr.resources /culture:fr /out:fr\Example1.resources.dll
és az orosz nyelvi erőforrás esetében az alábbiak szerint:
al /t:lib /embed:resources.ru.resources /culture:ru /out:ru\Example1.resources.dll
Az alkalmazás forráskódja egy Example1.cs vagy Example1.vb nevű fájlban található. Tartalmazza az NeutralResourcesLanguageAttribute attribútumot, amely jelzi, hogy az alapértelmezett alkalmazáserőforrás az fr alkönyvtárban van. Példányosítja a Resource Managert, lekéri az Greeting erőforrás értékét, és megjeleníti azt a konzolon.
using System;
using System.Reflection;
using System.Resources;
[assembly:NeutralResourcesLanguage("fr", UltimateResourceFallbackLocation.Satellite)]
public class Example
{
public static void Main()
{
ResourceManager rm = new ResourceManager("resources",
typeof(Example).Assembly);
string greeting = rm.GetString("Greeting");
Console.WriteLine(greeting);
}
}
Imports System.Reflection
Imports System.Resources
<Assembly: NeutralResourcesLanguage("fr", UltimateResourceFallbackLocation.Satellite)>
Module Example
Public Sub Main()
Dim rm As New ResourceManager("resources", GetType(Example).Assembly)
Dim greeting As String = rm.GetString("Greeting")
Console.WriteLine(greeting)
End Sub
End Module
Ezután a következő módon fordíthatja le a C#-forráskódot a parancssorból:
csc Example1.cs
A Visual Basic fordító parancsa nagyon hasonló:
vbc Example1.vb
Mivel nincsenek erőforrások beágyazva a főösszesítésben, nem kell a /resource kapcsolót használnia a fordításhoz.
Amikor egy olyan rendszerből futtatja a példát, amelynek a nyelve nem orosz, a következő kimenetet jeleníti meg:
Bon jour!
Javasolt csomagolási alternatíva
Az idő- vagy költségvetési korlátozások megakadályozhatják, hogy erőforrásokat hozzon létre minden olyan szubkultúrához, amelyet az alkalmazás támogat. Ehelyett létrehozhat egyetlen műhold-összeállítást egy szülőkultúra számára, amelyet az összes kapcsolódó szubkultúra használhat. Megadhat például egy angol műholdas szerelvényt (en), amelyet a régióspecifikus angol erőforrásokat kérő felhasználók kérnek le, és egyetlen német műholdas szerelvényt (de) azoknak a felhasználóknak, akik régióspecifikus német erőforrásokat kérnek le. A németországi (de-DE), ausztriai (de-AT) és svájci (de-CH) német nyelvű kérelmek például a német műholdszerelvényhez (de) tartoznak. Az alapértelmezett erőforrások a végső tartalékok, ezért az alkalmazás felhasználóinak többsége által igényelt erőforrásoknak kell lenniük, ezért gondosan válassza ki ezeket az erőforrásokat. Ez a megközelítés kevésbé kulturálisan specifikus erőforrásokat helyez üzembe, de jelentősen csökkentheti az alkalmazás honosítási költségeit.
Lásd még
- Erőforrások a .NET-alkalmazásokban
- globális összeállítási gyorsítótár
- Erőforrásfájlok létrehozása
- Műholdas szerelvények létrehozása