Ver código fonte

Merge remote-tracking branch 'remotes/origin/i18n' into v2

夜鹰 7 meses atrás
pai
commit
2ef04d8062

+ 1 - 0
.gitignore

@@ -29,6 +29,7 @@ bin-release/
 /Admin.NET/Admin.NET.Web.Entry/publish
 /Admin.NET/Admin.NET.Web.Entry/logs
 /Admin.NET/Admin.NET.Web.Entry/Admin.NET.db
+/Admin.NET/Admin.NET.Web.Entry/.config
 
 # folders
 dist/

+ 8 - 9
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj

@@ -14,19 +14,20 @@
 
   <ItemGroup>
     <PackageReference Include="AlibabaCloud.SDK.Dysmsapi20170525" Version="4.0.0" />
-    <PackageReference Include="AlipaySDKNet.Standard" Version="4.9.751" />
+    <PackageReference Include="AlipaySDKNet.Standard" Version="4.9.799" />
     <PackageReference Include="AngleSharp" Version="1.3.0" />
     <PackageReference Include="AspectCore.Extensions.Reflection" Version="2.4.0" />
     <PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
     <PackageReference Include="Elastic.Clients.Elasticsearch" Version="9.1.6" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.7.114" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.7.114" />
-    <PackageReference Include="Furion.Pure" Version="4.9.7.114" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.7.119" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.7.119" />
+    <PackageReference Include="Furion.Pure" Version="4.9.7.119" />
     <PackageReference Include="Hardware.Info" Version="101.0.1.1" />
     <PackageReference Include="Hashids.net" Version="1.7.0" />
     <PackageReference Include="IPTools.China" Version="1.6.0" />
     <PackageReference Include="IPTools.International" Version="1.6.0" />
     <PackageReference Include="log4net" Version="3.2.0" />
+    <PackageReference Include="Lazy.Captcha.Core" Version="2.2.2" />
     <PackageReference Include="Magicodes.IE.Excel" Version="2.7.6" />
     <PackageReference Include="Magicodes.IE.Pdf" Version="2.7.6" />
     <PackageReference Include="Magicodes.IE.Word" Version="2.7.6" />
@@ -41,8 +42,8 @@
     <PackageReference Include="SixLabors.ImageSharp.Web" Version="3.2.0" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="3.11.0" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="3.13.0" />
-    <PackageReference Include="SqlSugar.MongoDbCore" Version="5.1.4.255" />
-    <PackageReference Include="SqlSugarCore" Version="5.1.4.200" />
+    <PackageReference Include="SqlSugar.MongoDbCore" Version="5.1.4.258" />
+    <PackageReference Include="SqlSugarCore" Version="5.1.4.202" />
     <PackageReference Include="SSH.NET" Version="2025.0.0" />
     <PackageReference Include="System.Linq.Dynamic.Core" Version="1.6.7" />
     <PackageReference Include="System.Net.Http" Version="4.3.4" />
@@ -56,7 +57,6 @@
   <ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
     <PackageReference Include="AspNet.Security.OAuth.Gitee" Version="8.3.0" />
     <PackageReference Include="AspNet.Security.OAuth.Weixin" Version="8.3.0" />
-    <PackageReference Include="Lazy.Captcha.Core" Version="2.2.2" />
     <PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.19" />
     <PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="8.0.19" />
     <PackageReference Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="8.0.19" />
@@ -66,12 +66,11 @@
   <ItemGroup Condition=" '$(TargetFramework)' == 'net9.0' ">
     <PackageReference Include="AspNet.Security.OAuth.Gitee" Version="9.4.0" />
     <PackageReference Include="AspNet.Security.OAuth.Weixin" Version="9.4.0" />
-    <PackageReference Include="Lazy.Captcha.Core" Version="2.1.0" />
     <PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="9.0.8" />
     <PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="9.0.8" />
     <PackageReference Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="9.0.8" />
     <PackageReference Include="Microsoft.PowerShell.SDK" Version="7.5.2" />
-    <PackageReference Include="XiHan.Framework.Utils" Version="0.11.7" />
+    <PackageReference Include="XiHan.Framework.Utils" Version="1.2.1" />
   </ItemGroup>
 
 </Project>

+ 1 - 1
Admin.NET/Admin.NET.Core/Entity/SysLangText.cs

@@ -19,7 +19,7 @@ public class SysLangText : EntityBase
     public string EntityName { get; set; }
 
     /// <summary>
-    /// 语言代码(如 zh_CN)
+    /// 所属实体ID
     /// </summary>
     [SugarColumn(ColumnDescription = "所属实体ID")]
     public long EntityId { get; set; }

+ 22 - 0
Admin.NET/Admin.NET.Core/Option/LocalizationSettingsOptions.cs

@@ -0,0 +1,22 @@
+// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
+//
+// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
+//
+// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
+
+namespace Admin.NET.Core;
+public sealed class LocalizationSettingsOptions : IConfigurableOptions
+{
+    /// <summary>
+    /// 语言列表
+    /// </summary>
+    public List<string> SupportedCultures { get; set; } 
+    /// <summary>
+    /// 默认语言
+    /// </summary>
+    public string DefaultCulture { get; set; }
+    /// <summary>
+    /// 固定时间区域为特定时区(多语言)
+    /// </summary>
+    public string DateTimeFormatCulture { get; set; }
+}

+ 89 - 89
Admin.NET/Admin.NET.Core/SeedData/SysLangSeedData.cs

@@ -7,7 +7,7 @@
 namespace Admin.NET.Core;
 
 /// <summary>
