bitbof / klecks

Community funded painting tool powering Kleki.com
https://klecks.org
MIT License
235 stars 74 forks source link
draw image-editor paint paint-application pixel-editor typescript

šŸ–Œļø Demo | ā“ About | šŸ“ Dev Blog

Klecks

Klecks (German for "splash of color", pronounced "clex") is the official open-source release of the community-funded online painting app Kleki.

Klecks can run in standalone mode (e.g. on kleki.com), or embed (e.g. on 2draw.net) for drawing communities.

Features


Created by developer/artist bitbof


Commands

Embed

Example usage of the embed can be found under: /examples/embed/

Docker

To run Klecks (standalone) within a Docker container, run the following commands in project root:

docker-compose build

docker-compose up -d

It is then accessible through: http://localhost:5050

Translations

Are you a native speaker or have advanced skills in a language with no translation yet? Any contribution by you is highly encouraged and appreciated!

Where are translation files?

Translations are located in src/languages where each translation is its own JSON5 file, e.g. de.json5 for German. Within such a file everything except value is to be kept in sync with _base-en.json5.

Structure of a translation file

{
  // key by which this text is referenced in code
  stabilizer: {

    // A hint, further explaining the text
    hint: 'Common feature in drawing software to make lines smoother',

    // Original text (English)
    original: 'Stabilizer',

    // Translated text
    value: 'ꊖåŠØäæ®ę­£'
  },
  // ...
}

Creating/editing a translation

To create a new translation run npm run lang:add <code>, which creates src/languages/<code>.json5. You find all (ISO 639-1) language codes in src/languages/languages.json. The generated file will already include everything except value. To edit an existing translation, simply edit one of the files in src/languages. If a language file is out of sync with src/languages/_base-en.json5 (English), whatever key is out of sync will be ignored and fall back on English. English is the source of truth. A translation cannot add new keys without them also being present in _base-en.json5.

To see your changes in Klecks, run npm run lang:build. It needs to be run whenever changes to src/languages are made or it won't be up-to-date. Then build or start Klecks.

A translation should try not to cause additional line-breaks in the UI if possible. Test to make sure translations fit the context of the application. Note, some texts are only visible in the standalone-version and vice versa with the embed-version.

List of commands

Contribute

Klecks and Kleki are community funded. Donate today

License

bitbof Ā© 2024 - Released under the MIT License. Icons by bitbof are public domain (excluding the Klecks logo, bitbof logo).

If you wish to say you're using "Kleki" and use its branding you must acquire a license from bitbof. You are free to say you're using "Klecks".