LazowskiAnton · Extensions

LocaleSmith

Her .resx anahtarının metni, anahtarın kullanıldığı yerde: satırın sonunda değerler, üzerine gelince tüm çeviriler; eksik çeviriler ve hatalı yer tutucular kullanıcılarınız görmeden işaretlenir.

Ücretsiz · Visual Studio 2022 ve 2026 · 14 arayüz dili · telemetri yok

Neden LocaleSmith

Aynı kod, LocaleSmith olmadan ve LocaleSmith ile: kaynak anahtarları ve metinleri

Okunabilir kod

Strings.InvoiceSaved pek bir şey söylemez; “Invoice {0} saved” her şeyi söyler. Metin satırdan sonra, sade ve italik durur.

Tüm diller elinizin altında

Bir değerin tüm çevirilerini görmek için üzerine gelin ya da uygulamayı çalıştırmadan ekranlarınızı görmek için tüm düzenleyiciyi Almancaya veya Japoncaya geçirin.

Hatalar kullanıcılar görmeden

Eksik çeviriler, varsayılan metinde olmayan bir {1}, anahtarda bir yazım hatası, bağımsız değişkeni eksik bir string.Format — hepsinin kodda altı çizilir.

Ücretsiz, koşulsuz

Abonelik yok, deneme süresi yok, rahatsız edici uyarılar yok, telemetri yok. Visual Studio 2022 ve 2026'da, x64 ve ARM64 üzerinde çalışır.

Özellikler

Tanınan anahtarlar

KoddaNerede
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 ve Blazor: IStringLocalizer, IViewLocalizer
GetString("Key")ResourceManager ve yerelleştiriciler

Üzerine gelince tüm çeviriler

İşaretçiyi bir değerin üzerinde bekletin: kart anahtarı tüm dillerde listeler, eksik olanlar sarıdır. Bir dile tıklayınca o dilin .resx dosyası değer seçili olarak açılır — üzerine yazmanız yeterli. .resx'te aç ve Anahtarı kopyala en üsttedir.

Bir anahtarın çevirilerini gösteren kart; ikisi eksik

Sorunlar

Sorunlar, derleyici uyarıları gibi dalgalı alt çizgilerdir; bu yüzden uyarıları gösteren her araç bunları da gösterir — LensSmith bunları satırın sonuna yazar. Her kural kapatılabilir.

Çevirisi eksik olan ve biçim bağımsız değişkeni sayısı yanlış olan anahtarlarda dalgalı alt çizgiler
KuralNeyin altı çizilir
LOC001Bazı dil dosyalarında olmayan bir anahtar; bu dillerin listesiyle birlikte.
LOC002Varsayılan metinden farklı yer tutucular içeren bir çeviri; fazladan bir yer tutucu çalışma zamanında hataya yol açar ve hata sayılır.
LOC003Hiçbir kaynak dosyasında olmayan bir anahtarla localizer["Key"] veya GetString("Key"); en yakın mevcut anahtarla birlikte.
LOC004Metnin gerektirdiğinden az (hata) veya kullandığından fazla (uyarı) bağımsız değişkenle string.Format(Strings.Key, …).

Kaynağa ayıkla

İmleci bir dizenin içine koyup Ctrl+. tuşlarına basın — Kaynağa ayıkla… metinden bir anahtar ve en yakın .resx dosyasını önerir. Dosyada bu metin zaten varsa onun anahtarı kullanılır. Dize Strings.Key ile (dosya ad alanını içeri aktarmıyorsa ad alanıyla birlikte) veya XAML'de {x:Static res:Strings.Key} ile değiştirilir; XAML'de xmlns sizin için eklenir.

Önerilen anahtar ve dosyayla Kaynağa ayıkla iletişim kutusu

Ayarlar

Araçlar → Seçenekler → SmithWorks → LocaleSmith. Her seçeneğin bir açıklaması vardır ve üstteki önizleme değerleri seçilen dilde anında gösterir.

SeçenekVarsayılan
Kaynak değerlerini anahtarların yanında gösteraçık
Önizleme diliVarsayılan kaynaklar
En fazla uzunluk80
Sorunlar: LOC001–LOC004tümü açık
Ampul menüsünde Kaynağa ayıklaaçık

Ayarlar %LocalAppData%\LocaleSmith klasöründe saklanır.

LocaleSmith seçenekler sayfası
Canlı önizlemesiyle seçenekler sayfası.

SSS

Hangi .resx dosyalarını okur?

Çözüm klasörünün (.sln veya .slnx dosyasının bulunduğu klasör ya da depo kökü) altındaki tüm .resx dosyalarını; bin, obj ve node_modules hariç. Görüntüler ve metin olmayan diğer kaynaklar atlanır.

Bir anahtardan sonra neden değer yok?

Anahtar çözümdeki bir .resx dosyasında bulunmalı ve sınıf adı dosya adıyla eşleşmelidir (Strings.resx → Strings; oluşturucunun yaptığı gibi noktalar alt çizgiye dönüşür). Değerler, çözüm açıldıktan kısa süre sonra, dosyalar okununca görünür.

Ayıklamadan sonra yeni özelliğin altı çiziliyor. Neden?

Kesin türü belirtilmiş sınıf (Strings.Designer.cs), proje bunun için özel bir araç kullanıyorsa hemen yeniden oluşturulur; sınıfı derleme sırasında oluşturan projelerde özellik bir sonraki derlemeden sonra gelir.

XAML'de {x:Static} kaynak sınıfımı bulamıyor.

x:Static için genel (public) bir sınıf gerekir. Kaynak tasarımcısında .resx dosyasının erişim değiştiricisini Public yapın veya genel bir sarmalayıcı kullanın.

LensSmith ile birlikte çalışır mı?

Evet. İkisi de satır sonlarına yazar ve bu alanı paylaşır: önce anahtarın değeri, ardından tanılama iletisi gelir. LocaleSmith sorunları LensSmith'te diğer uyarılar gibi görünür.

LocaleSmith herhangi bir veri gönderiyor mu?

Hayır. Telemetri ve ağ erişimi yoktur; kaynak dosyalarınız bilgisayarınızda kalır.

Bir sorunu nereye bildirebilir veya özellik önerebilirim?

GitHub'daki Feedback deposunda bir issue açın; hatalar ve fikirler için formlar vardır (özel adları değiştirin). Marketplace'teki Q&A sekmesini de kullanabilirsiniz.

Değişiklik günlüğü

1.0.1

1.0.0