LazowskiAnton · Extensions

LocaleSmith

Text každého klíče .resx přímo tam, kde se klíč používá: hodnoty za řádkem, všechny překlady po najetí myší, chybějící překlady a chybné zástupné symboly označené dřív, než je uvidí uživatelé.

Zdarma · Visual Studio 2022 a 2026 · 14 jazyků rozhraní · žádná telemetrie

Proč LocaleSmith

Stejný kód bez LocaleSmith a s ním: klíče prostředků a jejich texty

Kód, který se dá číst

Strings.InvoiceSaved toho moc neřekne; „Invoice {0} saved“ řekne všechno. Text stojí za řádkem, nenápadně a kurzívou.

Všechny jazyky po ruce

Najeďte myší na hodnotu a uvidíte všechny její překlady. Nebo přepněte celý editor do němčiny či japonštiny a prohlédněte si obrazovky ještě před spuštěním aplikace.

Chyby dřív, než je uvidí uživatelé

Chybějící překlady, {1}, který výchozí text nemá, překlep v klíči, string.Format s příliš málo argumenty — vše podtržené přímo v kódu.

Zdarma a bez háčků

Žádné předplatné, zkušební verze, otravná okna ani telemetrie. Funguje ve Visual Studiu 2022 a 2026, x64 i ARM64.

Funkce

Rozpoznávané klíče

V kóduKde
Strings.Key, Properties.Resources.KeyC#, Visual Basic, F#
{x:Static res:Strings.Key}XAML (WPF, WinUI, MAUI, Avalonia)
localizer["Key"], @Localizer["Key"]ASP.NET Core a Blazor: IStringLocalizer, IViewLocalizer
GetString("Key")ResourceManager a lokalizátory

Všechny překlady po najetí myší

Podržte ukazatel na hodnotě: karta ukáže klíč ve všech jazycích, chybějící žlutě. Kliknutím na jazyk otevřete jeho .resx s vybranou hodnotou — stačí ji přepsat. Otevřít v .resx a Kopírovat klíč jsou nahoře.

Karta s překlady klíče, dva z nich chybí

Problémy

Problémy jsou vlnovky jako upozornění kompilátoru, takže je ukáže každý nástroj, který ukazuje upozornění — LensSmith je vypíše na konec řádku. Každé pravidlo lze vypnout.

Vlnovky pod klíči s chybějícím překladem a se špatným počtem argumentů formátu
PravidloCo se podtrhne
LOC001Klíč, který v některých jazykových souborech chybí, se seznamem těchto jazyků.
LOC002Překlad s jinými zástupnými symboly než výchozí text; nadbytečný symbol selže za běhu, proto je to chyba.
LOC003localizer["Key"] nebo GetString("Key") s klíčem, který nemá žádný soubor prostředků, s nejbližším existujícím klíčem.
LOC004string.Format(Strings.Key, …) s menším počtem argumentů, než text potřebuje (chyba), nebo s větším, než používá (upozornění).

Extrakce do prostředku

Umístěte kurzor do řetězce a stiskněte Ctrl+. — Extrahovat do prostředku… navrhne klíč podle textu a nejbližší soubor .resx. Pokud soubor text už obsahuje, použije se jeho klíč. Řetězec se nahradí výrazem Strings.Key (s oborem názvů, pokud ho soubor neimportuje), v XAML výrazem {x:Static res:Strings.Key}, přičemž xmlns se přidá automaticky.

Dialog Extrahovat do prostředku s navrženým klíčem a souborem

Nastavení

Nástroje → Možnosti → SmithWorks → LocaleSmith. Každá možnost má popis a náhled nahoře hned ukáže hodnoty ve zvoleném jazyce.

MožnostVýchozí
Zobrazovat hodnoty prostředků vedle klíčůzapnuto
Jazyk náhleduVýchozí prostředky
Maximální délka80
Problémy: LOC001–LOC004vše zapnuto
Extrahovat do prostředku v nabídce žárovkyzapnuto

Nastavení se ukládá do %LocalAppData%\LocaleSmith.

Stránka možností LocaleSmith
Stránka možností s živým náhledem.

Časté dotazy

Které soubory .resx čte?

Každý soubor .resx ve složce řešení (té se souborem .sln nebo .slnx, případně v kořeni repozitáře) kromě bin, obj a node_modules. Obrázky a další netextové prostředky se přeskakují.

Proč za klíčem není žádná hodnota?

Klíč musí existovat v souboru .resx v řešení a název třídy musí odpovídat názvu souboru (Strings.resx → Strings; tečky se mění na podtržítka, stejně jako u generátoru). Hodnoty se objeví chvíli po otevření řešení, jakmile se soubory načtou.

Po extrakci je nová vlastnost podtržená. Proč?

Silně typovaná třída (Strings.Designer.cs) se vygeneruje znovu hned, pokud ji projekt vytváří vlastním nástrojem; projekty, které ji generují při sestavení, dostanou vlastnost po dalším sestavení.

{x:Static} v XAML nenajde moji třídu prostředků.

x:Static potřebuje veřejnou třídu. V návrháři prostředků nastavte modifikátor přístupu souboru .resx na Public, nebo použijte veřejnou obálku.

Funguje společně s LensSmith?

Ano. Obě rozšíření píší na konec řádků, takže se o toto místo dělí: nejdřív hodnota klíče, za ní diagnostická zpráva. Problémy LocaleSmith se v LensSmith zobrazí jako jakékoli jiné upozornění.

Odesílá LocaleSmith nějaká data?

Ne. Nemá žádnou telemetrii ani přístup k síti; vaše soubory prostředků zůstávají ve vašem počítači.

Kde nahlásit problém nebo navrhnout funkci?

Založte issue v repozitáři Feedback na GitHubu — jsou tam formuláře pro chyby a nápady (neveřejné názvy prosím změňte). Můžete také použít kartu Q&A na Marketplace.

Historie změn

1.0.1

1.0.0