taler-android

Android apps for GNU Taler (wallet, PoS, cashier)
Log | Files | Refs | README | LICENSE

README.md (2899B)


      1 # GNU Taler Android Code Repository
      2 
      3 This git repository contains code for GNU Taler Android apps and libraries.
      4 The official location is: 
      5 
      6     https://git.taler.net/taler-android.git
      7     
      8 ## Structure
      9 
     10 * [**cashier**](/cashier) - an Android app that enables you to take cash and give out electronic cash
     11 * [**merchant-lib**](/merchant-lib) - a library providing communication with a merchant backend
     12   to be used by the point of sale app below.
     13 * [**merchant-terminal**](/merchant-terminal) - a merchant point of sale terminal Android app
     14   that allows sellers to
     15   process customers’ orders by adding or removing products,
     16   calculate the amount owed by the customer
     17   and let the customer make a Taler payment via QR code or NFC.
     18 * [**taler-kotlin-android**](/taler-kotlin-android) - an Android library containing common code
     19   needed by more than one Taler Android app.
     20 * [**wallet**](/wallet) - a GNU Taler wallet Android app
     21 
     22 ## Building
     23 
     24 You can get a list of possible build tasks like this:
     25     
     26     $ ./gradlew tasks
     27     
     28 See the [Taler developer manual](https://docs.taler.net/developers-manual.html#build-apps-from-source).
     29 for more information about building individual apps.
     30 
     31 ## I18N (Internationalization)
     32 
     33 The default source language is **English**. All translatable strings are defined in (one of
     34 various) locations:
     35 
     36 ``res/values/strings.xml``
     37 
     38 ### Folder Structure
     39 
     40 Translations follow the standard Android convention:
     41 
     42 res/values/          -> English (source / reference)
     43 res/values-de/       -> German
     44 res/values-it/       -> Italian
     45 res/values-fr/       -> French
     46 
     47 etc.
     48 
     49 ### Check for Available Languages and See Translation Status
     50 
     51 Use the helper script ``check-translations.py`` to analyze the current
     52 translation coverage across all modules in the repository.
     53 
     54 *Note:
     55 The script automatically detects the git repo root via the .git folder
     56 and scans all modules (merchant-terminal, cashier, wallet, etc.), also
     57 when run from any subfolder of the repository.*
     58 
     59 From the git repository's root path:
     60 
     61 ```bash
     62 # Overview of all languages
     63 
     64 ./check-translations.py
     65 
     66 # Missing strings for a specific language (per module):
     67 
     68 ./check-translations.py de     # German
     69 ./check-translations.py it     # Italian
     70 ./check-translations.py fr     # French
     71 
     72 # Lint-like checks (format args, extra keys, string-array lengths):
     73 
     74 ./check-translations.py de --lint
     75 ./check-translations.py fr --lint
     76 ./check-translations.py --lint   # all languages
     77 ```
     78 
     79 ``--lint`` reports:
     80 
     81 * **MissingTranslation** / **ExtraTranslation** (vs English ``values/``)
     82 * **StringFormatCount** (``%s`` / ``%1$d`` placeholders must match)
     83 * **StringArrayLength** / **StringArrayPair** (e.g. language values vs labels)
     84 
     85 Exit status is non-zero if missing strings (with ``LANG``) or lint issues
     86 (with ``--lint``) are found.
     87 
     88 The overview and per-language output cover **all** app modules in the
     89 repository (not only PoS).