Localization in .NET console and desktop apps

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • tnt

    Command line tool for organizing translation strings extracted from .NET assemblies. Supports Excel, XLIFF roundtrips and machine translations.

  • We've been using a library called TNT for this job and are quite happy with the flow: https://github.com/pragmatrix/tnt

    You basically annotate all your strings with a "my string".t() or t($"my interpolated string: {var}") and then use their CLI to extract the strings to be translated. It even includes google translation API support for you to kickstart the process.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Localization

    The NeoSmart Localization and Regionalization Toolkit (NLRT). (by neosmart)

  • We came up with our own localization framework back in the .NET 2.0 days and we're still using it. Version-numbered translations in an XML file with a simple GUI to show missing translations, flag out-dated translations, etc.

    The framework and UI: https://github.com/neosmart/Localization

    Sample translations: https://github.com/neosmart/easybcd-localization

    Guide and screenshots (that should have probably be also folded into the non-existent readme for the localization toolkit repo): https://neosmart.net/forums/threads/translations-to-other-la...

    XML is a drag, but JSON isn't supported without a dependency under .NET Framework and the NLTUI app masks that from most users. XML also gives nice schema validation, for example look at how simple the validation is in the github action ci for the real-world app example from above: https://github.com/neosmart/EasyBCD-Localization/blob/master...

  • EasyBCD-Localization

    EasyBCD localization files for NLT. Help us translate EasyBCD into your language, it's easy and rewarding!

  • We came up with our own localization framework back in the .NET 2.0 days and we're still using it. Version-numbered translations in an XML file with a simple GUI to show missing translations, flag out-dated translations, etc.

    The framework and UI: https://github.com/neosmart/Localization

    Sample translations: https://github.com/neosmart/easybcd-localization

    Guide and screenshots (that should have probably be also folded into the non-existent readme for the localization toolkit repo): https://neosmart.net/forums/threads/translations-to-other-la...

    XML is a drag, but JSON isn't supported without a dependency under .NET Framework and the NLTUI app masks that from most users. XML also gives nice schema validation, for example look at how simple the validation is in the github action ci for the real-world app example from above: https://github.com/neosmart/EasyBCD-Localization/blob/master...

  • xecrets-cli

    Xecrets Cli - A feature-rich cross platform AxCrypt-compatible file encryption command line toolbox using a fork of original AxCrypt 2.x for cryptography. https://www.axantum.com/xecrets-ez is an easy to use graphical frontend for Windows, Linux and macOS using it, and https://www.nuget.org/packages/Xecrets.Sdk/ is a .NET SDK for it..

  • If you're referring to my app, Xecrets Ez ( https://www.axantum.com/ ), it runs in Windows, macOS and Linux.

    As mentioned, the issue I'm trying to solve is not the code end. Resx works fine once it's there. It's the translator end. How to present the texts and translations and context etc to the human, often non-technical, translators and often many and one translator might only translate a few strings, then another one etc. So it has to be real easy to use and gain access to. Can't for example ask them to install a piece of software. Finally, once a text has been translated, how to get it back to the app as easy and preferably as automated as possible.

  • Fluent.Net

    C# port of fluent.js

  • gettext/PO is just as deficient at modern plural forms support as ResX, out of the box. The only format that I'm aware of that is specifically built to include it as first-class is Mozilla's Fluent. The same workarounds generally apply to ResX as to PO: create a number of separate strings and do a bit of math up front to choose the right one, or use a formatter on top of PO/ResX that supports something like ICU MessageFormat.

    I found an attempt at doing Fluent in .NET: https://github.com/blushingpenguin/Fluent.Net/

    I also found at least one library for supporting ICU MessageFormat in .NET: https://github.com/jeffijoe/messageformat.net

  • MessageFormat.NET

    ICU MessageFormat implementation for .NET.

  • gettext/PO is just as deficient at modern plural forms support as ResX, out of the box. The only format that I'm aware of that is specifically built to include it as first-class is Mozilla's Fluent. The same workarounds generally apply to ResX as to PO: create a number of separate strings and do a bit of math up front to choose the right one, or use a formatter on top of PO/ResX that supports something like ICU MessageFormat.

    I found an attempt at doing Fluent in .NET: https://github.com/blushingpenguin/Fluent.Net/

    I also found at least one library for supporting ICU MessageFormat in .NET: https://github.com/jeffijoe/messageformat.net

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Show HN: Xecrets Ez File Encryption

    1 project | news.ycombinator.com | 13 May 2024
  • Ciphey – automated decryption/decoding/cracking tool

    1 project | news.ycombinator.com | 24 Dec 2023
  • Email Obfuscation Rendered Almost Ineffective Against ChatGPT

    2 projects | news.ycombinator.com | 5 Nov 2023
  • Show HN: Encryption Toolbox for Linux, Windows and macOS – AxCrypt Compatible

    1 project | news.ycombinator.com | 10 Oct 2023
  • How do you identify common encodings?

    1 project | /r/learnpython | 16 May 2023