All programming platforms have some internationalization API that lets you write code that can be localized. Most platforms contain a resource string concept, composite format or interpolated strings, date, time, and number formatting. Some platforms contain API for more advanced features such as plurals and genders, abbreviated numbers, or ordinal numbers. However, most platforms are missing some of the features. Our internationalization APIs fill the missing gaps. We have also implemented new APIs such as file dialog format filter, runtime language switch, and user interface checking. Soluling contains features such as plural editor that makes working with those API even easier. Our internationalization API is an open-source.
Full API source code is included into Soluling setup. You can also get a platform specify API by using platforms package manager such as NuGet (.NET), GetIt (Delphi) or npm (Angular, JavaSript and TypeScript). The API project is hosted in GitHub. You are free use it, contobute to it, or change it. The rules used in the APIs comes from CLDR but the API does not have any dependencies to CLDR or ICU. All rules are embedded inside the API source code.
For most platforms we have implemented open source APIs for the following purposes:
API has been implemented for following platforms
|Platform||API source code||Plurals||Genders||Numbers||Runtime language change||User interface checking||Dialog filters|
yes means that we have implemented an open-source API. To use the open-source API, include the plural API file into your project and start using the API. To see how to use the API, see the provided plural samples at <data-dir>\Samples\<platform>\Pattern directory.
built-in means that the standard API of the platform supports the feature. Only Angular has a built-in solution that matches Soluling API. Other platforms provide built-in support for plural parameters and/or gender but do not have a solution for multiple parameters or select. If your platform does not have built-in support and Soluling's API does not support it, you can easily write your own by viewing the implementation of one of the APIs we provide.