[Projects] December Updates

[Projects] December Updates

Dec 30, 2022

immagine Stone.js, a light-weight, zero-dependency JavaScript internationalization library. It can be used to translate both server-side (Node.js) and browser-side JavaScript applications.

  • StoneJS Tools, a command-line tool that is able to extract translatable strings from JavaScript and HTML sources and write them to a catalog template (.pot file). It can also update/merge the strings from the template (.pot) to the language catalogs (.po files). Finally, it can compile the catalogs (.po) to JSON files that are used by the Stone.js library.

  • Grunt StoneJS Tools, a plugin that integrates StoneJS Tools with the Grunt task runner.

  • New versions of Stone.js, StoneJS Tools and Grunt StoneJS Tools were released to support strings with context (pgettext, npgettext, etc. functions). You can read more about contexts in the Gettext documentation:

    ➡️ https://www.gnu.org/software/gettext/manual/html_node/Contexts.html

    The support of contexts required some changes in the JSON catalog format used by Stone.js. The newer versions of the Stone.js library are still able to read old JSON catalogs, but the newer versions of the tools only generate catalogs in the new format so they are not compatible with old versions of the library. TL;DR: if you update the tools, you must update the library too.

    The work on this new feature was done by ma colleague Thomas Fromont; a big thanks to him for this great contribution! 😁️

    The changes made on the project was also the occasion to update all the dependencies, the development tools and workflows. For instance, Travis CI (that was not working anymore) was replaced by Github Actions to run the test pipelines and the Jasmine test suite used by Stone.js was replaced by Jest, a more modern test framework.

    ## A new project...

    I want to play a bit with the Gemini protocol (it is something between Gopher and the Web) and I may publish my blog as a Gemini Capsule (in addition to the Web version). The first step is to be able to convert the articles of my blog that are written using the reStructuredText markup language to Gemtext, the markup language used by Gemini. Then I will have to write a Pelican plugin to generate both the HTML and Gemtext version of the blog.

    So this month I started to work on a new library to convert reStructuredText to Gemtext. It is still work in progress but you can have a look at the repository on Github if you are curious:

    ➡️ https://github.com/flozz/rst2gemtext

    immagine


    That's it for this month, see you soon for more updates! 😁️


    Cover photo: Winter morning in the Schwarzwald by Tesla Delacroix

    Ti piace questo post?

    Offri un caffè a FLOZz

    Altro da FLOZz