[TOC]

_This documentation is under construction_

# What is Makagiga?

To-do manager, notepad, RSS reader...

[Makagiga](https://makagiga.sourceforge.io/)™ is an open-source, easy-to-use,
portable application for doing a variety of tasks, such as todo listing, text editing, or RSS reading.
[Plugins](https://makagiga.sourceforge.io/plugins.php) are used to implement its various capabilities.

# Documentation

* [This file](https://sourceforge.net/p/makagiga/code/HEAD/tree/trunk/makagiga/README.md) (formatted as HTML)
* [Wiki](https://sourceforge.net/p/makagiga/wiki/Home/)
* [Old README file](https://makagiga.sourceforge.io/README-OLD.html) (obsolete)
* [License and Copyright](https://sourceforge.net/p/makagiga/code/HEAD/tree/trunk/makagiga/LICENSE.txt)

# Running

## Requirements

* The following platforms are officially supported: Linux, Windows 7/8/10
* OpenJDK (included in Makagiga packages for Linux/Windows)

## Common Problems

### java.lang.UnsupportedClassVersionError

    Exception in thread "main" java.lang.UnsupportedClassVersionError:
    org/makagiga/Main has been compiled by a more recent version of the Java Runtime (class file version 54.0),
    this version of the Java Runtime only recognizes class file versions up to 52.0

You are trying to run Makagiga using an older OpenJDK version. Solutions:

* [Download a Makagiga package](https://makagiga.sourceforge.io/download.html) that already includes a proper OpenJDK version
* [Download required OpenJDK](https://jdk.java.net/) manually and set `JAVA_HOME` in `makagiga.sh`

# Source

## Getting Started

Run `ant help` to see available Ant _targets_.

# Language Translation (i18n)

* [Translation Status / Recent Updates](https://sourceforge.net/p/makagiga/code/HEAD/tree/trunk/makagiga/po/)

## HTML Tags

* <code>b</code> - displays text using **bold font**
* <code>br</code> - force line wrap
* <code>code</code> - display text using `monospace font`

Note: Use tags **only** if the original text also contains such HTML tags.

## Keyboard Shortcuts

In a few cases, "Alt" keyboard shortcuts are marked using the `&` character (e.g. `&File` = Alt+F).

Note: Avoid two identical shortcuts in the same window (e.g. `C&ancel` and `&Apply`)

## Text Arguments

`{0}`, `{1}`, etc. - each `{n}` text will be replaced at runtime with an applicable value. For example, `"Page {0} of {1}"` text may be displayed as `"Page 2 of 10"` in the UI.

Note: All the arguments must be preserved in a translated text.

# Language Translation (using Makagiga source)

## Starting a New Translation

Run `"ant i18n-new"` from a terminal to create `po/NEW_TRANSLATION_RENAME_THIS_FILE.po`, then follow the instructions.

## Translating

To edit a `.po` file you can use any modern text editor, or one of many specialized tools, such as [Poedit](https://poedit.net/), Lokalize or Qt Linguist.

Note: There are a lot of messages to translate. But don't worry. You can translate the frequently used first (e.g. "Cut", "Copy", "Paste"), and skip the rarely displayed.

Follow commonly used terminology. If in doubt see how it's translated in other popuplar applications.

## Testing

1. Run `"ant i18n"` to compile/merge translations
* Run `"ant run"` to compile and launch Makagiga
* Hint: Set `MAKAGIGA_LANG` environment variable to force a specific language (e.g. `MAKAGIGA_LANG=de`)
