C# Client Introduction
Introduction
C# Client is a class libary running on Windows .NET Framework. It enables applications that can use .NET Framework libraries to handle its globalization easily.
Features in C# Client
- Getting the translation.
 
- Getting messages by cache interfaces.
 
- Getting configuration content.
 
- Enrich implementations by extending different extension interfaces.
 
APIs Available
Factory Class
I18N
- It’s the factory class that creates and initializes the configuration object and the release object.
 
public sealed class I18N
{
    public static IConfig LoadConfig(string resourceBaseName, Assembly assembly, string configResourceName);
    public static IConfig GetConfig(string product, string version);
    public static IRelease GetRelease(IConfig config);
    public static IExtension GetExtension();
}
I18N / LoadConfig
- Load a configuration json or yaml text from the resource defined by a resx file and initialize a correspondent release object.
 
| Parameter | 
Type | 
Description | 
| resourceBaseName | 
string | 
Resource base name | 
| assembly | 
Assembly | 
It owns the resource | 
| configResourceName | 
string | 
Configuration resource name after base name | 
| Return | 
Description | 
| IConfig | 
Configuration Object | 
I18N / GetConfig
- Get a loaded configuration object by product and version.
 
| Parameter | 
Type | 
Description | 
| product | 
string | 
Product name | 
| version | 
string | 
L10n version | 
| Return | 
Description | 
| IConfig | 
Configuration Object | 
I18N / GetRelease
- Get the release object initialized by a configuration object.
 
| Parameter | 
Type | 
Description | 
| config | 
IConfig | 
Configuration object | 
| Return | 
Description | 
| IRelease | 
The release object | 
I18N / GetExtension
- Get the extension interface to change ways of implementation.
 
Interface For Configuration
IConfig
public interface IConfig
{
    IConfigItem GetItem(string key);
    List<string> GetComponentList();
    IConfigItem GetComponentAttribute(string component, string key);
    List<string> GetLocaleList(string component);
    IConfigItem GetLocaleAttribute(string component, string locale, string key);
    string ReadResourceText(string resourceBaseName, string resourceName);
    Hashtable ReadResourceMap(string resourceName, string format, string locale);
}
IConfig / GetItem
- Get the definition item by key.
 
| Parameter | 
Type | 
Description | 
| key | 
string | 
Key text | 
| Return | 
Description | 
| IConfigItem | 
The definition item object | 
IConfig / GetComponentList
| Return | 
Description | 
| List<string> | 
The component list | 
IConfig / GetComponentAttribute
- Get the definition item of an attribute of the component.
 
| Parameter | 
Type | 
Description | 
| component | 
string | 
Component name | 
| key | 
string | 
Key text | 
| Return | 
Description | 
| IConfigItem | 
The definition item object | 
IConfig / GetLocaleList
- Get the defined locale list of a component.
 
| Parameter | 
Type | 
Description | 
| component | 
string | 
Component name | 
| Return | 
Description | 
| List<string> | 
The locale list | 
IConfig / GetLocaleAttribute
- Get the definition item of an attribute of the locale information for a component.
 
| Parameter | 
Type | 
Description | 
| component | 
string | 
Component name | 
| locale | 
string | 
Locale name | 
| key | 
string | 
Key text | 
| Return | 
Description | 
| IConfigItem | 
The definition item object | 
IConfig / ReadResourceText
- Read a text from the Assembly resource.
 
| Parameter | 
Type | 
Description | 
| resourceBaseName | 
string | 
Resource base name | 
| resourceName | 
string | 
Resource name | 
| Return | 
Description | 
| string | 
Text | 
IConfig / ReadResourceMap
- Read a key-value map from a resx resource.
 
| Parameter | 
Type | 
Description | 
| resourceName | 
string | 
Resource name | 
| format | 
string | 
Format to select parser | 
| locale | 
string | 
Locale name | 
IConfigItem
public interface IConfigItem
{
    string GetString();
    List<string> GetStringList();
    bool GetBool();
    int GetInt();
    IConfigItem GetMapItem(string key);
    List<string> GetArrayItemList(string key);
    IConfigItem GetArrayItem(string key, string value);
}
IConfigItem / GetString
- Get string value of the configuration item.
 
