PvWay.ExcelTranslationProvider.Abstractions.nc8 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package PvWay.ExcelTranslationProvider.Abstractions.nc8 --version 1.0.0
NuGet\Install-Package PvWay.ExcelTranslationProvider.Abstractions.nc8 -Version 1.0.0
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="PvWay.ExcelTranslationProvider.Abstractions.nc8" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PvWay.ExcelTranslationProvider.Abstractions.nc8 --version 1.0.0
#r "nuget: PvWay.ExcelTranslationProvider.Abstractions.nc8, 1.0.0"
#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.
// Install PvWay.ExcelTranslationProvider.Abstractions.nc8 as a Cake Addin
#addin nuget:?package=PvWay.ExcelTranslationProvider.Abstractions.nc8&version=1.0.0

// Install PvWay.ExcelTranslationProvider.Abstractions.nc8 as a Cake Tool
#tool nuget:?package=PvWay.ExcelTranslationProvider.Abstractions.nc8&version=1.0.0

pvWay Excel Translations Provider for dotNet Core 8

Description

This package provide the abstraction layer for the pvWayExcelTranslationProvider package.

Content

Cache

Usually implemented as a singleton it maintains the array of translations in cache.

namespace PvWay.ExcelTranslationProvider.Abstractions.nc8
{
    public interface IPvWayExcelTranslationCache
    {
        /// <summary>
        /// With this date any data consumer can verify
        /// whether or not its cached copy of the dictionary
        /// is still up to date and if needed refresh the
        /// cache by getting the Translation property.
        /// </summary>
        /// <returns></returns>
        DateTime LastUpdateDateUtc { get; }

        /// <summary>
        /// The key is build from the concatenation of
        /// up to 4 key parts separated by dots. Example: 'components.buttons.save').
        /// The associated value is dictionary languageCode:string
        /// </summary>
        IDictionary<string, IDictionary<string, string>> Translations { get; }

        void Stop();
        void RefreshNow();

        /// <summary>
        /// key string should contain the keys separated by dots. example : 'enum.size'
        /// </summary>
        /// <param name="languageCode"></param>
        /// <param name="keysString"></param>
        /// <returns></returns>
        string GetTranslation(string languageCode, string keysString);
    }

}

Cache loading

For loading the cache you need to inject an implementation of the IPvWayExcelTranslationService.

namespace PvWay.ExcelTranslationProvider.Abstractions.nc8
{
    /// <summary>
    /// This service provides the mechanism for managing a cached
    /// translation dictionary at data consumer side
    /// </summary>
    public interface IPvWayExcelTranslationService : IDisposable
    {
        /// <summary>
        /// With this date any data consumer can verify
        /// whether or not its cached copy of the dictionary
        /// is still up to date and if needed refresh the
        /// cache by getting the Translation property.
        /// </summary>
        /// <returns></returns>
        DateTime LastUpdateDateUtc { get; }

        /// <summary>
        /// The key is build from the concatenation of
        /// up to 4 key parts separated by dots. Example: 'components.buttons.save').
        /// The associated value is dictionary languageCode:string
        /// </summary>
        IDictionary<string, IDictionary<string, string>> ReadTranslations();
    }
}

There are two flavour for this service:

  • Assembly based
  • File system based

ExcelTranslationService using Excel as embedded resources in a given assembly

using System.Reflection;

namespace PvWay.ExcelTranslationProvider.Abstractions.nc8;

public interface IPvWayAssemblyBasedExcelTranslationServiceConfig
{
    /// <summary>
    /// This will be used for building a regex that will
    /// be match for selecting Excel resources from
    /// the collection of resource names
    /// Example: "tr.+\\.xlsx$" for getting all resource when the
    /// name starts with "tr." and ends with ".xlsx"
    /// </summary>
    string ExcelResourcePattern { get; }
    /// <summary>
    /// The assembly containing the excel resources
    /// </summary>
    Assembly Assembly { get; }
    
    Action<Exception> LogException { get; } 
}

ExcelTranslationService using Excel files on file system

using System.Reflection;

namespace PvWay.ExcelTranslationProvider.Abstractions.nc8;


public interface IPvWayAssemblyBasedExcelTranslationServiceConfig
{
    /// <summary>
    /// This will be used for building a regex that will
    /// be match for selecting Excel resources from
    /// the collection of resource names
    /// Example: "tr.+\\.xlsx$" for getting all resource when the
    /// name starts with "tr." and ends with ".xlsx"
    /// </summary>
    string ExcelResourcePattern { get; }
    /// <summary>
    /// The assembly containing the excel resources
    /// </summary>
    Assembly Assembly { get; }
    
    Action<Exception> LogException { get; } 
}
Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on PvWay.ExcelTranslationProvider.Abstractions.nc8:

Package Downloads
PvWay.ExcelTranslationProvider.nc8

Provides Excel based translations in cache

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 94 5/14/2024
1.0.0 79 5/13/2024

initial