PatTech.Localization.Analyzer
1.3.0
dotnet add package PatTech.Localization.Analyzer --version 1.3.0
NuGet\Install-Package PatTech.Localization.Analyzer -Version 1.3.0
<PackageReference Include="PatTech.Localization.Analyzer" Version="1.3.0" />
<PackageVersion Include="PatTech.Localization.Analyzer" Version="1.3.0" />
<PackageReference Include="PatTech.Localization.Analyzer" />
paket add PatTech.Localization.Analyzer --version 1.3.0
#r "nuget: PatTech.Localization.Analyzer, 1.3.0"
#:package PatTech.Localization.Analyzer@1.3.0
#addin nuget:?package=PatTech.Localization.Analyzer&version=1.3.0
#tool nuget:?package=PatTech.Localization.Analyzer&version=1.3.0
Words Analyzer
The Words police. It makes sure your Words are actually Words.
This is the analyzer for Words, the .NET localization library. Most people don't install it explicitly — Words brings it along — but it stands alone for any project that wants its strings supervised.
What it does
Mark a parameter, property, field, or return value with [Localized] and the
analyzer checks that everything assigned to it is localized too: a Words lookup,
another [Localized] member, or a method that promises [return: Localized].
Hand it a raw string literal and the build tells you:
warning PTL001: Parameter `message` in method `WriteLocal` expects a localized value
using PatTech.Localization;
WriteLocal(Words.Known["main.greeting"]); // fine
WriteLocal("hello"); // PTL001, straight to jail
static void WriteLocal([Localized] string message) { ... }
It sees through parentheses, await, conditionals, and switch expressions, and
flags only the arms that misbehave — so the one bad branch lights up, not the
whole statement.
Getting it
You usually don't have to. PatTech.Localization.Core depends on this package,
so anything already using Words gets [Localized] and rule PTL001 for free. To
put the attribute on strings in a project that doesn't otherwise use Words,
reference it directly:
<PackageReference Include="PatTech.Localization.Analyzer" Version="1.3.0" />
It adds the PTL001 analyzer and a small PatTech.Localization.dll that defines
[Localized], and nothing else — no other package dependencies come along.
The rest of the suite
- PatTech.Localization.Core — the engine:
words.inifiles, lookups by key, languages and fallbacks,{0}/{Name}parameters,{>key}references, a markdown dialect. - PatTech.Localization.WPF — Words in the XAML: the
{l:Words key}markup extension, markdown inlines, converters and image schemes. - PatTech.Localization.Avalonia — the same, for Avalonia's AXAML.
- Wordsmith — the desktop editor for
words.inifiles, published on GitHub Releases.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
This package has no dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on PatTech.Localization.Analyzer:
| Package | Downloads |
|---|---|
|
PatTech.Localization.Core
Gives you Words: every user-facing string in a words.ini, looked up by key in the right language — fallbacks, {0} and {Name} parameters, {>key} references, a markdown dialect. The engine; pair it with PatTech.Localization.WPF or PatTech.Localization.Avalonia for XAML. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.3.0 | 50 | 9/19/2026 |