Sashiko.Languages 0.1.1

dotnet add package Sashiko.Languages --version 0.1.1
                    
NuGet\Install-Package Sashiko.Languages -Version 0.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Sashiko.Languages" Version="0.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Sashiko.Languages" Version="0.1.1" />
                    
Directory.Packages.props
<PackageReference Include="Sashiko.Languages" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Sashiko.Languages --version 0.1.1
                    
#r "nuget: Sashiko.Languages, 0.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Sashiko.Languages@0.1.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Sashiko.Languages&version=0.1.1
                    
Install as a Cake Addin
#tool nuget:?package=Sashiko.Languages&version=0.1.1
                    
Install as a Cake Tool

🌸 Sashiko.Languages

Sashiko.Languages provides a strongly typed, embedded registry of human languages based on the ISO 639-3 standard.

It is designed for applications that need reliable language metadata without calling external services at runtime.

The package ships with a pre-generated languages.json file containing ISO 639-3 language entries mapped into the Sashiko language model.


✨ Features

  • Embedded language registry
  • ISO 639-3 coverage, including macrolanguages and special codes
  • Case-insensitive lookup by:
    • ISO 639-3 code
    • ISO 639-2 code when available
    • ISO 639-1 code when available
    • language name
  • Public LanguageService API
  • Zero runtime dependency on external data sources

📦 Installation

dotnet add package Sashiko.Languages

🚀 Usage

Lookup by ISO 639-3 code

using Sashiko.Languages.Api;

var service = new LanguageService();
var language = service.GetIso3("eng");

Console.WriteLine(language.Name); // English

Lookup by ISO 639-1 code

using Sashiko.Languages.Api;

var service = new LanguageService();
var language = service.GetIso1("fr");

Console.WriteLine(language.Name); // French

Resolve flexible input

using Sashiko.Languages.Api;

var service = new LanguageService();

if (service.TryGet("Italian", out var language))
{
    Console.WriteLine(language.Iso639_3); // ita
}

Enumerate all languages

using Sashiko.Languages.Api;

var service = new LanguageService();

foreach (var language in service.All)
{
    Console.WriteLine($"{language.Iso639_3}: {language.Name}");
}

📚 Data Model

Each language entry includes:

  • Iso639_3 — three-letter ISO 639-3 code and primary identifier
  • Iso639_2 — optional three-letter ISO 639-2 code
  • Iso639_1 — optional two-letter ISO 639-1 code
  • Name — reference language name
  • Scope — individual, macrolanguage, or special
  • Type — living, extinct, ancient, historical, constructed, or special

The model is intentionally small and stable.


🔄 Updating the Embedded Registry

The embedded language registry is maintained with the Sashiko Maintenance Tool:

dotnet run --project Sashiko.Maintenance -- languages update

This process:

  1. Downloads the official ISO 639-3 data from SIL International.
  2. Parses the source TSV data.
  3. Maps it into the Sashiko language model.
  4. Writes the updated languages.json file into this project.

The maintenance tool is internal and not required at runtime.


📄 Source Attribution

The language data in this library is derived from the ISO 639-3 code tables provided by SIL International.

Required attribution:

ISO 639-3 data © SIL International.
Used under the terms described at https://iso639-3.sil.org/code_tables/download_tables.

This library redistributes derived data only. It does not include or mirror the original SIL code tables.


🤝 Contributing

Contributions are welcome.
Please see CONTRIBUTING.md in the repository root.


📄 License

This project is licensed under the Apache License 2.0.
See LICENSE for the full license text.

Copyright © 2026 Alexandru Luca (alex98luca)

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.1 162 5/4/2026
0.1.0 145 4/10/2026