Example
```csharp
(LocalizeDictionary.Instance.DefaultProvider as ResxLocalizationProvider).SearchCultures =
new List()
{
System.Globalization.CultureInfo.GetCultureInfo("de-de"),
System.Globalization.CultureInfo.GetCultureInfo("en"),
System.Globalization.CultureInfo.GetCultureInfo("he"),
System.Globalization.CultureInfo.GetCultureInfo("ar"),
};
```
================================================
FILE: docs/Features.md
================================================
# Features:
* First of all: ITS FREE (and will stay free - refer to license section below)
* Obtain stable results in
* WPF applications using .NET 3.5 and higher
* Windows Phone 7.x/8.x applications
* **New:** Localization source/provider can be changed freely at arbitrary nodes
* Use the Provider property in LocalizeDictionary to change the provider for the particular sub tree
* Use the DefaultProvider property to set the provider for the whole application
* Built-in RESX provider for resource file lookup (Default) - **fully backward compatible to older versions of this extension**
* Interface for custom providers
* Notification about provider changes and errors
* Notification about resource changes
* Get the list of all available cultures from a provider - or just take the bindable merged list from LocalizeDictionary
* CSV provider project in the Tests folder as an example for custom providers
* **Multiple UI thread support**
* BLoc Extension that derives from Binding to support binding scenarios
* Supports binding-like write style like "Text = {lex:LocText ResAssembly:ResFile:ResKey}"
* Define a default assembly and / or resource file to reduce the key to ResAssembly::ResKey, ResFile:ResKey or even ResKey
* Automatic key lookup: If no key is specified, the Name and Property Name of the target are used (e.g. MyButton_Content)
* Default assembly, dictionary and culture can be changed dynamically at the RESX provider
* Default assembly and dictionary inherit along the visual tree and can be redefined at each node
* It is available at designtime (MS Expression Blend 3.0 & 4.0, MS VisualStudio 2008 & 2010 & 2012
* not for dynamic loaded assemblies which only can be found at runtime and as long the resource (.resx) is built at designtime
* Even for Silverlight!
* No extra preview application needed
* Offers a DesignValue Property to support custom values during design mode
* Full support of various application scenarios
* Works with normal dependency properties
* Works with normal properties (e.g. Ribbon)
* Works with control/data templates
* Various culture setup features
* List of available cultures
* Culture swapping by Commands (SetCultureCommand)
* Works with the .resx-fallback mechanism (e.g. en-us -> en -> invariant culture)
* Supports culture forcing (e.g. "this object has to be in english all the time")
* Buffering allows fast switching of the language at runtime
* Offers a design language for visual testing at designtime
* Offers a "SpecificCulture" to use as IFormatProvider (e.g. (123.20).ToString(LocalizeDictionary.SpecificCulture) = "123.20" or "123,20")
* Does not alter the culture on Thread.CurrentCulture or Thread.CurrentUICulture (can be changed easily)
* Code behind features:
* Can be used in code behind to bind localized values to dynamic generated controls
* Implements INotifyPropertyChanged for advanced use
* Offers some functionality to check and get resource values in code behind (e.g. ResolveLocalizedValue)
* Easy to use
* Can be used with any resource file (.resx) across all assemblies (also the dynamic loaded one at runtime)
* Does not need any initializing process (like "call xyz to register a special localize dictionary")
* Can localize any type of data type, as long a TypeConverter exists for it
* Example extensions included for
* Formating e.g. "this is the '{0}' value" (not bindable at the moment)
* Prefix and suffix values (currently with LocText extension)
* Upper and lower Text
* Last, but not least
* Does not create any memory leaks
* Leaves the UID property untouched
* Does not need an additional build task
* Is in use in various productive systems
================================================
FILE: docs/GapText.md
================================================
# Gap Text
Use a multibinding with the [StringFormatConverter](ValueConverters.md).
The first **parameter** is the StringFormat
All others are parameter.
```XML