-/// 系统字典类型表种子数据
+/// 语言表种子数据
 /// </summary>
 public class SysLangSeedData : ISqlSugarEntitySeedData<SysLang>
 {
@@ -19,94 +19,94 @@ public class SysLangSeedData : ISqlSugarEntitySeedData<SysLang>
     {
         return new[]
         {
-            new SysLang{ Id=1300000000001,Name="Chinese (Simplified) / 简体中文", Code="zh_CN", IsoCode="zh_CN", UrlCode="zh-cn", Direction=DirectionEnum.Ltr, DateFormat="%Y年%m月%d日", TimeFormat="%H时%M分%S秒",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=true},
-            new SysLang{ Id=1300000000002,Name="Chinese (HK) / 繁體中文", Code="zh_HK", IsoCode="zh_HK", UrlCode="zh-hk", Direction=DirectionEnum.Ltr, DateFormat="%Y年%m月%d日 %A", TimeFormat="%I時%M分%S秒",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=true},
-            new SysLang{ Id=1300000000003,Name="Chinese (Traditional) / 繁體中文", Code="zh_TW", IsoCode="zh_TW", UrlCode="zh-tw", Direction=DirectionEnum.Ltr, DateFormat="%Y年%m月%d日", TimeFormat="%H時%M分%S秒",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=true},
-            new SysLang{ Id=1300000000004,Name="Italian / Italiano", Code="it_IT", IsoCode="it", UrlCode="it", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=true},
-            new SysLang{ Id=1300000000005,Name="English (US)", Code="en_US", IsoCode="en", UrlCode="en", Direction=DirectionEnum.Ltr, DateFormat="%m/%d/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=true},
-            new SysLang{ Id=1300000000006,Name="Amharic / አምሃርኛ", Code="am_ET", IsoCode="am_ET", UrlCode="am-et", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%I:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000007,Name="Arabic / الْعَرَبيّة", Code="ar_001", IsoCode="ar", UrlCode="ar", Direction=DirectionEnum.Rtl, DateFormat="%d %b, %Y", TimeFormat="%I:%M:%S",WeekStart=WeekEnum.Saturday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000008,Name="Arabic (Syria) / الْعَرَبيّة", Code="ar_SY", IsoCode="ar_SY", UrlCode="ar-sy", Direction=DirectionEnum.Rtl, DateFormat="%d %b, %Y", TimeFormat="%I:%M:%S",WeekStart=WeekEnum.Saturday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000009,Name="Azerbaijani / Azərbaycanca", Code="az_AZ", IsoCode="az", UrlCode="az", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000010,Name="Basque / Euskara", Code="eu_ES", IsoCode="eu_ES", UrlCode="eu-es", Direction=DirectionEnum.Ltr, DateFormat="%a, %Y.eko %bren %da", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
-            new SysLang{ Id=1300000000011,Name="Bengali / বাংলা", Code="bn_IN", IsoCode="bn_IN", UrlCode="bn-in", Direction=DirectionEnum.Ltr, DateFormat="%A %d %b %Y", TimeFormat="%I:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
-            new SysLang{ Id=1300000000012,Name="Bosnian / bosanski jezik", Code="bs_BA", IsoCode="bs", UrlCode="bs", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000013,Name="Bulgarian / български език", Code="bg_BG", IsoCode="bg", UrlCode="bg", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H,%M,%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep="null",Active=false},
-            new SysLang{ Id=1300000000014,Name="Catalan / Català", Code="ca_ES", IsoCode="ca_ES", UrlCode="ca-es", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000015,Name="Croatian / hrvatski jezik", Code="hr_HR", IsoCode="hr", UrlCode="hr", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000016,Name="Czech / Čeština", Code="cs_CZ", IsoCode="cs_CZ", UrlCode="cs-cz", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000017,Name="Danish / Dansk", Code="da_DK", IsoCode="da_DK", UrlCode="da-dk", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000018,Name="Dutch (BE) / Nederlands (BE)", Code="nl_BE", IsoCode="nl_BE", UrlCode="nl-be", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000019,Name="Dutch / Nederlands", Code="nl_NL", IsoCode="nl", UrlCode="nl", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000020,Name="English (AU)", Code="en_AU", IsoCode="en_AU", UrlCode="en-au", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000021,Name="English (CA)", Code="en_CA", IsoCode="en_CA", UrlCode="en-ca", Direction=DirectionEnum.Ltr, DateFormat="%Y-%m-%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000022,Name="English (UK)", Code="en_GB", IsoCode="en_GB", UrlCode="en-gb", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000023,Name="English (IN)", Code="en_IN", IsoCode="en_IN", UrlCode="en-in", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,2,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000024,Name="Estonian / Eesti keel", Code="et_EE", IsoCode="et", UrlCode="et", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000025,Name="Finnish / Suomi", Code="fi_FI", IsoCode="fi", UrlCode="fi", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H.%M.%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000026,Name="French (BE) / Français (BE)", Code="fr_BE", IsoCode="fr_BE", UrlCode="fr-be", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000027,Name="French (CA) / Français (CA)", Code="fr_CA", IsoCode="fr_CA", UrlCode="fr-ca", Direction=DirectionEnum.Ltr, DateFormat="%Y-%m-%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000028,Name="French (CH) / Français (CH)", Code="fr_CH", IsoCode="fr_CH", UrlCode="fr-ch", Direction=DirectionEnum.Ltr, DateFormat="%d. %m. %Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep="'",Active=false},
-            new SysLang{ Id=1300000000029,Name="French / Français", Code="fr_FR", IsoCode="fr", UrlCode="fr", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000030,Name="Galician / Galego", Code="gl_ES", IsoCode="gl", UrlCode="gl", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
-            new SysLang{ Id=1300000000031,Name="Georgian / ქართული ენა", Code="ka_GE", IsoCode="ka", UrlCode="ka", Direction=DirectionEnum.Ltr, DateFormat="%m/%d/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000032,Name="German / Deutsch", Code="de_DE", IsoCode="de", UrlCode="de", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000033,Name="German (CH) / Deutsch (CH)", Code="de_CH", IsoCode="de_CH", UrlCode="de-ch", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,3]",DecimalPoint=".",ThousandsSep="'",Active=false},
-            new SysLang{ Id=1300000000034,Name="Greek / Ελληνικά", Code="el_GR", IsoCode="el_GR", UrlCode="el-gr", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%I:%M:%S %p",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000035,Name="Gujarati / ગુજરાતી", Code="gu_IN", IsoCode="gu", UrlCode="gu", Direction=DirectionEnum.Ltr, DateFormat="%A %d %b %Y", TimeFormat="%I:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000036,Name="Hebrew / עִבְרִי", Code="he_IL", IsoCode="he", UrlCode="he", Direction=DirectionEnum.Rtl, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000037,Name="Hindi / हिंदी", Code="hi_IN", IsoCode="hi", UrlCode="hi", Direction=DirectionEnum.Ltr, DateFormat="%A %d %b %Y", TimeFormat="%I:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000038,Name="Hungarian / Magyar", Code="hu_HU", IsoCode="hu", UrlCode="hu", Direction=DirectionEnum.Ltr, DateFormat="%Y-%m-%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000039,Name="Indonesian / Bahasa Indonesia", Code="id_ID", IsoCode="id", UrlCode="id", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000040,Name="Japanese / 日本語", Code="ja_JP", IsoCode="ja", UrlCode="ja", Direction=DirectionEnum.Ltr, DateFormat="%Y年%m月%d日", TimeFormat="%H時%M分%S秒",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000041,Name="Kabyle / Taqbaylit", Code="kab_DZ", IsoCode="kab", UrlCode="kab", Direction=DirectionEnum.Ltr, DateFormat="%m/%d/%Y", TimeFormat="%I:%M:%S %p",WeekStart=WeekEnum.Saturday,Grouping="[]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000042,Name="Khmer / ភាសាខ្មែរ", Code="km_KH", IsoCode="km", UrlCode="km", Direction=DirectionEnum.Ltr, DateFormat="%d %B %Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000043,Name="Korean (KP) / 한국어 (KP)", Code="ko_KP", IsoCode="ko_KP", UrlCode="ko-kp", Direction=DirectionEnum.Ltr, DateFormat="%m/%d/%Y", TimeFormat="%I:%M:%S %p",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000044,Name="Korean (KR) / 한국어 (KR)", Code="ko_KR", IsoCode="ko_KR", UrlCode="ko-kr", Direction=DirectionEnum.Ltr, DateFormat="%Y년 %m월 %d일", TimeFormat="%H시 %M분 %S초",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000045,Name="Lao / ພາສາລາວ", Code="lo_LA", IsoCode="lo", UrlCode="lo", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000046,Name="Latvian / latviešu valoda", Code="lv_LV", IsoCode="lv", UrlCode="lv", Direction=DirectionEnum.Ltr, DateFormat="%Y.%m.%d.", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000047,Name="Lithuanian / Lietuvių kalba", Code="lt_LT", IsoCode="lt", UrlCode="lt", Direction=DirectionEnum.Ltr, DateFormat="%Y-%m-%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000048,Name="Luxembourgish", Code="lb_LU", IsoCode="lb", UrlCode="lb", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000049,Name="Macedonian / македонски јазик", Code="mk_MK", IsoCode="mk", UrlCode="mk", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000050,Name="Malayalam / മലയാളം", Code="ml_IN", IsoCode="ml", UrlCode="ml", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000051,Name="Mongolian / монгол", Code="mn_MN", IsoCode="mn", UrlCode="mn", Direction=DirectionEnum.Ltr, DateFormat="%Y-%m-%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep="'",Active=false},
-            new SysLang{ Id=1300000000052,Name="Malay / Bahasa Melayu", Code="ms_MY", IsoCode="ms", UrlCode="ms", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000053,Name="Norwegian Bokmål / Norsk bokmål", Code="nb_NO", IsoCode="nb_NO", UrlCode="nb-no", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000054,Name="Persian / فارسی", Code="fa_IR", IsoCode="fa", UrlCode="fa", Direction=DirectionEnum.Rtl, DateFormat="%Y/%m/%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Saturday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000055,Name="Polish / Język polski", Code="pl_PL", IsoCode="pl", UrlCode="pl", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
-            new SysLang{ Id=1300000000056,Name="Portuguese (AO) / Português (AO)", Code="pt_AO", IsoCode="pt_AO", UrlCode="pt-ao", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
-            new SysLang{ Id=1300000000057,Name="Portuguese (BR) / Português (BR)", Code="pt_BR", IsoCode="pt_BR", UrlCode="pt-br", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000058,Name="Portuguese / Português", Code="pt_PT", IsoCode="pt", UrlCode="pt", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
-            new SysLang{ Id=1300000000059,Name="Romanian / română", Code="ro_RO", IsoCode="ro", UrlCode="ro", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000060,Name="Russian / русский язык", Code="ru_RU", IsoCode="ru", UrlCode="ru", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000061,Name="Serbian (Cyrillic) / српски", Code="sr_RS", IsoCode="sr_RS", UrlCode="sr-rs", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y.", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
-            new SysLang{ Id=1300000000062,Name="Serbian (Latin) / srpski", Code="sr@latin", IsoCode="sr@latin", UrlCode="sr@latin", Direction=DirectionEnum.Ltr, DateFormat="%m/%d/%Y", TimeFormat="%I:%M:%S %p",WeekStart=WeekEnum.Sunday,Grouping="[]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000063,Name="Slovak / Slovenský jazyk", Code="sk_SK", IsoCode="sk", UrlCode="sk", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000064,Name="Slovenian / slovenščina", Code="sl_SI", IsoCode="sl", UrlCode="sl", Direction=DirectionEnum.Ltr, DateFormat="%d. %m. %Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000065,Name="Spanish (AR) / Español (AR)", Code="es_AR", IsoCode="es_AR", UrlCode="es-ar", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000066,Name="Spanish (BO) / Español (BO)", Code="es_BO", IsoCode="es_BO", UrlCode="es-bo", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000067,Name="Spanish (CL) / Español (CL)", Code="es_CL", IsoCode="es_CL", UrlCode="es-cl", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000068,Name="Spanish (CO) / Español (CO)", Code="es_CO", IsoCode="es_CO", UrlCode="es-co", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000069,Name="Spanish (CR) / Español (CR)", Code="es_CR", IsoCode="es_CR", UrlCode="es-cr", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000070,Name="Spanish (DO) / Español (DO)", Code="es_DO", IsoCode="es_DO", UrlCode="es-do", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%I:%M:%S %p",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000071,Name="Spanish (EC) / Español (EC)", Code="es_EC", IsoCode="es_EC", UrlCode="es-ec", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000072,Name="Spanish (GT) / Español (GT)", Code="es_GT", IsoCode="es_GT", UrlCode="es-gt", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000073,Name="Spanish (MX) / Español (MX)", Code="es_MX", IsoCode="es_MX", UrlCode="es-mx", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000074,Name="Spanish (PA) / Español (PA)", Code="es_PA", IsoCode="es_PA", UrlCode="es-pa", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000075,Name="Spanish (PE) / Español (PE)", Code="es_PE", IsoCode="es_PE", UrlCode="es-pe", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000076,Name="Spanish (PY) / Español (PY)", Code="es_PY", IsoCode="es_PY", UrlCode="es-py", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000077,Name="Spanish (UY) / Español (UY)", Code="es_UY", IsoCode="es_UY", UrlCode="es-uy", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000078,Name="Spanish (VE) / Español (VE)", Code="es_VE", IsoCode="es_VE", UrlCode="es-ve", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000079,Name="Spanish / Español", Code="es_ES", IsoCode="es", UrlCode="es", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000080,Name="Swedish / Svenska", Code="sv_SE", IsoCode="sv", UrlCode="sv", Direction=DirectionEnum.Ltr, DateFormat="%Y-%m-%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000081,Name="Thai / ภาษาไทย", Code="th_TH", IsoCode="th", UrlCode="th", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000082,Name="Tagalog / Filipino", Code="tl_PH", IsoCode="tl", UrlCode="tl", Direction=DirectionEnum.Ltr, DateFormat="%m/%d/%y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000083,Name="Turkish / Türkçe", Code="tr_TR", IsoCode="tr", UrlCode="tr", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000084,Name="Ukrainian / українська", Code="uk_UA", IsoCode="uk", UrlCode="uk", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
-            new SysLang{ Id=1300000000085,Name="Vietnamese / Tiếng Việt", Code="vi_VN", IsoCode="vi", UrlCode="vi", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000086,Name="Albanian / Shqip", Code="sq_AL", IsoCode="sq", UrlCode="sq", Direction=DirectionEnum.Ltr, DateFormat="%Y-%b-%d", TimeFormat="%I.%M.%S.",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
-            new SysLang{ Id=1300000000087,Name="Telugu / తెలుగు", Code="te_IN", IsoCode="te", UrlCode="te", Direction=DirectionEnum.Ltr, DateFormat="%B %d %A %Y", TimeFormat="%p%I.%M.%S",WeekStart=WeekEnum.Sunday,Grouping="[]",DecimalPoint=".",ThousandsSep=",",Active=false},
-            new SysLang{ Id=1300000000088,Name="Burmese / ဗမာစာ", Code="my_MM", IsoCode="my", UrlCode="mya", Direction=DirectionEnum.Ltr, DateFormat="%Y %b %d %A", TimeFormat="%I:%M:%S %p",WeekStart=WeekEnum.Sunday,Grouping="[3,3]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000001,Name="Chinese (Simplified) / 简体中文", Code="zh-CN", IsoCode="zh_CN", UrlCode="zh-cn", Direction=DirectionEnum.Ltr, DateFormat="%Y年%m月%d日", TimeFormat="%H时%M分%S秒",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=true},
+            new SysLang{ Id=1300000000002,Name="Chinese (HK) / 繁體中文", Code="zh-HK", IsoCode="zh_HK", UrlCode="zh-hk", Direction=DirectionEnum.Ltr, DateFormat="%Y年%m月%d日 %A", TimeFormat="%I時%M分%S秒",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=true},
+            new SysLang{ Id=1300000000003,Name="Chinese (Traditional) / 繁體中文", Code="zh-TW", IsoCode="zh_TW", UrlCode="zh-tw", Direction=DirectionEnum.Ltr, DateFormat="%Y年%m月%d日", TimeFormat="%H時%M分%S秒",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=true},
+            new SysLang{ Id=1300000000004,Name="Italian / Italiano", Code="it-IT", IsoCode="it", UrlCode="it", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=true},
+            new SysLang{ Id=1300000000005,Name="English (US)", Code="en-US", IsoCode="en", UrlCode="en", Direction=DirectionEnum.Ltr, DateFormat="%m/%d/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=true},
+            new SysLang{ Id=1300000000006,Name="Amharic / አምሃርኛ", Code="am-ET", IsoCode="am_ET", UrlCode="am-et", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%I:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000007,Name="Arabic / الْعَرَبيّة", Code="ar-001", IsoCode="ar", UrlCode="ar", Direction=DirectionEnum.Rtl, DateFormat="%d %b, %Y", TimeFormat="%I:%M:%S",WeekStart=WeekEnum.Saturday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000008,Name="Arabic (Syria) / الْعَرَبيّة", Code="ar-SY", IsoCode="ar_SY", UrlCode="ar-sy", Direction=DirectionEnum.Rtl, DateFormat="%d %b, %Y", TimeFormat="%I:%M:%S",WeekStart=WeekEnum.Saturday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000009,Name="Azerbaijani / Azərbaycanca", Code="az-AZ", IsoCode="az", UrlCode="az", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000010,Name="Basque / Euskara", Code="eu-ES", IsoCode="eu_ES", UrlCode="eu-es", Direction=DirectionEnum.Ltr, DateFormat="%a, %Y.eko %bren %da", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
+            new SysLang{ Id=1300000000011,Name="Bengali / বাংলা", Code="bn-IN", IsoCode="bn_IN", UrlCode="bn-in", Direction=DirectionEnum.Ltr, DateFormat="%A %d %b %Y", TimeFormat="%I:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
+            new SysLang{ Id=1300000000012,Name="Bosnian / bosanski jezik", Code="bs-BA", IsoCode="bs", UrlCode="bs", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000013,Name="Bulgarian / български език", Code="bg-BG", IsoCode="bg", UrlCode="bg", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H,%M,%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep="null",Active=false},
+            new SysLang{ Id=1300000000014,Name="Catalan / Català", Code="ca-ES", IsoCode="ca_ES", UrlCode="ca-es", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000015,Name="Croatian / hrvatski jezik", Code="hr-HR", IsoCode="hr", UrlCode="hr", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000016,Name="Czech / Čeština", Code="cs-CZ", IsoCode="cs_CZ", UrlCode="cs-cz", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000017,Name="Danish / Dansk", Code="da-DK", IsoCode="da_DK", UrlCode="da-dk", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000018,Name="Dutch (BE) / Nederlands (BE)", Code="nl-BE", IsoCode="nl_BE", UrlCode="nl-be", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000019,Name="Dutch / Nederlands", Code="nl-NL", IsoCode="nl", UrlCode="nl", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000020,Name="English (AU)", Code="en-AU", IsoCode="en_AU", UrlCode="en-au", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000021,Name="English (CA)", Code="en-CA", IsoCode="en_CA", UrlCode="en-ca", Direction=DirectionEnum.Ltr, DateFormat="%Y-%m-%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000022,Name="English (UK)", Code="en-GB", IsoCode="en_GB", UrlCode="en-gb", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000023,Name="English (IN)", Code="en-IN", IsoCode="en_IN", UrlCode="en-in", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,2,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000024,Name="Estonian / Eesti keel", Code="et-EE", IsoCode="et", UrlCode="et", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000025,Name="Finnish / Suomi", Code="fi-FI", IsoCode="fi", UrlCode="fi", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H.%M.%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000026,Name="French (BE) / Français (BE)", Code="fr-BE", IsoCode="fr_BE", UrlCode="fr-be", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000027,Name="French (CA) / Français (CA)", Code="fr-CA", IsoCode="fr_CA", UrlCode="fr-ca", Direction=DirectionEnum.Ltr, DateFormat="%Y-%m-%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000028,Name="French (CH) / Français (CH)", Code="fr-CH", IsoCode="fr_CH", UrlCode="fr-ch", Direction=DirectionEnum.Ltr, DateFormat="%d. %m. %Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep="'",Active=false},
+            new SysLang{ Id=1300000000029,Name="French / Français", Code="fr-FR", IsoCode="fr", UrlCode="fr", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000030,Name="Galician / Galego", Code="gl-ES", IsoCode="gl", UrlCode="gl", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
+            new SysLang{ Id=1300000000031,Name="Georgian / ქართული ენა", Code="ka-GE", IsoCode="ka", UrlCode="ka", Direction=DirectionEnum.Ltr, DateFormat="%m/%d/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000032,Name="German / Deutsch", Code="de-DE", IsoCode="de", UrlCode="de", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000033,Name="German (CH) / Deutsch (CH)", Code="de-CH", IsoCode="de_CH", UrlCode="de-ch", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,3]",DecimalPoint=".",ThousandsSep="'",Active=false},
+            new SysLang{ Id=1300000000034,Name="Greek / Ελληνικά", Code="el-GR", IsoCode="el_GR", UrlCode="el-gr", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%I:%M:%S %p",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000035,Name="Gujarati / ગુજરાતી", Code="gu-IN", IsoCode="gu", UrlCode="gu", Direction=DirectionEnum.Ltr, DateFormat="%A %d %b %Y", TimeFormat="%I:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000036,Name="Hebrew / עִבְרִי", Code="he-IL", IsoCode="he", UrlCode="he", Direction=DirectionEnum.Rtl, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000037,Name="Hindi / हिंदी", Code="hi-IN", IsoCode="hi", UrlCode="hi", Direction=DirectionEnum.Ltr, DateFormat="%A %d %b %Y", TimeFormat="%I:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000038,Name="Hungarian / Magyar", Code="hu-HU", IsoCode="hu", UrlCode="hu", Direction=DirectionEnum.Ltr, DateFormat="%Y-%m-%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000039,Name="Indonesian / Bahasa Indonesia", Code="id-ID", IsoCode="id", UrlCode="id", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000040,Name="Japanese / 日本語", Code="ja-JP", IsoCode="ja", UrlCode="ja", Direction=DirectionEnum.Ltr, DateFormat="%Y年%m月%d日", TimeFormat="%H時%M分%S秒",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000041,Name="Kabyle / Taqbaylit", Code="kab-DZ", IsoCode="kab", UrlCode="kab", Direction=DirectionEnum.Ltr, DateFormat="%m/%d/%Y", TimeFormat="%I:%M:%S %p",WeekStart=WeekEnum.Saturday,Grouping="[]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000042,Name="Khmer / ភាសាខ្មែរ", Code="km-KH", IsoCode="km", UrlCode="km", Direction=DirectionEnum.Ltr, DateFormat="%d %B %Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000043,Name="Korean (KP) / 한국어 (KP)", Code="ko-KP", IsoCode="ko_KP", UrlCode="ko-kp", Direction=DirectionEnum.Ltr, DateFormat="%m/%d/%Y", TimeFormat="%I:%M:%S %p",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000044,Name="Korean (KR) / 한국어 (KR)", Code="ko-KR", IsoCode="ko_KR", UrlCode="ko-kr", Direction=DirectionEnum.Ltr, DateFormat="%Y년 %m월 %d일", TimeFormat="%H시 %M분 %S초",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000045,Name="Lao / ພາສາລາວ", Code="lo-LA", IsoCode="lo", UrlCode="lo", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000046,Name="Latvian / latviešu valoda", Code="lv-LV", IsoCode="lv", UrlCode="lv", Direction=DirectionEnum.Ltr, DateFormat="%Y.%m.%d.", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000047,Name="Lithuanian / Lietuvių kalba", Code="lt-LT", IsoCode="lt", UrlCode="lt", Direction=DirectionEnum.Ltr, DateFormat="%Y-%m-%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000048,Name="Luxembourgish", Code="lb-LU", IsoCode="lb", UrlCode="lb", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000049,Name="Macedonian / македонски јазик", Code="mk-MK", IsoCode="mk", UrlCode="mk", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000050,Name="Malayalam / മലയാളം", Code="ml-IN", IsoCode="ml", UrlCode="ml", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000051,Name="Mongolian / монгол", Code="mn-MN", IsoCode="mn", UrlCode="mn", Direction=DirectionEnum.Ltr, DateFormat="%Y-%m-%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep="'",Active=false},
+            new SysLang{ Id=1300000000052,Name="Malay / Bahasa Melayu", Code="ms-MY", IsoCode="ms", UrlCode="ms", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000053,Name="Norwegian Bokmål / Norsk bokmål", Code="nb-NO", IsoCode="nb_NO", UrlCode="nb-no", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000054,Name="Persian / فارسی", Code="fa-IR", IsoCode="fa", UrlCode="fa", Direction=DirectionEnum.Rtl, DateFormat="%Y/%m/%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Saturday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000055,Name="Polish / Język polski", Code="pl-PL", IsoCode="pl", UrlCode="pl", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
+            new SysLang{ Id=1300000000056,Name="Portuguese (AO) / Português (AO)", Code="pt-AO", IsoCode="pt_AO", UrlCode="pt-ao", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
+            new SysLang{ Id=1300000000057,Name="Portuguese (BR) / Português (BR)", Code="pt-BR", IsoCode="pt_BR", UrlCode="pt-br", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000058,Name="Portuguese / Português", Code="pt-PT", IsoCode="pt", UrlCode="pt", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
+            new SysLang{ Id=1300000000059,Name="Romanian / română", Code="ro-RO", IsoCode="ro", UrlCode="ro", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000060,Name="Russian / русский язык", Code="ru-RU", IsoCode="ru", UrlCode="ru", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000061,Name="Serbian (Cyrillic) / српски", Code="sr-Cyrl-RS", IsoCode="sr_RS", UrlCode="sr-rs", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y.", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[]",DecimalPoint=",",ThousandsSep="null",Active=false},
+            new SysLang{ Id=1300000000062,Name="Serbian (Latin) / srpski", Code="sr-Latn-RS", IsoCode="sr@latin", UrlCode="sr@latin", Direction=DirectionEnum.Ltr, DateFormat="%m/%d/%Y", TimeFormat="%I:%M:%S %p",WeekStart=WeekEnum.Sunday,Grouping="[]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000063,Name="Slovak / Slovenský jazyk", Code="sk-SK", IsoCode="sk", UrlCode="sk", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000064,Name="Slovenian / slovenščina", Code="sl-SI", IsoCode="sl", UrlCode="sl", Direction=DirectionEnum.Ltr, DateFormat="%d. %m. %Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000065,Name="Spanish (AR) / Español (AR)", Code="es-AR", IsoCode="es_AR", UrlCode="es-ar", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000066,Name="Spanish (BO) / Español (BO)", Code="es-BO", IsoCode="es_BO", UrlCode="es-bo", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000067,Name="Spanish (CL) / Español (CL)", Code="es-CL", IsoCode="es_CL", UrlCode="es-cl", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000068,Name="Spanish (CO) / Español (CO)", Code="es-CO", IsoCode="es_CO", UrlCode="es-co", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000069,Name="Spanish (CR) / Español (CR)", Code="es-CR", IsoCode="es_CR", UrlCode="es-cr", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000070,Name="Spanish (DO) / Español (DO)", Code="es-DO", IsoCode="es_DO", UrlCode="es-do", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%I:%M:%S %p",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000071,Name="Spanish (EC) / Español (EC)", Code="es-EC", IsoCode="es_EC", UrlCode="es-ec", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000072,Name="Spanish (GT) / Español (GT)", Code="es-GT", IsoCode="es_GT", UrlCode="es-gt", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000073,Name="Spanish (MX) / Español (MX)", Code="es-MX", IsoCode="es_MX", UrlCode="es-mx", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000074,Name="Spanish (PA) / Español (PA)", Code="es-PA", IsoCode="es_PA", UrlCode="es-pa", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000075,Name="Spanish (PE) / Español (PE)", Code="es-PE", IsoCode="es_PE", UrlCode="es-pe", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000076,Name="Spanish (PY) / Español (PY)", Code="es-PY", IsoCode="es_PY", UrlCode="es-py", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000077,Name="Spanish (UY) / Español (UY)", Code="es-UY", IsoCode="es_UY", UrlCode="es-uy", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000078,Name="Spanish (VE) / Español (VE)", Code="es-VE", IsoCode="es_VE", UrlCode="es-ve", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000079,Name="Spanish / Español", Code="es-ES", IsoCode="es", UrlCode="es", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000080,Name="Swedish / Svenska", Code="sv-SE", IsoCode="sv", UrlCode="sv", Direction=DirectionEnum.Ltr, DateFormat="%Y-%m-%d", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000081,Name="Thai / ภาษาไทย", Code="th-TH", IsoCode="th", UrlCode="th", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Sunday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000082,Name="Tagalog / Filipino", Code="tl-PH", IsoCode="tl", UrlCode="tl", Direction=DirectionEnum.Ltr, DateFormat="%m/%d/%y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000083,Name="Turkish / Türkçe", Code="tr-TR", IsoCode="tr", UrlCode="tr", Direction=DirectionEnum.Ltr, DateFormat="%d-%m-%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000084,Name="Ukrainian / українська", Code="uk-UA", IsoCode="uk", UrlCode="uk", Direction=DirectionEnum.Ltr, DateFormat="%d.%m.%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=" ",Active=false},
+            new SysLang{ Id=1300000000085,Name="Vietnamese / Tiếng Việt", Code="vi-VN", IsoCode="vi", UrlCode="vi", Direction=DirectionEnum.Ltr, DateFormat="%d/%m/%Y", TimeFormat="%H:%M:%S",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000086,Name="Albanian / Shqip", Code="sq-AL", IsoCode="sq", UrlCode="sq", Direction=DirectionEnum.Ltr, DateFormat="%Y-%b-%d", TimeFormat="%I.%M.%S.",WeekStart=WeekEnum.Monday,Grouping="[3,0]",DecimalPoint=",",ThousandsSep=".",Active=false},
+            new SysLang{ Id=1300000000087,Name="Telugu / తెలుగు", Code="te-IN", IsoCode="te", UrlCode="te", Direction=DirectionEnum.Ltr, DateFormat="%B %d %A %Y", TimeFormat="%p%I.%M.%S",WeekStart=WeekEnum.Sunday,Grouping="[]",DecimalPoint=".",ThousandsSep=",",Active=false},
+            new SysLang{ Id=1300000000088,Name="Burmese / ဗမာစာ", Code="my-MM", IsoCode="my", UrlCode="mya", Direction=DirectionEnum.Ltr, DateFormat="%Y %b %d %A", TimeFormat="%I:%M:%S %p",WeekStart=WeekEnum.Sunday,Grouping="[3,3]",DecimalPoint=".",ThousandsSep=",",Active=false},
         };
     }
 }

+ 27 - 0
Admin.NET/Admin.NET.Core/Service/LangText/SysLangTextCacheService.cs

@@ -78,6 +78,33 @@ public class SysLangTextCacheService : IDynamicApiController, ITransient
     }
 
     /// <summary>
+    /// 根据实体类型、字段、主键ID 和语言编码获取翻译实体
+    /// </summary>
+    /// <param name="entityName">实体名称</param>
+    /// <param name="fieldName">字段名称</param>
+    /// <param name="entityId">实体主键ID</param>
+    /// <param name="langCode">语言编码</param>
+    /// <returns></returns>
+    [NonAction]
+    public async Task<SysLangText> GetTranslationEntity(string entityName, string fieldName, long entityId, string langCode)
+    {
+        var key = BuildKey(entityName, fieldName, entityId, langCode) + "_entity";
+        var value = _sysCacheService.Get<SysLangText>(key);
+        if (!value.IsNullOrEmpty()) return value;
+
+        value = await _sysLangTextRep.AsQueryable()
+            .Where(u => u.EntityName == entityName && u.FieldName == fieldName && u.EntityId == entityId && u.LangCode == langCode)
+            .FirstAsync();
+
+        if (!value.IsNullOrEmpty())
+        {
+            _sysCacheService.Set(key, value, expireSeconds); // 设置过期
+        }
+
+        return value;
+    }
+
+    /// <summary>
     /// 【批量翻译获取】<br/>
     /// 根据实体、字段和一批主键ID获取对应翻译内容,自动从缓存或数据库获取。<br/>
     /// 适用于:SKU、多商品、批量字典等需要高效批量获取的场景。<br/>

+ 41 - 12
Admin.NET/Admin.NET.Core/Service/Menu/SysMenuService.cs

@@ -20,6 +20,7 @@ public class SysMenuService : IDynamicApiController, ITransient
     private readonly SysCacheService _sysCacheService;
     private readonly UserManager _userManager;
     private readonly SysLangTextCacheService _sysLangTextCacheService;
+    private readonly SysLangTextService _sysLangTextService;
 
     public SysMenuService(
         SqlSugarRepository<SysTenantMenu> sysTenantMenuRep,
@@ -29,7 +30,8 @@ public class SysMenuService : IDynamicApiController, ITransient
         SysUserMenuService sysUserMenuService,
         SysCacheService sysCacheService,
         UserManager userManager,
-        SysLangTextCacheService sysLangTextCacheService)
+        SysLangTextCacheService sysLangTextCacheService,
+        SysLangTextService sysLangTextService)
     {
         _userManager = userManager;
         _sysMenuRep = sysMenuRep;
@@ -39,6 +41,7 @@ public class SysMenuService : IDynamicApiController, ITransient
         _sysTenantMenuRep = sysTenantMenuRep;
         _sysCacheService = sysCacheService;
         _sysLangTextCacheService = sysLangTextCacheService;
+        _sysLangTextService = sysLangTextService;
     }
 
     /// <summary>
@@ -48,6 +51,7 @@ public class SysMenuService : IDynamicApiController, ITransient
     [DisplayName("获取登录菜单树")]
     public async Task<List<MenuOutput>> GetLoginMenuTree()
     {
+        var sysDefaultLang = App.GetOptions<LocalizationSettingsOptions>().DefaultCulture;
         var langCode = _userManager.LangCode;
         var (query, _) = GetSugarQueryableAndTenantId(_userManager.TenantId);
 
@@ -65,18 +69,22 @@ public class SysMenuService : IDynamicApiController, ITransient
             .OrderBy(u => new { u.OrderNo, u.Id })
             .ToListAsync();
 
-        // 调用缓存翻译:翻译 Title 字段
-        var fields = new List<LangFieldMap<SysMenu>>
+        // 仅当用户语言和系统默认语言不同时,才进行翻译,避免不必要的性能开销
+        if (langCode != sysDefaultLang)
         {
-            new LangFieldMap<SysMenu>
+            // 调用缓存翻译:翻译 Title 字段
+            var fields = new List<LangFieldMap<SysMenu>>
             {
-                EntityName = "SysMenu",
-                FieldName = "Title",
-                IdSelector = m => m.Id,
-                SetTranslatedValue = (m, val) => m.Title = val
-            }
-        };
-        await _sysLangTextCacheService.TranslateMultiFields(menuList, fields, langCode);
+                new LangFieldMap<SysMenu>
+                {
+                    EntityName = "SysMenu",
+                    FieldName = "Title",
+                    IdSelector = m => m.Id,
+                    SetTranslatedValue = (m, val) => m.Title = val
+                }
+            };
+            await _sysLangTextCacheService.TranslateMultiFields(menuList, fields, langCode);
+        }
 
         // 构造树
         var menuTree = menuList.ToTree(
@@ -213,7 +221,28 @@ public class SysMenuService : IDynamicApiController, ITransient
         var sysMenu = input.Adapt<SysMenu>();
         CheckMenuParam(sysMenu);
 
-        await _sysMenuRep.AsUpdateable(sysMenu).ExecuteCommandAsync();
+        await _sysMenuRep.AsTenant().UseTranAsync(async () => {
+            // 更新菜单
+            await _sysMenuRep.AsUpdateable(sysMenu).ExecuteCommandAsync();
+
+            // 同步更新翻译表
+            var menuTranslation = await _sysLangTextCacheService.GetTranslationEntity("SysMenu", "Title", sysMenu.Id, _userManager.LangCode);
+            if (!menuTranslation.IsNullOrEmpty())
+            {
+                await _sysLangTextService.Update(new UpdateSysLangTextInput
+                {
+                    Id = menuTranslation.Id,
+                    EntityName = "SysMenu",
+                    EntityId = sysMenu.Id,
+                    FieldName = "Title",
+                    LangCode = _userManager.LangCode,
+                    Content = sysMenu.Title
+                });
+            }
+        }, err => {
+            Oops.Oh("更新数据时发生错误", err.Message);
+        });
+        
 
         // 清除缓存
         DeleteMenuCache();

+ 2 - 3
Admin.NET/Admin.NET.Core/Service/Server/SysServerService.cs

@@ -6,9 +6,8 @@
 
 #if NET9_0_OR_GREATER
 
-using XiHan.Framework.Utils.HardwareInfos;
+using XiHan.Framework.Utils.Core;
 using XiHan.Framework.Utils.Reflections;
-using XiHan.Framework.Utils.Runtime;
 using ReflectionHelper = XiHan.Framework.Utils.Reflections.ReflectionHelper;
 
 #endif // NET9_0_OR_GREATER
@@ -45,7 +44,7 @@ public class SysServerService : IDynamicApiController, ITransient
     [DisplayName("获取服务器运行时信息")]
     public SystemRuntimeInfo RuntimeInfo()
     {
-        var systemRuntimeInfo = RuntimeInfoManger.GetSystemRuntimeInfo();
+        var systemRuntimeInfo = RuntimeInfoManager.GetSystemRuntimeInfo();
         return systemRuntimeInfo;
     }
 

+ 2 - 2
Admin.NET/Admin.NET.Test/Admin.NET.Test.csproj

@@ -12,11 +12,11 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Furion.Xunit" Version="4.9.7.114" />
+    <PackageReference Include="Furion.Xunit" Version="4.9.7.119" />
     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
     <PackageReference Include="Selenium.Support" Version="4.35.0" />
     <PackageReference Include="Selenium.WebDriver" Version="4.35.0" />
-    <PackageReference Include="Selenium.WebDriver.MSEdgeDriver" Version="139.0.3405.102" />
+    <PackageReference Include="Selenium.WebDriver.MSEdgeDriver" Version="139.0.3405.125" />
     <PackageReference Include="xunit.assert" Version="2.9.3" />
   </ItemGroup>
 

+ 1 - 0
Admin.NET/Admin.NET.Web.Core/ProjectOptions.cs

@@ -40,6 +40,7 @@ public static class ProjectOptions
         services.AddConfigurableOptions<AlipayOptions>();
         services.AddConfigurableOptions<CDConfigOptions>();
         services.AddConfigurableOptions<DeepSeekOptions>();
+        services.AddConfigurableOptions<LocalizationSettingsOptions>();
         services.Configure<IpRateLimitOptions>(App.Configuration.GetSection("IpRateLimiting"));
         services.Configure<IpRateLimitPolicies>(App.Configuration.GetSection("IpRateLimitPolicies"));
         services.Configure<ClientRateLimitOptions>(App.Configuration.GetSection("ClientRateLimiting"));

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.ReZero/Admin.NET.Plugin.ReZero.csproj

@@ -26,7 +26,7 @@
   <ItemGroup>
     <PackageReference Include="DocumentFormat.OpenXml" Version="3.3.0" />
     <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.14.0" />
-    <PackageReference Include="Rezero.Api" Version="1.8.25" />
+    <PackageReference Include="Rezero.Api" Version="1.8.26" />
   </ItemGroup>
 
   <ItemGroup>

+ 1 - 1
Web/src/api-services/models/add-user-input.ts

@@ -392,7 +392,7 @@ export interface AddUserInput {
     signature?: string | null;
 
     /**
-     * 语言代码(如 zh_CN)
+     * 语言代码(如 zh-CN)
      *
      * @type {string}
      * @memberof AddUserInput

+ 1 - 1
Web/src/api-services/models/sys-lang-text.ts

@@ -85,7 +85,7 @@ export interface SysLangText {
     entityName?: string | null;
 
     /**
-     * 语言代码(如 zh_CN)
+     * 语言代码(如 zh-CN)
      *
      * @type {number}
      * @memberof SysLangText

+ 1 - 1
Web/src/api-services/models/sys-lang.ts

@@ -87,7 +87,7 @@ export interface SysLang {
     name?: string | null;
 
     /**
-     * 语言代码(如 zh_CN)
+     * 语言代码(如 zh-CN)
      *
      * @type {string}
      * @memberof SysLang

+ 1 - 1
Web/src/api-services/models/sys-user.ts

@@ -407,7 +407,7 @@ export interface SysUser {
     signature?: string | null;
 
     /**
-     * 语言代码(如 zh_CN)
+     * 语言代码(如 zh-CN)
      *
      * @type {string}
      * @memberof SysUser

+ 1 - 1
Web/src/api-services/models/update-user-input.ts

@@ -392,7 +392,7 @@ export interface UpdateUserInput {
     signature?: string | null;
 
     /**
-     * 语言代码(如 zh_CN)
+     * 语言代码(如 zh-CN)
      *
      * @type {string}
      * @memberof UpdateUserInput

+ 1 - 1
Web/src/api-services/models/user-output.ts

@@ -407,7 +407,7 @@ export interface UserOutput {
     signature?: string | null;
 
     /**
-     * 语言代码(如 zh_CN)
+     * 语言代码(如 zh-CN)
      *
      * @type {string}
      * @memberof UserOutput

+ 7 - 6
Web/src/components/multiLangInput/index.vue

@@ -10,10 +10,10 @@
             </template>
         </el-input>
 
-        <el-dialog v-model="dialogVisible" title="多语言设置" width="600px">
+        <el-dialog v-model="dialogVisible" title="多语言设置" draggable :close-on-click-modal="false" width="600px">
             <el-form ref="ruleFormRef" label-width="auto">
                 <el-row :gutter="35">
-                    <el-col v-for="lang in languages" :key="lang.code" :span="24">
+                    <el-col v-for="lang in languages" :key="lang.code" :span="24" class="mb10">
                         <el-form-item :label="lang.label">
                             <el-input v-model="multiLangValue[lang.code]" :placeholder="`请输入: ${lang.label}`" clearable />
                         </el-form-item>
@@ -62,8 +62,8 @@ const langStore = useLangStore();
 const languages = ref<any>([] as any);
 
 // 当前语言(可根据用户设置或浏览器设置)
-const currentLang = ref('zh_CN');
-const activeLang = ref('zh_CN');
+const currentLang = ref('zh-CN');
+const activeLang = ref('zh-CN');
 
 // 是否弹框
 const dialogVisible = ref(false);
@@ -87,7 +87,7 @@ onMounted(async () => {
     const globalI18n = themeConfig?.globalI18n;
     if (globalI18n) {
         const matched = langStore.languages.find(l => l.code === globalI18n);
-        const langCode = matched?.code || 'zh_CN';
+        const langCode = matched?.code || 'zh-CN';
         currentLang.value = langCode;
         activeLang.value = langCode;
     }
@@ -173,8 +173,9 @@ const confirmDialog = async () => {
 };
 </script>
 
-<style scoped>
+<style lang="scss" scoped>
 .multi-lang-input {
     width: 100%;
 }
+.mb10:last-child { margin-bottom: 0 !important; }
 </style>

+ 9 - 1
Web/src/theme/element.scss

@@ -357,13 +357,21 @@
 //     line-height: normal;
 // }
 .el-dialog__header {
+    --el-dialog-title-font-size: var(--el-font-size-base);
+
 	margin-right: 0;
 	padding: 8px;
     border-radius: var(--el-dialog-border-radius) var(--el-dialog-border-radius) 0 0;
 	background: var(--el-color-primary);
+    height: 37px;
+    line-height: 21px;
+
+    .el-dialog__title {
+        color: #FFF;
+    }
 }
 .el-dialog__footer {
-	padding: 15px;
+	padding: 0 15px 15px;
 	// border-top: 1px solid var(--el-color-primary-light-7);
 }
 .el-dialog__headerbtn {