Add localized string and few new languages

This commit is contained in:
honzapatCZ 2025-12-03 11:57:50 +01:00
parent bd3a0dcadf
commit cc91622bde
2 changed files with 235 additions and 150 deletions

View File

@ -2,206 +2,263 @@
namespace NejCommon.Models
{
/// <summary>
/// Gets or Sets Language
/// </summary>
//// <summary>
//// Gets or Sets Language
//// </summary>
public enum Langauge
{
//
// Summary:
// Arabic
///
/// <summary>
/// Arabic
/// </summary>
AR,
//
// Summary:
// Bulgarian
///
/// <summary>
/// Bulgarian
/// </summary>
BG,
//
// Summary:
// Bosnian
///
/// <summary>
/// Bosnian
/// </summary>
BS,
//
// Summary:
// Czech
///
/// <summary>
/// Czech
/// </summary>
CS,
//
// Summary:
// Welsh
///
/// <summary>
/// Welsh
/// </summary>
CY,
//
// Summary:
// Danish
///
/// <summary>
/// Danish
/// </summary>
DA,
//
// Summary:
// German
///
/// <summary>
/// German
/// </summary>
DE,
//
// Summary:
// English
///
/// <summary>
/// English
/// </summary>
EN,
//
// Summary:
// Spanish; Castilian
///
/// <summary>
/// Spanish; Castilian
/// </summary>
ES,
//
// Summary:
// Estonian
///
/// <summary>
/// Estonian
/// </summary>
ET,
//
// Summary:
// Persian
///
/// <summary>
/// Persian
/// </summary>
FA,
//
// Summary:
// Finnish
///
/// <summary>
/// Finnish
/// </summary>
FI,
//
// Summary:
// French
///
/// <summary>
/// French
/// </summary>
FR,
// Summary:
// Irish
/// <summary>
/// Irish
/// </summary>
GA,
//
// Summary:
// Hebrew
///
/// <summary>
/// Hebrew
/// </summary>
HE,
//
// Summary:
// Hindi
///
/// <summary>
/// Hindi
/// </summary>
HI,
//
// Summary:
// Croatian
///
/// <summary>
/// Croatian
/// </summary>
HR,
//
// Summary:
// Haitian; Haitian Creole
///
/// <summary>
/// Haitian; Haitian Creole
/// </summary>
HT,
//
// Summary:
// Hungarian
///
/// <summary>
/// Hungarian
/// </summary>
HU,
//
// Summary:
// Armenian
///
/// <summary>
/// Armenian
/// </summary>
HY,
//
// Summary:
// Indonesian
///
/// <summary>
/// Indonesian
/// </summary>
ID,
//
// Summary:
// Icelandic
///
/// <summary>
/// Icelandic
/// </summary>
IS,
//
// Summary:
// Italian
///
/// <summary>
/// Italian
/// </summary>
IT,
//
// Summary:
// Japanese
///
/// <summary>
/// Japanese
/// </summary>
JA,
//
// Summary:
// Kazakh
///
/// <summary>
/// Kazakh
/// </summary>
KK,
//
// Summary:
// Korean
///
/// <summary>
/// Korean
/// </summary>
KO,
//
// Summary:
// Latin
///
/// <summary>
/// Latin
/// </summary>
LA,
//
// Summary:
// Luxembourgish; Letzeburgesch
///
/// <summary>
/// Luxembourgish; Letzeburgesch
/// </summary>
LB,
//
// Summary:
// Latvian
///
/// <summary>
/// Latvian
/// </summary>
LV,
//
// Summary:
// Mongolian
///
/// <summary>
/// Mongolian
/// </summary>
MN,
//
// Summary:
// Dutch; Flemish
///
/// <summary>
/// Dutch; Flemish
/// </summary>
NL,
//
// Summary:
// Norwegian
///
/// <summary>
/// Norwegian
/// </summary>
NO,
//
// Summary:
// Polish
///
/// <summary>
/// Polish
/// </summary>
PL,
//
// Summary:
// Portuguese
///
/// <summary>
/// Portuguese
/// </summary>
PT,
//
// Summary:
// Romanian; Moldavian; Moldovan
///
/// <summary>
/// Romanian; Moldavian; Moldovan
/// </summary>
RO,
//
// Summary:
// Russian
///
/// <summary>
/// Russian
/// </summary>
RU,
//
// Summary:
// Sardinian
///
/// <summary>
/// Sardinian
/// </summary>
SC,
//
// Summary:
// Slovak
///
/// <summary>
/// Slovak
/// </summary>
SK,
//
// Summary:
// Slovenian
///
/// <summary>
/// Slovenian
/// </summary>
SL,
//
// Summary:
// Serbian
///
/// <summary>
/// Serbian
/// </summary>
SR,
//
// Summary:
// Swedish
///
/// <summary>
/// Swedish
/// </summary>
SV,
//
// Summary:
// Thai
///
/// <summary>
/// Thai
/// </summary>
TH,
//
// Summary:
// Turkish
///
/// <summary>
/// Turkish
/// </summary>
TR,
//
// Summary:
// Ukrainian
///
/// <summary>
/// Ukrainian
/// </summary>
UK,
//
// Summary:
// Urdu
///
/// <summary>
/// Urdu
/// </summary>
UR,
//
// Summary:
// Uzbek
///
/// <summary>
/// Uzbek
/// </summary>
UZ,
//
// Summary:
// Vietnamese
///
/// <summary>
/// Vietnamese
/// </summary>
VI,
//
// Summary:
// Simplified Chinese
///
/// <summary>
/// Simplified Chinese
/// </summary>
ZH_CN,
//
// Summary:
// Traditional Chinese
///
/// <summary>
/// Traditional Chinese
/// </summary>
ZH_TW,
///
/// <summary>
/// Greek
/// </summary>
EL,
/// <summary>
/// Portuguese (Brazil)
/// </summary>
PT_BR
}
}

28
Models/LocalizedString.cs Normal file
View File

@ -0,0 +1,28 @@
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace NejCommon.Models;
[Owned]
public class LocalizedString
{
[Column(TypeName = "jsonb")]
public Dictionary<Langauge, string> Values { get; set; } = new();
public string this[Langauge locale]
{
get => Values.TryGetValue(locale, out var v) ? v : "";
set => Values[locale] = value;
}
public static implicit operator LocalizedString(string value)
=> new() { Values = new() { [Langauge.EN] = value } };
public static implicit operator LocalizedString(Dictionary<Langauge, string> value)
=> new() { Values = value };
public static implicit operator Dictionary<Langauge, string>(LocalizedString value)
=> value.Values;
}