| Return | 
Description | 
| string | 
Text | 
IConfigItem / GetStringList
- Get string list of the configuration item.
 
| Return | 
Description | 
| List<string> | 
Defined string list | 
IConfigItem / GetBool
- Get boolean value of the configuration item.
 
| Return | 
Description | 
| bool | 
Boolean value | 
IConfigItem / GetInt
- Get integer value of the configuration item.
 
| Return | 
Description | 
| int | 
Integer value | 
IConfigItem / GetMapItem
- Read the child configuration item by a key.
 
| Parameter | 
Type | 
Description | 
| key | 
string | 
Key | 
| Return | 
Description | 
| IConfigItem | 
The child configuration item | 
IConfigItem / GetArrayItemList
- Get a string list from the configuration child item array by a key.
 
| Parameter | 
Type | 
Description | 
| key | 
string | 
Key | 
| Return | 
Description | 
| List<string> | 
An extracted string list from the configuration child item array | 
IConfigItem / GetArrayItem
- Read the child configuration item by a key and its correspondent value from a configuration item array.
 
| Parameter | 
Type | 
Description | 
| key | 
string | 
Key | 
| value | 
string | 
Requested value | 
| Return | 
Description | 
| IConfigItem | 
The child configuration item | 
Interface For Release
IRelease
public interface IRelease
{
    IConfig GetConfig();
    IReleaseMessages GetMessages();
    ITranslation GetTranslation();
}
IRelease / GetConfig
- Get the configuration object owned the release object.
 
| Return | 
Description | 
| IConfig | 
The configuration object | 
IRelease / GetMessages
- Get the configuration object owned by the release object.
 
IRelease / GetTranslation
- Get the interface to access translation.
 
| Return | 
Description | 
| ITranslation | 
The interface to access translation | 
Interface For Translation
ITranslation
public interface ITranslation
{
    ISource CreateSource(string component, string key, string source = null, string comment = null);
    string GetString(string locale, ISource source);
    string GetString(string component, string key, string source = null, string comment = null);
    string Format(string locale, ISource source, params object[] objects);
    bool SetCurrentLocale(string locale);
    string GetCurrentLocale();
    string GetLocaleSupported(string locale);
}
ITranslation / CreateSource
- Create a source object for other methods.
 
| Parameter | 
Type | 
Description | 
| component | 
string | 
Component | 
| key | 
string | 
Key | 
| source | 
string | 
Source | 
| comment | 
string | 
Comment | 
| Return | 
Description | 
| ISource | 
The source object | 
ITranslation / GetString
| Parameter | 
Type | 
Description | 
| locale | 
string | 
Locale | 
| ISource | 
The source object | 
 | 
| Return | 
Description | 
| string | 
The translation message | 
ITranslation / GetString
- Get translation message according to current locale.
 
| Parameter | 
Type | 
Description | 
| component | 
string | 
Component | 
| key | 
string | 
Key | 
| source | 
string | 
Source | 
| comment | 
string | 
Comment | 
| Return | 
Description | 
| string | 
The translation message | 
- Get translation message according to the format.
 
| Parameter | 
Type | 
Description | 
| locale | 
string | 
Locale | 
| ISource | 
The source object | 
 | 
| object[] | 
objects to fill format | 
 | 
| Return | 
Description | 
| string | 
The translation message | 
ITranslation / SetCurrentLocale
| Parameter | 
Type | 
Description | 
| locale | 
string | 
Locale | 
| Return | 
Description | 
| bool | 
Return true if successful | 
ITranslation / GetCurrentLocale
| Parameter | 
Type | 
Description | 
| locale | 
string | 
Locale | 
| Return | 
Description | 
| string | 
Locale | 
ITranslation / GetLocaleSupported
- Get supported or nearest locale of the locale.
 
