New python L10n library - Silme

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

New python L10n library - Silme

Zbigniew Braniecki-2
Hi all

I know it's not the best moment to announce anything (people are on
their flights to Whistler, or jet lagged to death), but I can wait no
more (Pike is threating me).

During last half a year I've been working in my spare time on
localization library.

The purpose of this kind of library is to simplify development process
of L10n applications of any kind - from webapps, command line tools to
GUI apps.

The library is named Silme and currently supports storing and
manipulating API for l10n files, entities and directories.

The library unifies by a common API datasources, be it - disk space,
SVN, CVS, HG, or SQL like mySQL or SQLite.
Beside, library allows a user to build operations independent of the
storing format (PO, Properties, DTD, L20n, XLIFF, etc.).

The library is open source (tri-licensed) and I fully encourage you to
participation in its development as it's very far away from being ready.

Silme is not a webtool, or any other kind of ready to use tool - it only
contains pieces that can be used to simplify the work on the tools. You
can focus on the UI and features, and once you have to, say, get all
entities from file - you can use Silme API to load it in no time.

Despite of that, for testing purposes, and out of curiosity, I wrote
several small testing tools on top of the library. They're by no mean
complete, and the code may be ugly (it's for testing, right?), but it
may help you understand the code and the patterns that you can use.

While working on the API I tried to use all my experience with
localization and reproduce to maximum the way localizer acts, but just
automating the patterns that can be automated.

In result the library does do minimum to the file it operates on
(preserving the structure) and follows the patters localizers use (by
appending a new entity after some other entity instead of adding it at
the end).

The whole project is both, big and small at the same time. I've spent
several months experimenting with API to cover all potential usage
patterns and came to the point where I believe core classes are ready
and the library may be used to simplify many tasks. At the same time the
whole localization category is huge and mainly not touched by anyone
before (afaik). It means that many elements have never been solved and
I'm discovering solutions while working on the library. It requires many
more work to cover all cases for multiply projects in any language (like
higher-level entity parsing - plurals, declension, inner variables
etc.), but I believe that the skeleton is scalable, mostly frozen and
ready to be published and attract others to help me working on it.

I chose Python because it is the only language that is pretty modern,
clean, multi-platform, open source and may easily serve for
command-line, webtools and GUI tools.

You can read initial documentation and tutorial here:
http://wiki.braniecki.net/Silme

The API can be produced with doxygen (which I don't have right now)

The current sources may be viewed at http://svn.braniecki.net/wsvn/Silme

Currently there are several tools that works, including simple QT4 tool
and a webapp that may be used to work on single l10nPackage from file or
SVN repository.

Roadmap is here: http://wiki.braniecki.net/Silme:roadmap
As you can see the current plan is to go up in the abstraction stack to
add support for syntax of each entity and make it easy for apps to
display things like similar entities, or other translations of the same
entity and to add ability to parse entities (plurals, declension, inner
variables).

If you have any questions, concerns, or would like to join the effort,
please, feel free to respond here, email me or ping on IRC. I will be
more than happy to get support. :)

Greetings
Zbigniew Braniecki
--

Mozilla (http://www.mozilla.org)
_______________________________________________
dev-l10n mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-l10n
Reply | Threaded
Open this post in threaded view
|

Re: New python L10n library - Silme

Arjuna Rao Chavala
On Jul 28, 11:56 pm, Zbigniew Braniecki <[hidden email]>
wrote:

> Hi all
>
> I know it's not the best moment to announce anything (people are on
> their flights to Whistler, or jet lagged to death), but I can wait no
> more (Pike is threating me).
>
> During last half a year I've been working in my spare time on
> localization library.
>
> The purpose of this kind of library is to simplify development process
> of L10n applications of any kind - from webapps, command line tools to
> GUI apps.
>
> The library is named Silme and currently supports storing and
> manipulating API for l10n files, entities and directories.
>
> The library unifies by a common API datasources, be it - disk space,
> SVN, CVS, HG, or SQL like mySQL or SQLite.
> Beside, library allows a user to build operations independent of the
> storing format (PO, Properties, DTD, L20n, XLIFF, etc.).
>
> The library is open source (tri-licensed) and I fully encourage you to
> participation in its development as it's very far away from being ready.
>
> Silme is not a webtool, or any other kind of ready to use tool - it only
> contains pieces that can be used to simplify the work on the tools. You
> can focus on the UI and features, and once you have to, say, get all
> entities from file - you can use Silme API to load it in no time.
>
> Despite of that, for testing purposes, and out of curiosity, I wrote
> several small testing tools on top of the library. They're by no mean
> complete, and the code may be ugly (it's for testing, right?), but it
> may help you understand the code and the patterns that you can use.
>
> While working on the API I tried to use all my experience with
> localization and reproduce to maximum the way localizer acts, but just
> automating the patterns that can be automated.
>
> In result the library does do minimum to the file it operates on
> (preserving the structure) and follows the patters localizers use (by
> appending a new entity after some other entity instead of adding it at
> the end).
>
> The whole project is both, big and small at the same time. I've spent
> several months experimenting with API to cover all potential usage
> patterns and came to the point where I believe core classes are ready
> and the library may be used to simplify many tasks. At the same time the
> whole localization category is huge and mainly not touched by anyone
> before (afaik). It means that many elements have never been solved and
> I'm discovering solutions while working on the library. It requires many
> more work to cover all cases for multiply projects in any language (like
> higher-level entity parsing - plurals, declension, inner variables
> etc.), but I believe that the skeleton is scalable, mostly frozen and
> ready to be published and attract others to help me working on it.
>
> I chose Python because it is the only language that is pretty modern,
> clean, multi-platform, open source and may easily serve for
> command-line, webtools and GUI tools.
>
> You can read initial documentation and tutorial here:http://wiki.braniecki.net/Silme
>
> The API can be produced with doxygen (which I don't have right now)
>
> The current sources may be viewed athttp://svn.braniecki.net/wsvn/Silme
>
> Currently there are several tools that works, including simple QT4 tool
> and a webapp that may be used to work on single l10nPackage from file or
> SVN repository.
>
> Roadmap is here:http://wiki.braniecki.net/Silme:roadmap
> As you can see the current plan is to go up in the abstraction stack to
> add support for syntax of each entity and make it easy for apps to
> display things like similar entities, or other translations of the same
> entity and to add ability to parse entities (plurals, declension, inner
> variables).
>
> If you have any questions, concerns, or would like to join the effort,
> please, feel free to respond here, email me or ping on IRC. I will be
> more than happy to get support. :)
>
> Greetings
> Zbigniew Braniecki
> --
>
> Mozilla (http://www.mozilla.org)

Very good news. When facing the firefox 2 to firefox 3 localization
update problem, I though I will write a  Python script at least to
merge lines containing new strings into the localization files. I will
explore your initiative soon.

Best regards
Arjun
_______________________________________________
dev-l10n mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-l10n
Reply | Threaded
Open this post in threaded view
|

Re: New python L10n library - Silme

Robert Kaiser
In reply to this post by Zbigniew Braniecki-2
Zbigniew Braniecki wrote:
> If you have any questions, concerns, or would like to join the effort,
> please, feel free to respond here, email me or ping on IRC. I will be
> more than happy to get support. :)

Thanks for the demo you gave me here at the Summit. For localizers: this
is really really great stuff coming up here, finally there will be one
thing that can drive webtools and UI tools and scripts and unifies stuff
from dtd, properties, po, and some other file formats and export
localized files in a way that doesn't destroy how the files look!

Thanks gandalf for working on this!

Robert Kaiser
_______________________________________________
dev-l10n mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-l10n