ATTENTION

We finally moved completely to https://github.com/SeriousM/WPFLocalizationExtension!

Please update all your bookmarks.
All news and latest issues can be found there.
Everything created on this codeplex project will be blocked and adked to be created on GitHub.

ATTENTION

The Localization Extension...

... is the easiest way to localize any type of DependencyProperties or native Properties on DependencyObjects under WPF & Silverlight.

Feature Demo:


Structure of version 2.0.0 and higher

Products that use this Solution:

SAP SAP Crystal Reports, Version for Visual Studio .NET

Features:

  • First of all: ITS FREE (and will stay free)
  • Obtain stable results in
    • WPF applications using .NET 3.5 and higher
    • New: Silverlight 5.0 applications
    • New: Windows Phone 7.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
    • 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
  • 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
    • 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
    • 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
    • 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
    • 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) accross 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

Get the latest NuGet package:

https://nuget.org/packages/WpfLocalizeExtension/

Get the source code:

https://github.com/SeriousM/WPFLocalizationExtension

Documentation & Tutorial

Documentation

Localization Tools:

ResXManager (Visual Studio Plugin and StandAlone)
Zeta Resource Editor (Freeware)

You can do a donation to me and my work.
It would be very nice of you :)
PayPal - The safer, easier way to pay online!

Last edited Oct 3 at 9:50 AM by SeriousM, version 92