Mercurial > repos > IBBoard
diff Lang/AbstractTranslationSet.cs @ 69:b5d7e8b93205
Re #30: Improve Translations API
* Add translation sets
* Add reset method to translations
* Fix translations where API documentation (contract) didn't match behaviour
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Tue, 06 Apr 2010 15:41:20 +0000 |
parents | |
children | cec6c4c0892d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lang/AbstractTranslationSet.cs Tue Apr 06 15:41:20 2010 +0000 @@ -0,0 +1,51 @@ +// This file (AbstractTranslationSet.cs) is a part of the IBBoard project and is copyright 2010 IBBoard +// +// The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. + +using System; +using System.Collections.Generic; + +namespace IBBoard.Lang +{ + /// <summary> + /// A collection of translations for a given language. The abstract class must be extended by implementations that + /// provide different ways of loading the data. + /// </summary> + public class AbstractTranslationSet + { + private string langCode; + protected Dictionary<string, string> translations; + + public AbstractTranslationSet(string languageCode) + { + langCode = languageCode; + translations = new Dictionary<string, string>(); + } + + /// <summary> + /// Gets the language code that this translation claims to be for + /// </summary> + public string LanguageCode + { + get { return langCode; } + } + + /// <summary> + /// Gets a translation from the translation set, or <code>null</code> if the translation doesn't exist. + /// </summary> + /// <param name="key"> + /// The key (ID) of the translation to retrieve + /// </param> + public string this[string key] + { + set + { + translations[key] = value; + } + get + { + return DictionaryUtils.GetValue(translations, key); + } + } + } +}