# weatherhs ## Description Command-line tool that retrieves and nicely outputs weather and related data from [Weather API](https://www.weatherapi.com/). Written in Haskell. ## Dependencies #### Building & installing + stack + msgfmt + make #### Running + gettext + gpgme + pcre ## Installation Use Stack to build and Make to install this project: Enter the project's root directory and run: ``` stack build weatherhs --ghc-options=-U__MESSAGE_CATALOG_DIR__ make install ``` You'll need to change `__MESSAGE_CATALOG_DIR__` value to point to your locale directory; the default (when undefined externally) is "/usr/share/locale". You can pass `--ghc-options=-dynamic` to Stack to link with dynamic libraries; note that then you'll need to have those libraries installed to run the program. Run `make help` for more installation options. ## Uninstallation Enter the project's root directory and run: ``` make uninstall ``` Make sure that Make variables are set to the values used for the installation. ## Translations Default language of this program (in effect when `C` or `POSIX` is set as locale) is US English. The following translations are available: | **Language** | **Translator** | **For versions** | |--------------------|----------------------------------------------------------|------------------| | Serbian (Cyrillic) | [Nikola Hadžić](mailto:nikola.hadzic.000@protonmail.com) | 1.0.0 | | Serbian (Latin) | [Nikola Hadžić](mailto:nikola.hadzic.000@protonmail.com) | 1.0.0 | ### Translation process This program is written to be easily translatable into multiple languages, and it achieves that through the use of [`gettext`](https://www.gnu.org/software/gettext/) library. Translations are located in `po` directory. Files in that directory contain translations, each PO file corresponding to one locale. To add a new or update existing translation, enter the project's `po` directory and run the following command: ``` make %.po # Generate/update PO file; "%" should be replaced with a language code. ``` Afterwards, you can edit created/updated PO file (see [`gettext` manual](https://www.gnu.org/software/gettext/manual/gettext.html) for details), translating the program that way. You could also run `make messages.pot` to just generate the template file, but this will be done automatically by the previously described rule. **NOTE:** You need to have hgettext tool, msgcat and sed installed in order to generate the template file. **NOTE:** Make sure to use hgettext tool with this commit: . It would also be good to translate the manual page, you will find it in "man" project subdirectory. In that case also update .cabal file to include new manual page translation.