Shiny.Extensions.Localization
                              
                            
                                1.1.0.60
                            
                        
                            
                                
                                
                                    Prefix Reserved
                                
                            
                    See the version list below for details.
dotnet add package Shiny.Extensions.Localization --version 1.1.0.60
NuGet\Install-Package Shiny.Extensions.Localization -Version 1.1.0.60
<PackageReference Include="Shiny.Extensions.Localization" Version="1.1.0.60" />
<PackageVersion Include="Shiny.Extensions.Localization" Version="1.1.0.60" />
<PackageReference Include="Shiny.Extensions.Localization" />
paket add Shiny.Extensions.Localization --version 1.1.0.60
#r "nuget: Shiny.Extensions.Localization, 1.1.0.60"
#:package Shiny.Extensions.Localization@1.1.0.60
#addin nuget:?package=Shiny.Extensions.Localization&version=1.1.0.60
#tool nuget:?package=Shiny.Extensions.Localization&version=1.1.0.60
SHINY SERVICE EXTENSIONS FOR .NET
<img src="https://github.com/shinyorg/shiny/raw/master/art/logo.png" width="100" />
FEATURES
- Push Notification Management without a 3rd Party (think Azure Notification Hubs for your on-prem servers)
- Mail Templating On Steroids! Loaders, parsers, converters, & senders!
- Localization done right
- Looks like Microsoft.Extensions.Configuration
- Loads from a database, resx files, and more out of the box
- Allows you to serialize to JSON easily for your frontend
- Existing strongly typed classes generated for RESX, no worries - we have solutions for that too!
- Want to use in your XAML, yup - we got that covered properly too
 
LINKS
SUPPORT SHINY
While Shiny is free and will continue to be so, maintenance and support takes a heavy toll on sustainability. If you or your company have the resources, please consider becoming a GitHub Sponsor. GitHub Sponsorships help to make Open Source Development more sustainable.
Depending on your Sponsorship Tier, you may also get access to some great benefits on Sponsor Connect (https://sponsorconnect.dev) including:
- The Sponsor Only Discord server
- Training available ONLY to sponsors on Sponsor Connect
- Special sponsor-only packages
How about some Shiny Gear
BUILDS
| Branch | Status | 
|---|---|
| Master | |
| Dev | |
| Preview | 
NUGETS
| Name | Stable | Preview | 
|---|---|---|
| Shiny.Extensions.Push | ||
| Shiny.Extensions.Push.Ef | ||
| Shiny.Extensions.Mail | ||
| Shiny.Extensions.Mail.DotLiquid | ||
| Shiny.Extensions.Mail.StorageNet | ||
| Shiny.Extensions.Localization | ||
| Shiny.Extensions.Localization.SqlServer | 
SQL Scripts
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[MailTemplates](
	[MailTemplateId] [uniqueidentifier] NOT NULL,
	[TemplateName] [nvarchar](255) NOT NULL,
	[CultureCode] [varchar](5) NULL,
	[Content] [nvarchar](max) NOT NULL,
 CONSTRAINT [PK_MailTemplates] PRIMARY KEY CLUSTERED
(
	[MailTemplateId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
 CONSTRAINT [UK_MailTemplates] UNIQUE NONCLUSTERED
(
	[TemplateName] ASC,
	[CultureCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
Localization
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Localizations](
	[LocalizationId] [uniqueidentifier] NOT NULL,
	[Section] [varchar](50) NOT NULL,
	[ResourceKey] [varchar](50) NOT NULL,
	[CultureCode] [varchar](5) NULL,
	[Value] [nvarchar](4000) NOT NULL,
 CONSTRAINT [PK_Localizations] PRIMARY KEY CLUSTERED 
(
	[LocalizationId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
 CONSTRAINT [UK_Localizations] UNIQUE NONCLUSTERED 
(
	[Section] ASC,
	[ResourceKey] ASC,
	[CultureCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
Push
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[PushRegistrations](
	[PushRegistrationId] [uniqueidentifier] NOT NULL,
	[Platform] [int] NOT NULL,
	[DeviceToken] [varchar](512) NOT NULL,
	[UserId] [varchar](50) NULL,
	[DateUpdated] [datetimeoffset](7) NOT NULL,
	[DateCreated] [datetimeoffset](7) NOT NULL,
 CONSTRAINT [PK_PushRegistrations] PRIMARY KEY CLUSTERED
(
	[PushRegistrationId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
 CONSTRAINT [UK_PushRegistrations] UNIQUE NONCLUSTERED
(
	[DeviceToken] ASC,
	[Platform] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[PushTags]    Script Date: 12/16/2021 3:27:13 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[PushTags](
	[PushTagId] [uniqueidentifier] NOT NULL,
	[PushRegistrationId] [uniqueidentifier] NOT NULL,
	[Value] [nvarchar](50) NOT NULL,
 CONSTRAINT [PK_PushTags] PRIMARY KEY CLUSTERED
(
	[PushTagId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
 CONSTRAINT [UK_PushTags] UNIQUE NONCLUSTERED
(
	[PushRegistrationId] ASC,
	[Value] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[PushTags]  WITH CHECK ADD  CONSTRAINT [FK_PushTags_PushRegistrations] FOREIGN KEY([PushRegistrationId])
REFERENCES [dbo].[PushRegistrations] ([PushRegistrationId])
GO
ALTER TABLE [dbo].[PushTags] CHECK CONSTRAINT [FK_PushTags_PushRegistrations]
GO
| 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. | 
- 
                                                    .NETStandard 2.0- No dependencies.
 
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Shiny.Extensions.Localization:
| Package | Downloads | 
|---|---|
| Shiny.Extensions.Dialogs.XfMaterial XF Material dialog implementations for Shiny mobile applications | |
| Shiny.Extensions.Localization.SqlServer A localization provider using SQL Server for use by Shiny.Extensions.Localization | |
| Shiny.Extensions.Localization.AdoNet A localization provider using SQL Server for use by Shiny.Extensions.Localization | 
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 2.0.0-preview-0009 | 741 | 8/5/2023 | |
| 2.0.0-preview-0005 | 2,620 | 3/23/2023 | |
| 2.0.0-preview-0001 | 743 | 3/22/2023 | |
| 1.3.0-preview-0027 | 5,680 | 4/25/2022 | |
| 1.3.0-preview-0002 | 745 | 4/4/2022 | |
| 1.3.0-preview-0001 | 772 | 4/5/2022 | |
| 1.3.0-g2ba43447db | 15,913 | 4/25/2022 | |
| 1.2.1-g5e4fb68cb5 | 778 | 4/5/2022 | |
| 1.2.0-gfedfcb591b | 748 | 4/4/2022 | |
| 1.1.0.60 | 1,554 | 3/2/2022 | |
| 1.1.0.59-preview | 902 | 2/3/2022 | |
| 1.1.0.55-preview | 881 | 1/23/2022 | |
| 1.1.0.52-preview | 881 | 1/22/2022 | |
| 1.1.0.49-preview | 883 | 1/19/2022 | |
| 1.1.0.48-preview | 871 | 1/18/2022 | |
| 1.1.0.46-preview | 868 | 1/18/2022 | |
| 1.0.0.43-preview | 868 | 1/16/2022 | |
| 1.0.0.38 | 8,856 | 1/4/2022 | |
| 1.0.0.37 | 1,051 | 1/4/2022 | |
| 1.0.0.30-preview | 887 | 12/30/2021 | |
| 1.0.0.28-preview | 880 | 12/22/2021 | |
| 1.0.0.12-preview | 1,101 | 12/20/2021 |