Cyrillic.Convert
4.0.0
dotnet add package Cyrillic.Convert --version 4.0.0
NuGet\Install-Package Cyrillic.Convert -Version 4.0.0
<PackageReference Include="Cyrillic.Convert" Version="4.0.0" />
<PackageVersion Include="Cyrillic.Convert" Version="4.0.0" />
<PackageReference Include="Cyrillic.Convert" />
paket add Cyrillic.Convert --version 4.0.0
#r "nuget: Cyrillic.Convert, 4.0.0"
#:package Cyrillic.Convert@4.0.0
#addin nuget:?package=Cyrillic.Convert&version=4.0.0
#tool nuget:?package=Cyrillic.Convert&version=4.0.0
Cyrillic.Convert
Lightweight C# library for transliteration (Cyrillic ⇆ Latin).
Features
- Convert by calling
Conversionmethods directly (e.g.SerbianLatinToCyrillic). - Convert via string extension methods (e.g.
"Ћирилица".ToSerbianLatin()). - Language-specific rules: start-of-word variants, digraphs, special letters.
- Targets
netstandard2.0andnet8.0— works everywhere from .NET Framework 4.6.1 to .NET 8+.
Supported languages
| Language | Cyrillic → Latin | Latin → Cyrillic |
|---|---|---|
| Serbian | ToSerbianLatin() |
ToSerbianCyrillic() |
| Russian | ToRussianLatin() |
ToRussianCyrillic() |
| Bulgarian | ToBulgarianLatin() |
ToBulgarianCyrillic() |
| Ukrainian | ToUkrainianLatin() |
ToUkrainianCyrillic() |
| Georgian | ToGeorgianLatin() |
ToGeorgianCyrillic() |
| Greek | ToGreekLatin() |
ToGreekCyrillic() |
| Belarusian | ToBelarusianLatin() |
ToBelarusianCyrillic() |
| Macedonian | ToMacedonianLatin() |
ToMacedonianCyrillic() |
| Armenian | ToArmenianLatin() |
ToArmenianCyrillic() |
| Kazakh | ToKazakhLatin() |
ToKazakhCyrillic() |
Example
var conversion = new Conversion();
// Serbian
string latin = "a,b,v,g,d,đ,e,ž,z,i,j,k,l,m,n,o,p,r,s,t,ć,u,f,h,c,č,š,Lj,Nj,Dž,lj,nj,dž";
string cyrillic = latin.ToSerbianCyrillic(); // extension method
string cyrillic2 = conversion.SerbianLatinToCyrillic(latin); // direct API
string latinBack = conversion.SerbianCyrillicToLatin(cyrillic2);
string latinBack2 = cyrillic2.ToSerbianLatin();
// Other languages follow the same pattern:
string ruLatin = "Привет мир".ToRussianLatin();
string grLatin = "Αθήνα".ToGreekLatin();
string kazLatin = "Қазақстан".ToKazakhLatin();
Installation
Install-Package Cyrillic.Convert
Or with the .NET CLI:
dotnet add package Cyrillic.Convert
Notes
- Some mappings are lossy by design (e.g. hard/soft signs dropped in Kazakh).
- Mixed-case multi-letter Latin tokens are handled (e.g.
Nj,Lj,Shch). - All public API methods accept and return
string?—nullinput returnsnull.
Migration from v3.x
Six extension methods had a spelling typo (Cyrilic instead of Cyrillic). They are now [Obsolete] and will be removed in v5.0. Rename them in your code:
// v3.x (deprecated)
text.ToSerbianCyrilic()
text.ToRussianCyrilic()
text.ToBulgarianCyrilic()
text.ToGeorgianCyrilic()
text.ToGreekCyrilic()
text.ToArmenianCyrilic()
// v4.x (correct)
text.ToSerbianCyrillic()
text.ToRussianCyrillic()
text.ToBulgarianCyrillic()
text.ToGeorgianCyrillic()
text.ToGreekCyrillic()
text.ToArmenianCyrillic()
Contributing
See CONTRIBUTING.md for instructions on adding a new language.
License
MIT
| 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 is compatible. 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. |
-
.NETStandard 2.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Cyrillic.Convert:
| Package | Downloads |
|---|---|
|
NucleusFramework.Core
Base library, grouping the most general classes and services. |
|
|
NucleusFramework.WebAPI
Library grouping most common Web API functionalities. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.0 | 238 | 4/11/2026 |
| 3.2.1 | 18,647 | 9/27/2025 |
| 3.2.0 | 282 | 9/27/2025 |
| 3.1.0 | 65,374 | 3/31/2024 |
| 3.0.0 | 1,511 | 3/18/2024 |
| 2.2.1 | 163,587 | 6/13/2022 |
| 2.2.0 | 59,016 | 4/12/2021 |
| 2.1.2 | 665 | 4/3/2021 |
| 2.1.1 | 1,751 | 5/19/2020 |
| 2.1.0 | 814 | 5/19/2020 |
| 2.0.3 | 9,588 | 10/17/2019 |
| 2.0.2 | 1,123 | 10/13/2019 |
| 2.0.1 | 1,089 | 10/12/2019 |
| 2.0.0 | 1,359 | 10/11/2019 |
| 1.0.0 | 1,199 | 10/10/2019 |
v4.0.0
BREAKING CHANGES:
- ConversionDictionaries and all concrete language classes are now internal.
- ToSerbianCyrilic / ToRussianCyrilic / ToBulgarianCyrilic / ToGeorgianCyrilic / ToGreekCyrilic / ToArmenianCyrilic are now [Obsolete]. Use the correctly-spelled ToCyrillic() variants instead.
New features / fixes:
- Fixed Kazakh.cs encoding corruption — Kazakh transliteration now works correctly.
- Replaced the fragile Belarusian СЬ placeholder hack with safe Unicode PUA sentinels.
- GetConcreteProduct now throws ArgumentOutOfRangeException for unknown Language values instead of returning silently.
- Nullable reference types enabled; all public API now annotated with string?.
- Shared static Conversion instance in Extensions — no per-call dictionary allocation.
- Added GitHub Actions CI and automated NuGet publish pipelines.
- Fixed snake_case naming (is_empty → IsWordBoundary, empty_chars → WordBoundaryChars, etc.).
(See CHANGELOG.md for full history.)