ResourceManager.GetString Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí zadaný prostředek řetězce pro zadanou jazykovou verzi nebo aktuální jazykovou verzi uživatelského rozhraní.
Přetížení
| Name | Description |
|---|---|
| GetString(String) |
Vrátí hodnotu zadaného řetězcového prostředku. |
| GetString(String, CultureInfo) |
Vrátí hodnotu řetězcového prostředku lokalizovaného pro zadanou jazykovou verzi. |
GetString(String)
- Zdroj:
- ResourceManager.cs
- Zdroj:
- ResourceManager.cs
- Zdroj:
- ResourceManager.cs
- Zdroj:
- ResourceManager.cs
- Zdroj:
- ResourceManager.cs
Vrátí hodnotu zadaného řetězcového prostředku.
public:
System::String ^ GetString(System::String ^ name);
public:
virtual System::String ^ GetString(System::String ^ name);
public string GetString(string name);
public virtual string? GetString(string name);
public virtual string GetString(string name);
member this.GetString : string -> string
abstract member GetString : string -> string
override this.GetString : string -> string
Public Function GetString (name As String) As String
Public Overridable Function GetString (name As String) As String
Parametry
- name
- String
Název prostředku, který se má načíst.
Návraty
Hodnota prostředku lokalizovaného pro aktuální jazykovou verzi uživatelského rozhraní volajícího nebo null pokud name ho nelze najít v sadě prostředků.
Výjimky
Parametr name je null.
Hodnota zadaného prostředku není řetězec.
Nebyla nalezena žádná použitelná sada prostředků a výchozí jazyková verze neobsahuje žádné prostředky. Informace o tom, jak tuto výjimku zpracovat, naleznete v části "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" v tématu třídy ResourceManager.
Prostředky výchozí jazykové verze se nacházejí v satelitním sestavení, které nebylo nalezeno. Informace o tom, jak tuto výjimku zpracovat, naleznete v části "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" v tématu třídy ResourceManager.
Poznámky
Vlastnost IgnoreCase určuje, zda porovnání name s názvy prostředků nerozlišuje malá a velká písmena (výchozí) nebo rozlišuje písmena i podle velikosti.
Note
Metody GetString mohou vyvolat více výjimek, než jsou uvedeny. Jedním z důvodů, proč k tomu může dojít, je v případě, že metoda, kterou tato metoda volá, vyvolá výjimku. Výjimka FileLoadException může být vyvolána například v případě, že došlo k chybě při nasazování nebo instalaci satelitního sestavení, nebo může být vyvolána výjimka SerializationException, pokud uživatelem definovaný typ vyvolá výjimku definovanou uživatelem při deserializaci typu.
metoda GetString(String)
Desktopové aplikace
V desktopových aplikacích je vrácený prostředek lokalizovaný pro jazykovou verzi uživatelského rozhraní aktuálního vlákna, jak je definováno vlastností CultureInfo.CurrentUICulture. Pokud prostředek nebyl lokalizován pro danou jazykovou verzi, správce prostředků testuje prostředek podle kroků popsaných v části Postup pro použití náhradního prostředku v článku Balení a nasazení prostředků. Pokud se nenajde žádná použitelná sada lokalizovaných prostředků, správce prostředků se vrátí k prostředkům výchozí jazykové verze. Pokud správce prostředků nemůže načíst sadu prostředků výchozí jazykové verze, vyvolá metoda výjimku MissingManifestResourceException, nebo pokud se očekává, že se sada prostředků nachází v satelitním sestavení, vyvolá výjimku MissingSatelliteAssemblyException. Pokud správce prostředků může načíst příslušnou sadu prostředků, ale nemůže najít prostředek s názvem name, vrátí metoda null.
Example
Následující příklad používá metodu GetString k načtení kulturně specifických prostředků. Skládá se ze zdrojů zkompilovaných ze souborů .txt pro anglické (en), francouzské (Francie) (fr-FR) a ruské (Rusko) (ru-RU) kultury. Příklad změní aktuální kulturu a aktuální jazykovou verzi uživatelského rozhraní na angličtinu (Spojené státy), francouzštinu (Francie), ruštinu (Rusko) a švédštinu (Švédsko). Potom zavolá metodu GetString k načtení lokalizovaného řetězce, který se zobrazí spolu s aktuálním dnem a měsícem. Všimněte si, že výstup zobrazí odpovídající lokalizovaný řetězec s výjimkou případů, kdy je aktuální jazyková verze uživatelského rozhraní švédština (Švédsko). Vzhledem k tomu, že prostředky švédského jazyka nejsou k dispozici, aplikace místo toho používá prostředky výchozí jazykové verze, což je angličtina. Příklad vyžaduje textové soubory prostředků uvedené v následující tabulce. Každý má jeden řetězcový zdroj s názvem DateStart.
| Kultura | Název souboru | Název prostředku | Hodnota zdroje |
|---|---|---|---|
| en-US | DateStrings.txt | DateStart |
Dnes je |
| fr-FR | DateStrings.fr-FR.txt | DateStart |
Dnes je to. |
| ru-RU | DateStrings.ru-RU.txt | DateStart |
Сегодня |
K kompilaci příkladu jazyka C# můžete použít následující dávkový soubor. V jazyce Visual Basic změňte csc na vbca změňte příponu souboru zdrojového kódu z .cs na .vb.
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
Tady je zdrojový kód pro příklad (ShowDate.vb pro verzi Jazyka Visual Basic nebo ShowDate.cs pro verzi jazyka C#).
using System;
using System.Globalization;
using System.Resources;
using System.Threading;
public class ShowTimeExample
{
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.
metoda GetString(String, CultureInfo)
Desktopové aplikace
Pokud je v desktopových aplikacích culturenull, metoda GetString(String, CultureInfo) používá aktuální jazyk uživatelského rozhraní získaný z vlastnosti CultureInfo.CurrentUICulture.
Vrácený prostředek je přizpůsobený pro kulturu určenou parametrem culture. Pokud prostředek nebyl lokalizován pro culture, správce prostředků vyhledá prostředek podle kroků popsaných v části Proces náhradního prostředku v tématu Balení a nasazení prostředků. Pokud se nenajde žádná použitelná sada prostředků, správce prostředků přechází na prostředky výchozí jazykové verze. Pokud správce prostředků nemůže načíst sadu prostředků výchozí jazykové verze, vyvolá metoda výjimku MissingManifestResourceException, nebo pokud se očekává, že se sada prostředků nachází v satelitním sestavení, vyvolá výjimku MissingSatelliteAssemblyException. Pokud správce prostředků může načíst příslušnou sadu prostředků, ale nemůže najít prostředek s názvem name, vrátí metoda null.
Example
Následující příklad používá metodu GetString(String, CultureInfo) k načtení kulturně specifických prostředků. Výchozí jazyková verze příkladu je angličtina (en) a zahrnuje satelitní sestavení pro francouzské (Francie) (fr-FR) a ruštiny (Rusko) (ru-RU) jazykové verze. Příklad změní aktuální jazykovou verzi a aktuální uživatelskou jazykovou verzi na ruštinu (Rusko) před voláním GetString(String, CultureInfo). Potom zavolá metodu GetString a metodu DateTime.ToString(String, IFormatProvider) a předá každé metodě CultureInfo objekty, které představují francouzskou (Francie) a švédskou (Švédsko) kulturu. Ve výstupu se měsíc a den v měsíci i řetězec, který je předchází, zobrazí ve francouzštině, protože metoda GetString je schopna načíst prostředek francouzského jazyka. Pokud se však použije švédská kultura (Švédsko), den a měsíc se zobrazí ve švédštině, zatímco řetězec, který je před nimi, je v angličtině. Důvodem je to, že správce prostředků nemůže najít lokalizované švédské jazykové prostředky, takže vrátí prostředek pro výchozí jazykovou verzi angličtiny.
Příklad vyžaduje textové soubory prostředků uvedené v následující tabulce. Každý má jeden řetězcový zdroj s názvem DateStart.
| Kultura | Název souboru | Název prostředku | Hodnota zdroje |
|---|---|---|---|
| en-US | DateStrings.txt | DateStart |
Dnes je |
| fr-FR | DateStrings.fr-FR.txt | DateStart |
Dnes je to. |
| ru-RU | DateStrings.ru-RU.txt | DateStart |
Сегодня |
K kompilaci příkladu jazyka Visual Basic můžete použít následující dávkový soubor. Pokud chcete zkompilovat v jazyce C#, změňte vbc na csca změňte příponu souboru zdrojového kódu z .vb na .cs.
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
Tady je zdrojový kód pro příklad (ShowDate.vb pro verzi Jazyka Visual Basic nebo ShowDate.cs pro verzi jazyka C#).
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.
Bezpečný přístup z více vláken
Metoda GetString(String) je bezpečná pro přístup z více vláken.
Viz také
Platí pro
GetString(String, CultureInfo)
- Zdroj:
- ResourceManager.cs
- Zdroj:
- ResourceManager.cs
- Zdroj:
- ResourceManager.cs
- Zdroj:
- ResourceManager.cs
- Zdroj:
- ResourceManager.cs
Vrátí hodnotu řetězcového prostředku lokalizovaného pro zadanou jazykovou verzi.
public:
virtual System::String ^ GetString(System::String ^ name, System::Globalization::CultureInfo ^ culture);
public virtual string GetString(string name, System.Globalization.CultureInfo culture);
public virtual string? GetString(string name, System.Globalization.CultureInfo? culture);
abstract member GetString : string * System.Globalization.CultureInfo -> string
override this.GetString : string * System.Globalization.CultureInfo -> string
Public Overridable Function GetString (name As String, culture As CultureInfo) As String
Parametry
- name
- String
Název prostředku, který se má načíst.
- culture
- CultureInfo
Objekt, který představuje jazykovou verzi, pro kterou je prostředek lokalizován.
Návraty
Hodnota prostředku lokalizovaného pro zadanou jazykovou verzi nebo null pokud name není v sadě prostředků nalezena.
Výjimky
Parametr name je null.
Hodnota zadaného prostředku není řetězec.
Nebyla nalezena žádná použitelná sada prostředků a pro výchozí jazykovou verzi nejsou žádné prostředky. Informace o tom, jak tuto výjimku zpracovat, naleznete v části "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" v tématu třídy ResourceManager.
Prostředky výchozí jazykové verze se nacházejí v satelitním sestavení, které nebylo nalezeno. Informace o tom, jak tuto výjimku zpracovat, naleznete v části "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" v tématu třídy ResourceManager.
Poznámky
Vlastnost IgnoreCase určuje, zda porovnání name s názvy prostředků nerozlišuje malá a velká písmena (výchozí) nebo rozlišuje písmena i podle velikosti.
Note
Metody GetString mohou vyvolat více výjimek, než jsou uvedeny. Jedním z důvodů, proč k tomu může dojít, je v případě, že metoda, kterou tato metoda volá, vyvolá výjimku. Výjimka FileLoadException může být vyvolána například v případě, že došlo k chybě při nasazování nebo instalaci satelitního sestavení, nebo může být vyvolána výjimka SerializationException, pokud uživatelem definovaný typ vyvolá výjimku definovanou uživatelem při deserializaci typu.
metoda GetString(String)
Desktopové aplikace
V desktopových aplikacích je vrácený prostředek lokalizovaný pro jazykovou verzi uživatelského rozhraní aktuálního vlákna, jak je definováno vlastností CultureInfo.CurrentUICulture. Pokud prostředek nebyl lokalizován pro danou jazykovou verzi, správce prostředků testuje prostředek podle kroků popsaných v části Postup pro použití náhradního prostředku v článku Balení a nasazení prostředků. Pokud se nenajde žádná použitelná sada lokalizovaných prostředků, správce prostředků se vrátí k prostředkům výchozí jazykové verze. Pokud správce prostředků nemůže načíst sadu prostředků výchozí jazykové verze, vyvolá metoda výjimku MissingManifestResourceException, nebo pokud se očekává, že se sada prostředků nachází v satelitním sestavení, vyvolá výjimku MissingSatelliteAssemblyException. Pokud správce prostředků může načíst příslušnou sadu prostředků, ale nemůže najít prostředek s názvem name, vrátí metoda null.
Example
Následující příklad používá metodu GetString k načtení kulturně specifických prostředků. Skládá se ze zdrojů zkompilovaných ze souborů .txt pro anglické (en), francouzské (Francie) (fr-FR) a ruské (Rusko) (ru-RU) kultury. Příklad změní aktuální kulturu a aktuální jazykovou verzi uživatelského rozhraní na angličtinu (Spojené státy), francouzštinu (Francie), ruštinu (Rusko) a švédštinu (Švédsko). Potom zavolá metodu GetString k načtení lokalizovaného řetězce, který se zobrazí spolu s aktuálním dnem a měsícem. Všimněte si, že výstup zobrazí odpovídající lokalizovaný řetězec s výjimkou případů, kdy je aktuální jazyková verze uživatelského rozhraní švédština (Švédsko). Vzhledem k tomu, že prostředky švédského jazyka nejsou k dispozici, aplikace místo toho používá prostředky výchozí jazykové verze, což je angličtina. Příklad vyžaduje textové soubory prostředků uvedené v následující tabulce. Každý má jeden řetězcový zdroj s názvem DateStart.
| Kultura | Název souboru | Název prostředku | Hodnota zdroje |
|---|---|---|---|
| en-US | DateStrings.txt | DateStart |
Dnes je |
| fr-FR | DateStrings.fr-FR.txt | DateStart |
Dnes je to. |
| ru-RU | DateStrings.ru-RU.txt | DateStart |
Сегодня |
K kompilaci příkladu jazyka C# můžete použít následující dávkový soubor. V jazyce Visual Basic změňte csc na vbca změňte příponu souboru zdrojového kódu z .cs na .vb.
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
Tady je zdrojový kód pro příklad (ShowDate.vb pro verzi Jazyka Visual Basic nebo ShowDate.cs pro verzi jazyka C#).
using System;
using System.Globalization;
using System.Resources;
using System.Threading;
public class ShowTimeExample
{
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.
metoda GetString(String, CultureInfo)
Desktopové aplikace
Pokud je v desktopových aplikacích culturenull, metoda GetString(String, CultureInfo) používá aktuální jazyk uživatelského rozhraní získaný z vlastnosti CultureInfo.CurrentUICulture.
Vrácený prostředek je přizpůsobený pro kulturu určenou parametrem culture. Pokud prostředek nebyl lokalizován pro culture, správce prostředků vyhledá prostředek podle kroků popsaných v části Proces náhradního prostředku v tématu Balení a nasazení prostředků. Pokud se nenajde žádná použitelná sada prostředků, správce prostředků přechází na prostředky výchozí jazykové verze. Pokud správce prostředků nemůže načíst sadu prostředků výchozí jazykové verze, vyvolá metoda výjimku MissingManifestResourceException, nebo pokud se očekává, že se sada prostředků nachází v satelitním sestavení, vyvolá výjimku MissingSatelliteAssemblyException. Pokud správce prostředků může načíst příslušnou sadu prostředků, ale nemůže najít prostředek s názvem name, vrátí metoda null.
Example
Následující příklad používá metodu GetString(String, CultureInfo) k načtení kulturně specifických prostředků. Výchozí jazyková verze příkladu je angličtina (en) a zahrnuje satelitní sestavení pro francouzské (Francie) (fr-FR) a ruštiny (Rusko) (ru-RU) jazykové verze. Příklad změní aktuální jazykovou verzi a aktuální uživatelskou jazykovou verzi na ruštinu (Rusko) před voláním GetString(String, CultureInfo). Potom zavolá metodu GetString a metodu DateTime.ToString(String, IFormatProvider) a předá každé metodě CultureInfo objekty, které představují francouzskou (Francie) a švédskou (Švédsko) kulturu. Ve výstupu se měsíc a den v měsíci i řetězec, který je předchází, zobrazí ve francouzštině, protože metoda GetString je schopna načíst prostředek francouzského jazyka. Pokud se však použije švédská kultura (Švédsko), den a měsíc se zobrazí ve švédštině, zatímco řetězec, který je před nimi, je v angličtině. Důvodem je to, že správce prostředků nemůže najít lokalizované švédské jazykové prostředky, takže vrátí prostředek pro výchozí jazykovou verzi angličtiny.
Příklad vyžaduje textové soubory prostředků uvedené v následující tabulce. Každý má jeden řetězcový zdroj s názvem DateStart.
| Kultura | Název souboru | Název prostředku | Hodnota zdroje |
|---|---|---|---|
| en-US | DateStrings.txt | DateStart |
Dnes je |
| fr-FR | DateStrings.fr-FR.txt | DateStart |
Dnes je to. |
| ru-RU | DateStrings.ru-RU.txt | DateStart |
Сегодня |
K kompilaci příkladu jazyka Visual Basic můžete použít následující dávkový soubor. Pokud chcete zkompilovat v jazyce C#, změňte vbc na csca změňte příponu souboru zdrojového kódu z .vb na .cs.
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
Tady je zdrojový kód pro příklad (ShowDate.vb pro verzi Jazyka Visual Basic nebo ShowDate.cs pro verzi jazyka C#).
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.
Bezpečný přístup z více vláken
Metoda GetString(String, CultureInfo) je bezpečná pro přístup z více vláken.