| Parameter | 
Type | 
Description | 
| locale | 
string | 
Locale | 
| Return | 
Description | 
| string | 
Supported or nearest locale | 
ISource
public interface ISource
{
    string GetComponent();
    string GetKey();
    string GetSource();
    string GetComment();
}
Interface For Cache Messages
IReleaseMessages
public interface IReleaseMessages
{
    List<string> GetLocaleList();
    List<string> GetComponentList();
    ILocaleMessages GetLocaleMessages(string locale, bool asSource = false);
    Dictionary<string, ILocaleMessages> GetAllLocaleMessages();
}
IReleaseMessages / GetLocaleList
- Get the locale list of release messages.
 
| Return | 
Description | 
| List<string> | 
The locale list | 
IReleaseMessages / GetComponentList
- Get the component list of release messages.
 
| Return | 
Description | 
| List<string> | 
The component list | 
IReleaseMessages / GetLocaleMessages
- Get the locale messagess from release messages by locale.
 
| Parameter | 
Type | 
Description | 
Default | 
| locale | 
string | 
Locale | 
 | 
| asSource | 
bool | 
If messages are of source | 
false | 
IReleaseMessages / GetAllLocaleMessages
- Get all locale messagess of the release messages that don’t include source.
 
ILocaleMessages
public interface ILocaleMessages
{
    string GetLocale();
    List<string> GetComponentList();
    IComponentMessages GetComponentMessages(string component);
    string GetString(string component, string key);
}
ILocaleMessages / GetLocale
- Get locale of the messages.
 
| Return | 
Description | 
| string | 
Locale name | 
ILocaleMessages / GetComponentList
- Get the component list of locale messages.
 
| Return | 
Description | 
| List<string> | 
The component list | 
ILocaleMessages / GetComponentMessages
- Get the component messagess from locale messages by component.
 
| Parameter | 
Type | 
Description | 
| component | 
string | 
Component name | 
ILocaleMessages / GetString
- Get the message from locale messages by component and key.
 
| Parameter | 
Type | 
Description | 
| component | 
string | 
Component name | 
| key | 
string | 
Key | 
| Return | 
Description | 
| string | 
Translation message | 
IComponentMessages
public interface IComponentMessages
{
    void SetString(string key, string message);
    string GetString(string key);
    ICollection GetKeys();
    int GetCount();
    string GetLocale();
    string GetComponent();
    void SetResourcePath(string resourcePath);
    string GetResourcePath();
    void SetResourceType(string resourceType);
    string GetResourceType();
}
IComponentMessages / SetString
| Parameter | 
Type | 
Description | 
| key | 
string | 
Key | 
| message | 
string | 
Message text | 
IComponentMessages / GetString
- Get the message from component messages by key.
 
| Parameter | 
Type | 
Description | 
| key | 
string | 
Key | 
| Return | 
Description | 
| string | 
Translation message | 
IComponentMessages / GetKeys
- Get all keys of component messages.
 
IComponentMessages / GetCount
| Return | 
Description | 
| int | 
Count of messages | 
IComponentMessages / GetLocale
- Get locale of component messages.
 
| Return | 
Description | 
| string | 
Locale | 
IComponentMessages / GetComponent
- Get component name of component messages.
 
| Return | 
Description | 
| string | 
Component name | 
IComponentMessages / SetResourcePath
- Set resource path where stores the component messages.
 
| Parameter | 
Type | 
Description | 
| resourcePath | 
string | 
The resource path or resource id | 
IComponentMessages / GetResourcePath
- Get resource path where stores the component messages.
 
| Return | 
Description | 
| string | 
The resource path or resource id | 
IComponentMessages / SetResourceType
- Set resource type which is used to know how the resource is stored and what parser to select.
 
