Skip to content
This repository was archived by the owner on Feb 2, 2026. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace Skoruba.IdentityServer4.Admin.UI.Configuration
{
public class CultureConfiguration
{
public static readonly string[] AvailableCultures = { "en", "fa", "fr", "ru", "sv", "zh", "es", "da", "de", "nl", "fi", "pt" };
public static readonly string[] AvailableCultures = { "en","ar", "fa", "fr", "ru", "sv", "zh", "es", "da", "de", "nl", "fi", "pt" };
public static readonly string DefaultRequestCulture = "en";

public List<string> Cultures { get; set; }
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema

Version 2.0

The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.

Example:

... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>

There are any number of "resheader" rows that contain simple
name/value pairs.

Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.

The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:

Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.

mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.

mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.

mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="SuccessAddApiResource" xml:space="preserve">
<value>مورد API {0} تم حفظه بنجاح !</value>
<comment>Api Resource {0} is successfully saved!</comment>
</data>
<data name="SuccessAddApiResourceProperty" xml:space="preserve">
<value>خاصية مورد API {0} لمورد API {0} تم حفظها بنجاح !</value>
<comment>Api Resource property {0} for api resource {1} is successfully saved!</comment>
</data>
<data name="SuccessAddApiScope" xml:space="preserve">
<value>مدى API {0} تم حفظه بنجاح !</value>
<comment>Api Scope {0} is successfully saved!</comment>
</data>
<data name="SuccessAddApiScopeProperty" xml:space="preserve">
<value>خاصية مدى API {0} لمدى API {1} تم حفظها بنجاح !</value>
<comment>Api Scope property {0} for api scope {1} is successfully saved!</comment>
</data>
<data name="SuccessAddApiSecret" xml:space="preserve">
<value>سر API تم انشاؤه بنجاح !</value>
<comment>Api Secret is successfully created!</comment>
</data>
<data name="SuccessAddClient" xml:space="preserve">
<value>العميل {0} تم انشاؤه بنجاح !</value>
<comment>Client {0} is successfully created!</comment>
</data>
<data name="SuccessAddClientClaim" xml:space="preserve">
<value>مطالبة العميل {0} للعميل {1} تم حفظها بنجاح !</value>
<comment>Client claim {0} for client {1} is successfully saved!</comment>
</data>
<data name="SuccessAddClientProperty" xml:space="preserve">
<value>خاصية العميل {0} للعميل {1} تم حفظها بنجاح !</value>
<comment>Client property {0} for client {1} is successfully saved!</comment>
</data>
<data name="SuccessAddClientSecret" xml:space="preserve">
<value>سر العميل للعميل {0} تم حفظه بنجاح !</value>
<comment>Client secret for client {0} is successfully saved!</comment>
</data>
<data name="SuccessAddIdentityResource" xml:space="preserve">
<value>مورد الهوية {0} تم حفظه بنجاح !</value>
<comment>Identity Resource {0} is successfully saved!</comment>
</data>
<data name="SuccessAddIdentityResourceProperty" xml:space="preserve">
<value>خاصية مورد الهوية {0} تم حفظها بنجاح !</value>
<comment>Identity Resource property {0} for api resource {1} is successfully saved!</comment>
</data>
<data name="SuccessClientClone" xml:space="preserve">
<value>العميل {0} تم نسخه بنجاح !</value>
<comment>Client {0} is successfully cloned!</comment>
</data>
<data name="SuccessClientDelete" xml:space="preserve">
<value>العميل تم انشاؤه بنجاح !</value>
<comment>Client is successfully deleted!</comment>
</data>
<data name="SuccessDeleteApiResource" xml:space="preserve">
<value>مورد API تم حذفه بنجاح !</value>
<comment>Api Resource is successfully deleted!</comment>
</data>
<data name="SuccessDeleteApiResourceProperty" xml:space="preserve">
<value>خاصية مورد API تم حذفها بنجاح !</value>
<comment>Api resource property is successfully deleted!</comment>
</data>
<data name="SuccessDeleteApiScope" xml:space="preserve">
<value>مورد API تم حذفه بنجاح !</value>
<comment>Api Scope is successfully deleted!</comment>
</data>
<data name="SuccessDeleteApiScopeProperty" xml:space="preserve">
<value>خاصية مدى API تم حذفها بنجاح !</value>
<comment>Api Scope property is successfully deleted!</comment>
</data>
<data name="SuccessDeleteApiSecret" xml:space="preserve">
<value>سر API تم حذفه بنجاح !</value>
<comment>Api Secret is successfully deleted!</comment>
</data>
<data name="SuccessDeleteClientClaim" xml:space="preserve">
<value>مطالبة العميل تم حذفها بنجاح !</value>
<comment>Client claim is successfully deleted!</comment>
</data>
<data name="SuccessDeleteClientProperty" xml:space="preserve">
<value>خاصية العميل تم حذفها بنجاح !</value>
<comment>Client property is successfully deleted!</comment>
</data>
<data name="SuccessDeleteClientSecret" xml:space="preserve">
<value>سر العميل تم حذفه بنجاح !</value>
<comment>Client secret is successfully deleted!</comment>
</data>
<data name="SuccessDeleteIdentityResource" xml:space="preserve">
<value>مورد الهوية تم حذفه بنجاح !</value>
<comment>Identity Resource is successfully deleted!</comment>
</data>
<data name="SuccessDeleteIdentityResourceProperty" xml:space="preserve">
<value>خاصية مورد الهوية تم حذفها بنجاح !</value>
<comment>Identity resource property is successfully deleted!</comment>
</data>
<data name="SuccessTitle" xml:space="preserve">
<value>نجاح</value>
<comment>Success</comment>
</data>
<data name="SuccessUpdateClient" xml:space="preserve">
<value>العميل {0} تم تحديثه بنجاح !</value>
<comment>Client {0} is successfully updated!</comment>
</data>
</root>
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema

Version 2.0

The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.

Example:

... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>

There are any number of "resheader" rows that contain simple
name/value pairs.

Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.

The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:

Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.

mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.

mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.

mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="SuccessPersistedGrantDelete" xml:space="preserve">
<value>تم حذف الاذن المستمر بنجاح !</value>
<comment>Persisted Grant is successfully deleted!</comment>
</data>
<data name="SuccessPersistedGrantsDelete" xml:space="preserve">
<value>تم حذف الاذونات المستمرة بنجاح !</value>
<comment>Persisted Grants are successfully deleted!</comment>
</data>
<data name="SuccessTitle" xml:space="preserve">
<value>نجاح</value>
<comment>Success</comment>
</data>
</root>
Loading