# About
This is a repository where you may access the code for [STARK-web](https://orodja.cjvt.si/stark/).

# Running
Install required libraries using (we presume you have preinstalled python 3.8+):
```shell
pip install -r requirements
```

Move to project directory and write:
```shell
flask run
```

To run project locally.

# Deployment
Website is deployed on 'storitve' server.

After connecting there, clone latest version of this repository to custom location.

Move inside clone repository and build a docker image using the following command (adapt version by modifying cited `2024-01-01`):
```shell
docker build -t stark-web:2024-01-01_1 .
```

Move to the location with docker-compose.yml (`/opt/Docker/STARK-web/`) and adapt `docker-compose.yml` file to be a container of the latest image (in previous example this would be `image: stark-web:2024-01-01_1`) 

Run new docker container:
```shell
docker compose up -d
```


# Translations
Translations are implemented using [flask-babel library](https://pypi.org/project/flask-babel/) (this should already be installed if you followed instructions in Running section).

## Install gettext
In order to use `msgmerge` command you have to install [gettext](https://www.gnu.org/software/gettext/).
```shell
# Ubuntu command
sudo apt install gettext
```

## Update translations commands

```shell
# Move to project directory

# Create .pot file
pybabel extract -F babel.cfg -o messages.pot .
msgmerge translations/sl/LC_MESSAGES/messages.po messages.pot -o translations/sl/LC_MESSAGES/messages.po
msgmerge translations/en/LC_MESSAGES/messages.po messages.pot -o translations/en/LC_MESSAGES/messages.po

# !Check and delete fuzzy in .po files

# Compile changes
pybabel compile -d translations
```

## Initiate a new language
If new language is introduced, you may use the following command:
```shell
pybabel init -i messages.pot -d translations -l es
```