| Parameter | 
Type | 
Description | 
| resourceType | 
string | 
The resource type | 
IComponentMessages / GetResourceType
| Return | 
Description | 
| string | 
The resource type | 
Interface For Extension
IExtension
public interface IExtension
{
    void RegisterCacheManager(ICacheManager cacheManager, string cacheManagerName);
    void RegisterCacheComponentManager(ICacheComponentManager cacheComponentManager,
        string cacheComponentManagerName);
    void RegistertLogger(ILog logger, string loggerName);
    void RegisterResourceParser(IResourceParser parser, string parserName);
    void RegisterAccessService(IAccessService accessService, string accessName);
}
IExtension / RegisterCacheManager
- Register cache manager object with its name.
 
| Parameter | 
Type | 
Description | 
| cacheManager | 
ICacheManager | 
Cache manager object | 
| cacheManagerName | 
string | 
Cache manager name | 
IExtension / RegisterCacheComponentManager
- Register component cache manager object with its name.
 
| Parameter | 
Type | 
Description | 
| cacheComponentManager | 
ICacheComponentManager | 
Component cache manager object | 
| cacheComponentManagerName | 
string | 
Component cache manager name | 
IExtension / RegistertLogger
- Register a logger with its name.
 
| Parameter | 
Type | 
Description | 
| logger | 
ILog | 
Logger object | 
| loggerName | 
string | 
Logger name | 
IExtension / RegisterResourceParser
- Register a resource parser with its name.
 
| Parameter | 
Type | 
Description | 
| parser | 
IResourceParser | 
Parser object | 
| parserName | 
string | 
Parser name | 
IExtension / RegisterAccessService
- Register an accessing service object with its name.
 
| Parameter | 
Type | 
Description | 
| accessService | 
IAccessService | 
Accessing service object | 
| accessName | 
string | 
Access name | 
ICacheManager
public interface ICacheManager
{
    ICacheMessages GetReleaseCache(string product, string version);
}
ICacheManager / GetReleaseCache
- Get the release cache by product and version.
 
| Parameter | 
Type | 
Description | 
| product | 
string | 
Product | 
| version | 
string | 
L10n version | 
ICacheMessages
public interface ICacheMessages
{
    ILocaleMessages GetLocaleMessages(string locale, bool asSource = false);
}
ICacheMessages / GetLocaleMessages
- Get the locale messages from the release cache.
 
| Parameter | 
Type | 
Description | 
Default | 
| locale | 
string | 
Locale | 
 | 
| asSource | 
bool | 
If messages are of source | 
false | 
ICacheComponentManager
public interface ICacheComponentManager
{
    IComponentMessages NewComponentCache(string locale, string component);
}
ICacheComponentManager / NewComponentCache
- Create a new component messages object.
 
| Parameter | 
Type | 
Description | 
| locale | 
string | 
Locale | 
| component | 
string | 
Component | 
ILog
public interface ILog
{
    void Log(LogType logType, string text);
}
ILog / Log
- Log a string with a type.
 
| Parameter | 
Type | 
Description | 
| logType | 
LogType | 
Log type | 
| text | 
string | 
Log text | 
LogType
public enum LogType
{
    Debug,
    Info,
    Warning,
    Error,
    None
}
IResourceParser
public interface IResourceParser
{
    Hashtable Parse(string text);
}
IResourceParser / Parse
- Parse a text into a key-value map.
 
| Parameter | 
Type | 
Description | 
| locale | 
string | 
Locale | 
| Return | 
Description | 
| Hashtable | 
The key-value map | 
IAccessService
public interface IAccessService
{
    string HttpGet(string url, Hashtable headers);
    string HttpPost(string url, string text, Hashtable headers);
}
IAccessService / HttpGet
- Get data from http service.
 
| Parameter | 
Type | 
Description | 
| url | 
string | 
Remote location | 
| headers | 
Hashtable | 
Headers map | 
| Return | 
Description | 
| string | 
Text data from remote | 
IAccessService / HttpPost
- Send data to http service.
 
| Parameter | 
Type | 
Description | 
| url | 
string | 
Remote location | 
| text | 
string | 
Text data to be sent | 
| headers | 
Hashtable | 
Headers map | 
| Return | 
Description | 
| string | 
Response text data |