Flexible Localization / News: Recent posts

More Details on the Redesign

As promised, here are a few more details on the goals of the implementation relaunch:

Features to retain

  • basic paradigms
    • per-module declarations + localizations
    • groups + strings
  • localization selection UI
  • formatting of strings as labels or with ellipses
  • declared parameters for strings
  • insertion points in strings

Features to change

  • It should be possible to optionally group localization modules in order to apply different rules for finding localization files.
  • Read-only and Writeable representations of localization data should be implemented separately. The use-cases are too different to conveniently provide all in the same class structure.
  • All Xml Schema information should be condensed into one schema document with one target namespace.
  • Uniqueness constraints for group and string IDs will probably be dropped from the Xml Schemas. They are not convenient enough to define in there, while the library can determine in a much simpler fashion whether there are any duplicate IDs while loading localization declarations.
  • Expression parsing should be done in such a way that an editable data structure can be built.
  • Rather than exclusively via Xml elements, there should be a syntax for inserting string arguments (and possibly the other special tokens) right within the text.
  • The structure of the Xml documents should be shrunk. There is no real use in having a <localization> root node in the document root node.... read more
Posted by Florian Haag 2016-11-24 Labels: redesign

Starting Over ...

Sometimes, continued development ends up leading nowhere. It goes on and on and on, but each added solution creates two new open questions. When you recognize this, it is best to halt development and start anew. This is what is going to happen with Flexible Localization.

That does not mean that all the development work so far was in vain. Quite the contrary, the experience gathered while developing the library up to its current state was valuable. I became aware of some features that are very useful, some features that should have been done differently, and some features that just do not work the way I had envisioned them.... read more

Posted by Florian Haag 2016-11-23 Labels: redesign roadmap

Git Migration

All Flexible Localization code has been migrated from SVN to Git. Check out the Code page to find the new repository URLs.

Posted by Florian Haag 2016-11-22 Labels: svn git repository code

New Feature: Validation of Localizations

If you'd like to check whether a given localization file matches the declaration, you can do by using the new validation service starting with revision 309.

The FlexibleLocalization.Validation.ValidationService class provides a Validate and an IsValid method, both of which accept a Localization instance (a localization tree root node). Use the latter method if you just want to find out whether or not the loaded localization data is valid based on the declaration. If you want a detailed enumeration of ValidationMessage instances describing any discovered issues - including warnings for possible problems - use the Validate method.... read more

Posted by Florian Haag 2014-08-31 Labels: new feature validation

New Feature: Insertion Points

Starting with revision 298, a new feature named insertion points has been added to Flexible Localization, along with a tiny sample project.

So far, there was only support for parameters; values that are passed to Flexible Localization so they can be inserted into a localized string. The locations where each parameter gets inserted is determined by translators in the localization files, the insertion is performed by Flexible Localization before it returns the localized string.... read more

Posted by Florian Haag 2014-08-29 Labels: insertion points new feature

Exit Trac, Enter Allura

The Flexible Localization website has been ported to the new SourceForge Allura interface. This means that the Trac instance used for Flexible Localization so far has been disabled.

Reasons for this change were the upcoming hosted apps retirement announced by SourceForge, as well as an increasingly good integration of the various tools and services provided by SourceForge in the new interface.... read more

Posted by Florian Haag 2012-09-16 Labels: Allura Trac wiki bug tracker forums

Project Logo

Flexible Localization now has an official logo, to help you recognize the project more easily! For now, it displays a rubber tree leaf with a transformation from "bluish" one language into another "purplish" language.

Posted by Florian Haag 2010-10-17


The Windows Forms LocalizationSelector control has been ported to Gtk#. Therefore, integrating Flexible Localization into your Gtk# for Mono 2.6.*+ application has become even easier!

Posted by Florian Haag 2010-07-29

Mono Problems

Dear users, recent tests on Ubuntu 10.04 LTS have revealed that Flexible Localization will not work with Mono 2.4.4 due to at least three bugs in Mono. These bugs seem to have been fixed in the 2.6.* line of Mono, so that is the minimum requirement to run Flexible Localization with Mono. I apologize for the inconvenience.

Posted by Florian Haag 2010-07-22

Gtk# Sample

The repository now contains a Gtk# sample. A binary will be included starting with the next release.

Posted by Florian Haag 2010-07-13

Mono Workaround in Version 0.5.2

Flexible Localization 0.5.2 contains a workaround for a Mono bug which caused some samples to crash. Now, all the samples should run on Mono 2.6.4 as well as .NET 3.5.

Posted by Florian Haag 2010-07-07

2nd Preview Version

The 2nd preview version, 0.5.1, features some bugfixes and an improved automated localization of objects.

Posted by Florian Haag 2010-07-01

First Preview Release

The first preview release of Flexible Localization is available for download now! Note that this is a preview release and some of the public interfaces or schemas might still undergo slight changes before the first stable release. It should, however, give you a good idea about what Flexible Localization is capable of and how it can be used in a project.

Posted by Florian Haag 2010-03-30

WinForms language selector

No more worries about how to let your users select a localization for your WinForms application! The latest SVN revision adds a functional version of a WinForms control where users can select a localization and fallback localizations in a list.

Posted by Florian Haag 2010-03-06

Portuguese translator

Pedro Silva joined the project to translate some of the samples and future tools to Portuguese! He already provided a localization for the basic SWF sample. Thank you!

Posted by Florian Haag 2010-03-05

Automated localization example

The newest example in the SVN repository shows how to have Flexible Localization automatically assign static strings to object properties. Like this, you do not need to manually assign every single caption in your user interface.

Posted by Florian Haag 2010-03-05

New example: Using several modules

The newest example (added in SVN revision 38) shows how to load localizations for several modules. At the same time, it presents the concept of fallback localizations by letting you select several localizations, some of which are incomplete.

Posted by Florian Haag 2010-03-02

New example: Partially loading a declaration

The newest example application shows how to load only a part of a localization declaration and load and unload other parts later on. This will save memory usage for big projects where parts of the localized data are only occasionally required.

Posted by Florian Haag 2010-03-02

Visual Basic.NET example!

An example on how to use Flexible Localization in VB.NET is in the repository now.

Posted by Florian Haag 2010-03-01

Globally defined expressions - example

I have added another example project to the repository.
This time, globally defined expressions are presented. You can define expressions that you use frequently once for the whole localization file. In the new example, a globally defined expression determines whether a number requires the singular form of the following word.

Posted by Florian Haag 2010-02-27

First working example!

The repository now contains the first basic example application; it demonstrates how to load a localization and retrieve parametrized strings.

Posted by Florian Haag 2010-02-26