Compare commits
6
Commits
dev
..
112e4ac4c4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
112e4ac4c4 | ||
|
|
9e428f7a03 | ||
|
|
e163796bcb | ||
|
|
e9d39e26dc | ||
|
|
a33dbdeb65 | ||
|
|
91002037df |
@@ -35,9 +35,6 @@ build/
|
|||||||
|
|
||||||
### App ###
|
### App ###
|
||||||
*.properties
|
*.properties
|
||||||
!application.properties
|
|
||||||
!lang*.properties
|
|
||||||
.mvn
|
|
||||||
mvnw
|
mvnw
|
||||||
mvnw.cmd
|
mvnw.cmd
|
||||||
*.zip
|
*.zip
|
||||||
|
|||||||
+27
-137
@@ -1,147 +1,37 @@
|
|||||||
## Nova Poshta: Tracker and Organizer
|
## Nova Poshta: Tracker and Organizer
|
||||||
### _Desktop application to track, organize and manage parcels from Ukrainian delivery operator Nova Poshta_
|
### _Desktop application to track, organize and manage parcels from Ukrainian delivery operator Nova Poshta_
|
||||||
|
|
||||||
[](https://adoptium.net/) [](https://gluonhq.com/products/javafx/) [](https://spring.io/projects/spring-boot) [](https://controlsfx.github.io) [](https://www.sqlite.org/) [](#)
|
[](https://www.java.com/) [](https://controlsfx.github.io) [](https://maven.apache.org/)
|
||||||
|
|
||||||
🇺🇦 [Українська версія](README_ua.md)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### 💡 Purpose
|
### 💡 Purpose
|
||||||
There wasn't a desktop application for Nova Poshta. This one keeps all your waybill numbers (TTN) in one place, regularly refreshes their status from the Nova Poshta API, lets you group, filter, search and archive them, and pass them to your own plugins for further processing.
|

|
||||||
|
|
||||||
|
There wasn't desktop application for Nova Poshta.
|
||||||
|
That it.
|
||||||
### 📃 Features
|
### 📃 Features
|
||||||
- multiple OS: Windows and Linux launch scripts are included, any OS with Java 17 and JavaFX will do
|
- multiple OS
|
||||||
- [useful, informative and flexible interface](#MainWin) with list, detailed view and barcode of the number
|
- useful, informative and flexible interface
|
||||||
- on-the-fly interface language switching (English / Ukrainian)
|
- in-fly interface language changing
|
||||||
- [auto update of uncompleted numbers](#Config)
|
- plugins support
|
||||||
- [several view and filtration modes](#ViewModes)
|
- auto update uncompleted numbers
|
||||||
- [custom numbers list](#Windows) – not all numbers, but only those you need
|
- some number views and filtration options
|
||||||
- [numbers grouping](#Groups)
|
- custom numbers list - not all numbers to view, but numbers you need
|
||||||
- [extended search](#Search) with saved search options and search history
|
- numbers grouping support
|
||||||
- [several phone numbers](#Phones) for requests to the Nova Poshta server
|
- extended search with saving search options feature
|
||||||
- [archiving](#Windows) of completed / unused numbers
|
- multiple addition windows support
|
||||||
- [plugins support](#Plugins)
|
- archiving completed/unused numbers
|
||||||
- [visual log](#Log) of the main application events
|
- visually logging main application's events
|
||||||
- [hot keys](help/en/hot_keys.md) for almost every action
|
### ⏬ Getting
|
||||||
|
You can download archive from [Releases section](https://github.com/anrydas/NovaPoshta/releases) or clone the repository.
|
||||||
|
Find full application's documentation at: [Ukrainian](help/uk/help.md) and [English](help/en/help.md).
|
||||||
|
### 🚀 Launch<a id='Launch'/>
|
||||||
|
First you need to set the `JFX_PATH` variable as full path to JavaFX in provided `run.*` script.<br/>
|
||||||
|
If you haven't the JavaFX you need to install it from [https://gluonhq.com/products/javafx/](https://gluonhq.com/products/javafx/)<br/>
|
||||||
|
The application's distribution included run.cmd or run.sh depended on your OS. Just launch it.<br/>
|
||||||
|
Note: `run.*` script need to `JAVA_HOME` environment variable. If it doesn't provided made changes into script to include full path to JRE.
|
||||||
|
### 📜 Main Window<a id='MainWin'/>
|
||||||
|

|
||||||
|
|
||||||
### ⭐ Advantages
|
###### _Made by -=:dAs:=-_
|
||||||
- **Everything is local** – numbers, groups, phones and settings are stored in a local SQLite database `DB/np.db`, no account or cloud is needed.
|
|
||||||
- **Always up to date** – uncompleted numbers are refreshed automatically, a single number or all of them can be updated on demand.
|
|
||||||
- **Extensible** – any `jar` plugin implementing `PluginInterface` gets the selected numbers and can export, print or process them.
|
|
||||||
- **Keeps your layout** – positions and sizes of all resizable windows are remembered between launches.
|
|
||||||
|
|
||||||
### 📱 Screenshots
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td align="center"><img src="help/images/main.png" width="400" alt="Main window" /></td>
|
|
||||||
<td align="center"><img src="help/images/search.png" width="400" alt="Search" /></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center"><i>Main window</i></td>
|
|
||||||
<td align="center"><i>Search</i></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center"><img src="help/images/detailed_window.png" width="400" alt="Detailed view" /></td>
|
|
||||||
<td align="center"><img src="help/images/config.png" width="400" alt="Configuration" /></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center"><i>Detailed number view</i></td>
|
|
||||||
<td align="center"><i>Configuration</i></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### 📌 Using
|
|
||||||
Full documentation: [English](help/en/help.md) and [Ukrainian](help/uk/help.md).
|
|
||||||
|
|
||||||
#### Main window<a id='MainWin' />
|
|
||||||
**_All added numbers on the left, details of the selected one on the right, log at the bottom._**
|
|
||||||
- list element shows the number, its state, user comment/description, type and dates
|
|
||||||
- detailed view shows all main fields, a barcode, copy-to-clipboard buttons and opens the [detailed view window](help/en/detail.md) with the full API response
|
|
||||||
- context menu, [menu and toolbar](help/en/menu.md) contain all commands for the number
|
|
||||||
- new numbers are added in the [Adding new Number](help/en/new.md) window; several such windows can be open at once
|
|
||||||
- details: [Main window](help/en/main.md)
|
|
||||||
|
|
||||||
#### Configuration<a id='Config' />
|
|
||||||
**_Settings are edited in the Configuration window and stored in the database._**
|
|
||||||
- Nova Poshta API link (normally no need to change it)
|
|
||||||
- default phone number – required, without it the server returns incomplete data
|
|
||||||
- enable / disable automatic update of uncompleted numbers
|
|
||||||
- number of search history and log records
|
|
||||||
- details: [Configuration](help/en/config.md)
|
|
||||||
|
|
||||||
#### View modes and filtration<a id='ViewModes' />
|
|
||||||
**_Switch how the numbers list is built and which numbers are shown._**
|
|
||||||
- view modes: numbers list, by groups, by creation date, by update date
|
|
||||||
- filters by number type: all, inbound, outbound, undefined
|
|
||||||
- details: [View modes and Filtration](help/en/view_mode.md)
|
|
||||||
|
|
||||||
#### Groups<a id='Groups' />
|
|
||||||
**_Split numbers into named groups._**
|
|
||||||
- group **Default** is created on the first launch and receives new numbers
|
|
||||||
- groups are added, renamed and deleted in the group edit window; only an empty group can be deleted
|
|
||||||
- details: [Groups](help/en/groups.md)
|
|
||||||
|
|
||||||
#### Archive and custom numbers list<a id='Windows' />
|
|
||||||
**_Separate windows for archived numbers and for a hand-picked list._**
|
|
||||||
- move completed numbers to the archive; restore or delete them permanently from there
|
|
||||||
- add any number to the custom list to keep an eye on it
|
|
||||||
- details: [Archived and Custom view numbers](help/en/windows.md)
|
|
||||||
|
|
||||||
#### Search<a id='Search' />
|
|
||||||
**_Simple search by number or advanced search by selected fields._**
|
|
||||||
- search in the main list or in the archive, case-insensitive
|
|
||||||
- advanced search options can be saved and restored
|
|
||||||
- search history (10–500 records) suggests previous queries
|
|
||||||
- search results can be passed to a plugin
|
|
||||||
- details: [Search and search options](help/en/search.md)
|
|
||||||
|
|
||||||
#### Phone numbers<a id='Phones' />
|
|
||||||
**_Several phone numbers to request number data from the Nova Poshta server._**
|
|
||||||
- the main phone number is shown in bold
|
|
||||||
- a phone used by numbers cannot be deleted
|
|
||||||
- details: [Phone numbers](help/en/phones.md)
|
|
||||||
|
|
||||||
#### Plugins<a id='Plugins' />
|
|
||||||
**_Pass numbers to external `jar` plugins._**
|
|
||||||
1. Take [NP Plugin Template](../plugins/template) as a base (see the [Demo plugin](../plugins/demo)).
|
|
||||||
2. Implement `das.tools.np.entity.plugin.PluginInterface`; the `jar` file name must match the plugin class name.
|
|
||||||
3. Put the `jar` into the `plugins` folder of the application or into its sub-folder (one level only).
|
|
||||||
4. Run the plugin from the menu, the search window or the archive window.
|
|
||||||
- details: [Plugins](help/en/plugins.md)
|
|
||||||
|
|
||||||
#### Log<a id='Log' />
|
|
||||||
**_Main application events in the bottom area of the main window._**
|
|
||||||
- toggled with **Ctrl + L**; maximum number of records is set in the configuration
|
|
||||||
- the file log is written to `logs/NP.log`
|
|
||||||
- details: [Log](help/en/log.md)
|
|
||||||
|
|
||||||
### 🚀 Running
|
|
||||||
Requirements: Java 17+ (`JAVA_HOME` must point to it) and the [JavaFX SDK](https://gluonhq.com/products/javafx/) for your OS.
|
|
||||||
|
|
||||||
1. Download the archive from the [Releases section](https://github.com/anrydas/NovaPoshta/releases) (or [build it](#Build)) and unpack it.
|
|
||||||
2. Set `JFX_PATH` in `run.sh` (Linux/macOS) or `run.cmd` (Windows) to the full path of the JavaFX SDK folder (the one containing `lib`).
|
|
||||||
3. Launch `run.sh` / `run.cmd`. If `JAVA_HOME` is not set, put the full path to `java` into the script.
|
|
||||||
|
|
||||||
The distribution folder layout:
|
|
||||||
```
|
|
||||||
NovaPoshta.jar # application
|
|
||||||
run.sh / run.cmd # launch scripts
|
|
||||||
application-default.properties # optional overrides of the built-in settings (logging, DB path)
|
|
||||||
DB/np.db # database (an empty one in the distribution)
|
|
||||||
plugins/ # plugins folder
|
|
||||||
logs/NP.log # created on the first launch
|
|
||||||
```
|
|
||||||
The scripts switch to their own folder before start, because the database, logs and plugins are resolved relative to the working directory.
|
|
||||||
|
|
||||||
#### Building the application<a id='Build' />
|
|
||||||
Requirements: JDK 17 and Maven 3.
|
|
||||||
```shell
|
|
||||||
cd NovaPoshta
|
|
||||||
mvn clean package # builds the jar and the distribution archive
|
|
||||||
```
|
|
||||||
The ready-to-use archive appears in `target/NovaPoshta-distribution.zip`.
|
|
||||||
|
|
||||||
**Note:** the application is not affiliated with Nova Poshta; it only uses its public API.
|
|
||||||
|
|
||||||
###### _Made by -=:dAs:=-_
|
|
||||||
@@ -1,147 +0,0 @@
|
|||||||
## Нова пошта: трекер та органайзер
|
|
||||||
### _Десктопний додаток для відстеження, впорядкування та керування посилками українського поштового оператора Нова пошта_
|
|
||||||
|
|
||||||
[](https://adoptium.net/) [](https://gluonhq.com/products/javafx/) [](https://spring.io/projects/spring-boot) [](https://controlsfx.github.io) [](https://www.sqlite.org/) [](#)
|
|
||||||
|
|
||||||
🇬🇧 [English version](README.md)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### 💡 Призначення
|
|
||||||
Десктопного додатка для Нової пошти не існувало. Цей додаток зберігає всі ваші ТТН в одному місці, регулярно оновлює їхній статус через API Нової пошти, дозволяє групувати, фільтрувати, шукати та архівувати їх, а також передавати їх власним плагінам для подальшої обробки.
|
|
||||||
|
|
||||||
### 📃 Можливості
|
|
||||||
- кілька ОС: є скрипти запуску для Windows і Linux, підійде будь-яка ОС з Java 17 та JavaFX
|
|
||||||
- [зручний, інформативний та гнучкий інтерфейс](#MainWin) зі списком, детальним переглядом і штрихкодом ТТН
|
|
||||||
- зміна мови інтерфейсу «на льоту» (українська / англійська)
|
|
||||||
- [автоматичне оновлення незавершених ТТН](#Config)
|
|
||||||
- [кілька режимів перегляду та фільтрації](#ViewModes)
|
|
||||||
- [користувацький список ТТН](#Windows) – не всі ТТН, а лише потрібні
|
|
||||||
- [групування ТТН](#Groups)
|
|
||||||
- [розширений пошук](#Search) зі збереженням параметрів пошуку та історією запитів
|
|
||||||
- [кілька номерів телефонів](#Phones) для запитів до сервера Нової пошти
|
|
||||||
- [архівування](#Windows) завершених / непотрібних ТТН
|
|
||||||
- [підтримка плагінів](#Plugins)
|
|
||||||
- [візуальний журнал](#Log) основних подій додатка
|
|
||||||
- [гарячі клавіші](help/uk/hot_keys.md) майже для кожної дії
|
|
||||||
|
|
||||||
### ⭐ Переваги
|
|
||||||
- **Усе локально** – ТТН, групи, телефони та налаштування зберігаються в локальній базі SQLite `DB/np.db`, обліковий запис чи хмара не потрібні.
|
|
||||||
- **Завжди актуально** – незавершені ТТН оновлюються автоматично, окрему ТТН або всі одразу можна оновити вручну.
|
|
||||||
- **Розширюваність** – будь-який `jar`-плагін, що реалізує `PluginInterface`, отримує вибрані ТТН і може їх експортувати, друкувати чи обробляти.
|
|
||||||
- **Пам'ятає розташування вікон** – положення та розміри всіх вікон, що змінюють розмір, зберігаються між запусками.
|
|
||||||
|
|
||||||
### 📱 Скріншоти
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td align="center"><img src="help/images/main.png" width="400" alt="Головне вікно" /></td>
|
|
||||||
<td align="center"><img src="help/images/search.png" width="400" alt="Пошук" /></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center"><i>Головне вікно</i></td>
|
|
||||||
<td align="center"><i>Пошук</i></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center"><img src="help/images/detailed_window.png" width="400" alt="Детальний перегляд" /></td>
|
|
||||||
<td align="center"><img src="help/images/config.png" width="400" alt="Налаштування" /></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center"><i>Детальний перегляд ТТН</i></td>
|
|
||||||
<td align="center"><i>Налаштування</i></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### 📌 Використання
|
|
||||||
Повна документація: [українською](help/uk/help.md) та [англійською](help/en/help.md).
|
|
||||||
|
|
||||||
#### Головне вікно<a id='MainWin' />
|
|
||||||
**_Ліворуч усі додані ТТН, праворуч деталі вибраної, внизу журнал._**
|
|
||||||
- елемент списку показує номер, стан, коментар/опис користувача, тип і дати
|
|
||||||
- детальний перегляд показує всі основні поля, штрихкод, кнопки копіювання в буфер обміну та відкриває [вікно детального перегляду](help/uk/detail.md) з повною відповіддю API
|
|
||||||
- контекстне меню, [меню та панель інструментів](help/uk/menu.md) містять усі команди для ТТН
|
|
||||||
- нові ТТН додаються у вікні [додавання ТТН](help/uk/new.md); одночасно можна відкрити кілька таких вікон
|
|
||||||
- докладніше: [Головне вікно](help/uk/main.md)
|
|
||||||
|
|
||||||
#### Налаштування<a id='Config' />
|
|
||||||
**_Налаштування змінюються у вікні налаштувань і зберігаються в базі даних._**
|
|
||||||
- посилання на API Нової пошти (зазвичай змінювати не потрібно)
|
|
||||||
- основний номер телефону – обов'язковий, без нього сервер повертає неповні дані
|
|
||||||
- увімкнення / вимкнення автоматичного оновлення незавершених ТТН
|
|
||||||
- кількість записів історії пошуку та журналу
|
|
||||||
- докладніше: [Налаштування додатка](help/uk/config.md)
|
|
||||||
|
|
||||||
#### Режими перегляду та фільтрація<a id='ViewModes' />
|
|
||||||
**_Перемикання способу побудови списку ТТН і того, які ТТН показуються._**
|
|
||||||
- режими перегляду: список ТТН, за групами, за датою створення, за датою оновлення
|
|
||||||
- фільтри за типом ТТН: усі, вхідні, вихідні, невизначені
|
|
||||||
- докладніше: [Режими перегляду та фільтрація](help/uk/view_mode.md)
|
|
||||||
|
|
||||||
#### Групи<a id='Groups' />
|
|
||||||
**_Розподіл ТТН за іменованими групами._**
|
|
||||||
- група **Default** створюється при першому запуску, до неї потрапляють нові ТТН
|
|
||||||
- групи додаються, перейменовуються та видаляються у вікні редагування груп; видалити можна лише порожню групу
|
|
||||||
- докладніше: [Групи](help/uk/groups.md)
|
|
||||||
|
|
||||||
#### Архів та користувацький список<a id='Windows' />
|
|
||||||
**_Окремі вікна для архівних ТТН і для вибраного вручну списку._**
|
|
||||||
- завершені ТТН переносяться в архів; звідти їх можна відновити або остаточно видалити
|
|
||||||
- будь-яку ТТН можна додати до користувацького списку, щоб стежити за нею
|
|
||||||
- докладніше: [Архів та Користувацький перегляд ТТН](help/uk/windows.md)
|
|
||||||
|
|
||||||
#### Пошук<a id='Search' />
|
|
||||||
**_Простий пошук за номером або розширений – у вибраних полях._**
|
|
||||||
- пошук у головному списку або в архіві, без урахування регістру
|
|
||||||
- параметри розширеного пошуку можна зберігати та відновлювати
|
|
||||||
- історія пошуку (10–500 записів) підказує попередні запити
|
|
||||||
- результати пошуку можна передати плагіну
|
|
||||||
- докладніше: [Пошук, параметри пошуку](help/uk/search.md)
|
|
||||||
|
|
||||||
#### Номери телефонів<a id='Phones' />
|
|
||||||
**_Кілька номерів телефонів для запиту даних ТТН із сервера Нової пошти._**
|
|
||||||
- основний номер телефону виділено жирним
|
|
||||||
- номер, що використовується в ТТН, видалити не можна
|
|
||||||
- докладніше: [Номери телефонів](help/uk/phones.md)
|
|
||||||
|
|
||||||
#### Плагіни<a id='Plugins' />
|
|
||||||
**_Передача ТТН зовнішнім `jar`-плагінам._**
|
|
||||||
1. Візьміть за основу [NP Plugin Template](../plugins/template) (див. також [Demo plugin](../plugins/demo)).
|
|
||||||
2. Реалізуйте `das.tools.np.entity.plugin.PluginInterface`; ім'я `jar`-файлу має збігатися з іменем класу плагіну.
|
|
||||||
3. Покладіть `jar` у теку `plugins` додатка або в її підтеку (лише один рівень вкладеності).
|
|
||||||
4. Запускайте плагін з меню, вікна пошуку або вікна архіву.
|
|
||||||
- докладніше: [Плагіни](help/uk/plugins.md)
|
|
||||||
|
|
||||||
#### Журнал<a id='Log' />
|
|
||||||
**_Основні події додатка в нижній частині головного вікна._**
|
|
||||||
- вмикається **Ctrl + L**; максимальна кількість записів задається в налаштуваннях
|
|
||||||
- файловий журнал пишеться в `logs/NP.log`
|
|
||||||
- докладніше: [Журнал](help/uk/log.md)
|
|
||||||
|
|
||||||
### 🚀 Запуск
|
|
||||||
Потрібно: Java 17+ (на неї має вказувати `JAVA_HOME`) та [JavaFX SDK](https://gluonhq.com/products/javafx/) для вашої ОС.
|
|
||||||
|
|
||||||
1. Завантажте архів з [розділу Releases](https://github.com/anrydas/NovaPoshta/releases) (або [зберіть його](#Build)) та розпакуйте.
|
|
||||||
2. Вкажіть у `run.sh` (Linux/macOS) або `run.cmd` (Windows) у змінній `JFX_PATH` повний шлях до теки JavaFX SDK (тієї, що містить `lib`).
|
|
||||||
3. Запустіть `run.sh` / `run.cmd`. Якщо `JAVA_HOME` не задано, вкажіть у скрипті повний шлях до `java`.
|
|
||||||
|
|
||||||
Структура теки дистрибутива:
|
|
||||||
```
|
|
||||||
NovaPoshta.jar # додаток
|
|
||||||
run.sh / run.cmd # скрипти запуску
|
|
||||||
application-default.properties # необов'язкове перевизначення вбудованих налаштувань (журнал, шлях до БД)
|
|
||||||
DB/np.db # база даних (у дистрибутиві – порожня)
|
|
||||||
plugins/ # тека плагінів
|
|
||||||
logs/NP.log # створюється при першому запуску
|
|
||||||
```
|
|
||||||
Скрипти перед стартом переходять у свою теку, бо база даних, журнали та плагіни шукаються відносно робочої теки.
|
|
||||||
|
|
||||||
#### Збірка застосунку<a id='Build' />
|
|
||||||
Потрібно: JDK 17 та Maven 3.
|
|
||||||
```shell
|
|
||||||
cd NovaPoshta
|
|
||||||
mvn clean package # збирає jar та архів дистрибутива
|
|
||||||
```
|
|
||||||
Готовий архів з'являється в `target/NovaPoshta-distribution.zip`.
|
|
||||||
|
|
||||||
**Note:** додаток не пов'язаний з компанією «Нова пошта», він лише використовує її публічний API.
|
|
||||||
|
|
||||||
###### _Made by -=:dAs:=-_
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
## Nova Poshta: Tracker and Organizer
|
## Nova Poshta: Tracker and Organizer
|
||||||
|
|
||||||
### Application configuration
|
### Налаштування додатка
|
||||||

|

|
||||||
|
|
||||||
In the application configuration window, you can change the following parameters:
|
In the application configuration window, you can change the following parameters:
|
||||||
- Link to the Nova Poshta API. It does not require change. When you enter the wrong link, the app will not be able to receive data from the NP server
|
- Link to API New Mail. It does not require change. When you enter the wrong link, the app will not be able to receive data from the NP server
|
||||||
- Default Phone number. This number will be sent in request to the NP server to receive a Number's data. Without the Phone number the Number's data received from the server will be incomplete. Therefore, this parameter must be specified.
|
- Default Phone number. This number will be sent in request to the NP server to receive a Number's data. Without the Phone number the Number's data received from the server will be incomplete. Therefore, this parameter must be specified.
|
||||||
- Enable or turn off automatic Number's update with "unfinished" status
|
- Enable or turn off automatic Number's update with "unfinished" status
|
||||||
- Records number in [search history](search.md?history)
|
- Records number in [search history](search.md?history)
|
||||||
@@ -13,7 +13,7 @@ Positions and sizes of windows (for those that can change the size) are stored a
|
|||||||
Automatically stored parameters for the following windows:
|
Automatically stored parameters for the following windows:
|
||||||
- [Main window](main.md)
|
- [Main window](main.md)
|
||||||
- [Search window](search.md)
|
- [Search window](search.md)
|
||||||
- [Detailed view window](detail.md)
|
- [Detailed view window]()
|
||||||
- [Archived Numbers window](windows.md?archive)
|
- [Archived Numbers window](windows.md?archive)
|
||||||
- [Custom view Numbers window](windows.md?custom)
|
- [Custom view Numbers window](windows.md?custom)
|
||||||
- [Phones edit window](phones.md)
|
- [Phones edit window](phones.md)
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
## Nova Poshta: Tracker and Organizer
|
## Nova Poshta: Tracker and Organizer
|
||||||
|
|
||||||
### Detailed Number view window
|
### Вікно детального перегляду ТТН
|
||||||

|

|
||||||
|
|
||||||
Detailed Number view window duplicates all the elements of [Detailed view](main.md?detail) of the [Main window](main.md). In addition, there is an additional table (at the bottom) that presents all Number's data obtained as a result of the server request to the [API of Nova Poshta](https://api.novaposhta.ua/v2.0/json/).
|
Detailed Number view window duplicates all the elements of [Detailed view](main.md?detail) of the [Main window](main.md). In addition, there is an additional table (at the bottom) that presents all Number's data obtained as a result of the server request to the [API of Nova Poshta](https://api.novaposhta.ua/v2.0/json/).
|
||||||
|
|
||||||
##### _see also:_ [detailed view](main.md?detail)
|
##### _see also:_ [детальний перегляд](main.md?detail)
|
||||||
|
|
||||||
#### [to Contents](help.md)
|
#### [to Contents](help.md)
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
## Nova Poshta: Tracker and Organizer
|
## Nova Poshta: Tracker and Organizer
|
||||||
|
|
||||||
### Groups
|
### Групи
|
||||||
All Numbers in the application can be divided into groups. After the first start, one group **Default** is created, in which creates all new Numbers.
|
All Numbers in the application can be divided into groups. After the first start, one group **Default** is created, in which creates all new Numbers.
|
||||||
|
|
||||||
You can add a new group using [Menu](menu.md?menu) **Edit**, or using a button on the [Toolbar](menu.md?toolbar)
|
You can add a new group using [Menu](menu.md?menu) **Edit**, or using a button on the [Toolbar](menu.md?toolbar)
|
||||||
Also add, change and delete groups you can in [Group edit window](#edit)
|
Also add, change and delete groups you can in [Group edit window](#edit)
|
||||||
|
|
||||||
There can be no two different groups with the same name.
|
There can be no two different groups with the same name.
|
||||||
#### Group edit window<a id='edit'/>
|
#### Вікно редагування груп<a id='edit'/>
|
||||||

|

|
||||||
|
|
||||||
In the group editing window, you can add, change and delete groups. The changed data is highlighted in the list of bold.
|
In the group editing window, you can add, change and delete groups. The changed data is highlighted in the list of bold.
|
||||||
|
|
||||||
All actions are performed with the appropriate buttons. All changes are fixed only after pressing the button **OK**
|
All actions are performed with the appropriate buttons. All changes are fixed only after pressing the button **OK**
|
||||||
|
|
||||||
It is impossible to remove the non-empty group. To removing the non-empty group move numbers from it another group (or to archive), and only then - remove the group.
|
It is impossible to remove the non-empty group. To removing the non-empty group move numbers from it another group (or to erchive), and only then - remove the group.
|
||||||
|
|
||||||
#### [to Contents](help.md)
|
#### [to Contents](help.md)
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
- [list element](main.md?element)
|
- [list element](main.md?element)
|
||||||
- [detail view](main.md?detail)
|
- [detail view](main.md?detail)
|
||||||
- [context menu](main.md?context)
|
- [context menu](main.md?context)
|
||||||
2. **[Menu and Toolbar](menu.md)**
|
2. **[Menu ant Toolbar](menu.md)**
|
||||||
3. [View modes and Filtration](view_mode.md)
|
3. [View modes and Filtration](view_mode.md)
|
||||||
4. [Configuration](config.md)
|
4. [Configuration](config.md)
|
||||||
5. [Adding new Number](new.md)
|
5. [Adding new Number](new.md)
|
||||||
|
|||||||
@@ -5,21 +5,21 @@ All the hotkeys in the application are listed here:
|
|||||||
|
|
||||||
[Main window](main.md)
|
[Main window](main.md)
|
||||||
|
|
||||||
| **Shortcut** | **Action** |
|
| **Комбінація** | **Дія** |
|
||||||
|---------------------------|-----------------------------|
|
|---------------------------|-----------------------------|
|
||||||
| **Number** ||
|
| **Номер** ||
|
||||||
| Alt + A | Add new Number |
|
| Alt + A | Add new Number |
|
||||||
| F5 | Update Number |
|
| F5 | Update Number |
|
||||||
| Shift + F5 | Update uncompleted |
|
| Shift + F5 | Update uncompleted |
|
||||||
| Alt + F4 | Exit application |
|
| Alt + F4 | Exit application |
|
||||||
| **Edit** ||
|
| **Змінити** ||
|
||||||
| Alt + Shift + G | New Group |
|
| Alt + Shift + G | New Group |
|
||||||
| Ctrl + Alt + G | Edit Groups |
|
| Ctrl + Alt + G | Edit Groups |
|
||||||
| Alt + P | Edit Phone numbers |
|
| Alt + P | Edit Phone numbers |
|
||||||
| Alt + S | Edit Search options |
|
| Alt + S | Edit Search options |
|
||||||
| Ctrl + F | Search |
|
| Ctrl + F | Search |
|
||||||
| Alt + Shift + C | Configuration |
|
| Alt + Shift + C | Configuration |
|
||||||
| **View** ||
|
| **Вигляд** ||
|
||||||
| Ctrl + I | Detailed Number view window |
|
| Ctrl + I | Detailed Number view window |
|
||||||
| Ctrl + L | Toggle Log |
|
| Ctrl + L | Toggle Log |
|
||||||
| | _View modes_ |
|
| | _View modes_ |
|
||||||
@@ -35,7 +35,7 @@ All the hotkeys in the application are listed here:
|
|||||||
|
|
||||||
[Search window](search.md)
|
[Search window](search.md)
|
||||||
|
|
||||||
| **Shortcut** | **Action** |
|
| **Комбінація** | **Дія** |
|
||||||
|----------------|-----------------------------|
|
|----------------|-----------------------------|
|
||||||
| Ctrl + S | Save search option |
|
| Ctrl + S | Save search option |
|
||||||
| Ctrl + O | Open saved search options |
|
| Ctrl + O | Open saved search options |
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
In the Adding new Number window, you must provide:
|
In the Adding new Number window, you must provide:
|
||||||
- Number type (inbound, outbound, undefined)
|
- Number type (inbound, outbound, undefined)
|
||||||
- sender's or receiver's phone number
|
- sender's or recoiver's phone number
|
||||||
- Group
|
- Group
|
||||||
- user comment
|
- user comment
|
||||||
- is the auto-update need or not
|
- is the auto-update need or not
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
## Nova Poshta: Tracker and Organizer
|
## Nova Poshta: Tracker and Organizer
|
||||||
|
|
||||||
### Plugins
|
### Plugins
|
||||||
Plugins are used to expand the functionality of the application. All plugins must be placed in the **plugins** folder and in its sub-folders. When loading plugins, the application scans the contents of all sub-folders of the folder **plugins** (only one level deep: plugins in nested sub-folders are ignored) and sorts all folders by name, then the plugins contained directly in the folder **plugins** are added. In all folders, plugins are sorted by file name.
|
Plugins are used to expand the functionality of the application. All plugins must be placed in the **plugins** folder and in its sub-folders. When loading plugins, the application scans the contents of all sub-folders of the folder **plugins** and sorts all folders by name, then the plugins contained directly in the folder **plugins** are added. In all folders, plugins are sorted by file name.
|
||||||
|
|
||||||
The plugin has an extension **jar** and must have the same name as the plugin's base class.
|
The plugin has an extension **jar** and must have the same name as the plugin's base class.
|
||||||
The plugin's base class must implement the **das.tools.np.entity.plugin.PluginInterface** interface:
|
The plugin's base class must implement the **das.tools.np.entity.plugin.PluginInterface** interface:
|
||||||
@@ -15,9 +15,9 @@ public interface PluginInterface {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The [NP Plugin Template](../../../plugins/template) project was created for convenience. It contains the interface and all necessary classes for work and you need to take it as a basis for creating your plugin.
|
The [NP Plugin Template](#ToDo: add link) project was created for convenience. It contains the interface and all necessary classes for work and you need to take it as a basis for creating your plugin.
|
||||||
|
|
||||||
Also the [NP Demo Plugin](../../../plugins/demo) project exists. It contains an example plugin that simply outputs all Numbers passed to it to the console.
|
Also the [NP Demo Plugin](#ToDo: add link) project exists. It contains an example plugin that simply outputs all Numbers passed to it to the console.
|
||||||
|
|
||||||
At the moment (v.1.*), the plugins work only for outputting information from the application.
|
At the moment (v.1.*), the plugins work only for outputting information from the application.
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ The application has the following viewing modes:
|
|||||||
- Numbers list
|
- Numbers list
|
||||||
- Numbers by Groups
|
- Numbers by Groups
|
||||||
- Numbers by date of creation
|
- Numbers by date of creation
|
||||||
- Numbers by the date of update
|
- TNumbers by the date of update
|
||||||
|
|
||||||
When changing the viewing mode, the list of Numbers will change accordingly. The [List items](main.md?element) view remain unchanged. It will also remain unchanged the [Context menu](main.md?context) of the list element.
|
When changing the viewing mode, the list of Numbers will change accordingly. The [List items](main.md?element) view remain unchanged. It will also remain unchanged the [Context menu](main.md?context) of the list element.
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
## Nova Poshta: Tracker and Organizer
|
## Nova Poshta: Tracker and Organizer
|
||||||
### _Desktop application to track, organize and manage parcels from Ukrainian delivery operator Nova Poshta_
|
### _Desktop application to track, organize and manage parcels from Ukrainian delivery operator Nova Poshta_
|
||||||
|
|
||||||
[Ukrainian](uk/help.md) and [English](en/help.md)
|
[Ukrainian](uk/help.md) and [English](en/help.md)
|
||||||
|
|
||||||
[README](../README.md) · [README українською](../README_ua.md)
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
## Нова пошта: трекер та органайзер
|
## Нова пошта: трекер та органайзер
|
||||||
|
|
||||||
### Плагіни
|
### Плагіни
|
||||||
Для розширення функціоналу додатка використовуються плагіни. Усі плагіни мають бути розміщені у теці **plugins** та у її підтеках. При завантаженні плагінів додаток переглядає вміст усіх підтек теки **plugins** (лише одного рівня вкладеності: плагіни у глибших підтеках ігноруються) та сортує всі теки за іменем, потім додаються плагіни, що містяться безпосередньо у теці **plugins**. У всіх теках плагіни сортуються за іменем файлу.
|
Для розширення функціоналу додатка використовуються плагіни. Усі плагіни мають бути розміщені у теці **plugins** та у її підтеках. При завантаженні плагінів додаток переглядає вміст усіх підтек теки **plugins** та сортує всі теки за іменем, потім додаються плагіни, що містяться безпосередньо у теці **plugins**. У всіх теках плагіни сортуються за іменем файлу.
|
||||||
|
|
||||||
Плагін має розширення **jar** та повинен мати ім'я таке ж, як у основного класу плагіну.
|
Плагін має розширення **jar** та повинен мати ім'я таке ж, як у основного класу плагіну.
|
||||||
Основний клас плагіну має імплементувати інтерфейс **das.tools.np.entity.plugin.PluginInterface**:
|
Основний клас плагіну має імплементувати інтерфейс **das.tools.np.entity.plugin.PluginInterface**:
|
||||||
@@ -15,9 +15,9 @@ public interface PluginInterface {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Для зручності було створено проект [NP Plugin Template](../../../plugins/template), який містить інтерфейс та всі необхідні для роботи класи і який потрібно брати за основу для створення свого плагіну.
|
Для зручності було створено проект [NP Plugin Template](#ToDo: add link), який містить інтерфейс та всі необхідні для роботи класи і який потрібно брати за основу для створення свого плагіну.
|
||||||
|
|
||||||
Також є проект [NP Demo Plugin](../../../plugins/demo), який містить приклад плагіну, що просто виводить усі передані йому ТТН в консоль.
|
Також є проект [NP Demo Plugin](#ToDo: add link), який містить приклад плагіну, що просто виводить усі передані йому ТТН в консоль.
|
||||||
|
|
||||||
На даний момент (v.1.*) плагіни працюють лише на виведення інформації з додатка.
|
На даний момент (v.1.*) плагіни працюють лише на виведення інформації з додатка.
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@
|
|||||||
<relativePath/>
|
<relativePath/>
|
||||||
</parent>
|
</parent>
|
||||||
<properties>
|
<properties>
|
||||||
<app.version>1.3</app.version>
|
<app.version>1.1</app.version>
|
||||||
<java.version>17</java.version>
|
<java.version>17</java.version>
|
||||||
<fxweavr.version>1.3.0</fxweavr.version>
|
<fxweavr.version>1.3.0</fxweavr.version>
|
||||||
<jackson.version>2.17.0</jackson.version>
|
<jackson.version>2.17.0</jackson.version>
|
||||||
|
|||||||
+2
-7
@@ -1,7 +1,2 @@
|
|||||||
@echo off
|
JFX_PATH=full_path_to_jfx
|
||||||
rem Full path to the JavaFX SDK (the folder that contains "lib")
|
start %JAVA_HOME%\bin\javaw.exe --module-path %JFX_PATH%\lib --add-modules javafx.controls,javafx.fxml -jar NovaPoshta.jar
|
||||||
set "JFX_PATH=full_path_to_jfx"
|
|
||||||
|
|
||||||
rem The application keeps DB, logs and plugins relative to its own folder
|
|
||||||
cd /d "%~dp0"
|
|
||||||
start "" "%JAVA_HOME%\bin\javaw.exe" -Djdk.gtk.version=2 --module-path "%JFX_PATH%\lib" --add-modules javafx.controls,javafx.fxml --add-exports javafx.base/com.sun.javafx.event=ALL-UNNAMED -jar NovaPoshta.jar
|
|
||||||
|
|||||||
+1
-5
@@ -1,7 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Full path to the JavaFX SDK (the folder that contains "lib")
|
|
||||||
JFX_PATH=/full/path/to/jfx
|
JFX_PATH=/full/path/to/jfx
|
||||||
|
${JAVA_HOME}/bin/java ${JFX_PATH}/lib --add-modules javafx.controls,javafx.fxm -jar NovaPoshta.jar &
|
||||||
# The application keeps DB, logs and plugins relative to its own folder
|
|
||||||
cd "$(dirname "$0")" || exit 1
|
|
||||||
"${JAVA_HOME}/bin/java" -Djdk.gtk.version=2 --module-path "${JFX_PATH}/lib" --add-modules javafx.controls,javafx.fxml --add-exports javafx.base/com.sun.javafx.event=ALL-UNNAMED -jar NovaPoshta.jar &
|
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
spring.main.banner-mode=off
|
|
||||||
spring.application.name=Nova Poshta Tracker
|
|
||||||
|
|
||||||
logging.level.das=off
|
|
||||||
logging.file.name=logs/NP.log
|
|
||||||
logging.logback.rollingpolicy.max-history=5
|
|
||||||
logging.logback.rollingpolicy.max-file-size=10MB
|
|
||||||
|
|
||||||
driverClassName=org.sqlite.JDBC
|
|
||||||
url=jdbc:sqlite:DB/np.db
|
|
||||||
spring.jpa.database-platform=org.hibernate.community.dialect.SQLiteDialect
|
|
||||||
spring.datasource.initSQL=PRAGMA foreign_keys = ON
|
|
||||||
#spring.datasource.username=your_username
|
|
||||||
#spring.datasource.password=your_password
|
|
||||||
app.transaction.timeout.seconds=10
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 527 B |
Binary file not shown.
|
Before Width: | Height: | Size: 767 B |
Binary file not shown.
|
Before Width: | Height: | Size: 4.1 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 485 B |
@@ -1,306 +0,0 @@
|
|||||||
# Default Language locale file
|
|
||||||
# Application
|
|
||||||
number.type.in=Inbound
|
|
||||||
number.type.out=Outbound
|
|
||||||
number.type.undef=Undefined
|
|
||||||
number.status.new=New
|
|
||||||
number.status.error=Error
|
|
||||||
number.status.processing=Delivering
|
|
||||||
number.status.waiting=Waiting
|
|
||||||
number.status.complete=Completed
|
|
||||||
# Number item
|
|
||||||
item.tooltip.type=Cargo type: %s
|
|
||||||
item.tooltip.status=Cargo status: %s
|
|
||||||
item.tooltip.added.date=Added date
|
|
||||||
item.tooltip.created.date=Created date
|
|
||||||
item.tooltip.updated.date=Last updated date
|
|
||||||
# Number info
|
|
||||||
info.tooltip.comment=User added comment
|
|
||||||
info.tooltip.descr=Cargo description
|
|
||||||
info.label.group=Group:
|
|
||||||
info.tooltip.group=Number's group
|
|
||||||
info.label.status=Status:
|
|
||||||
info.tooltip.status=Cargo status
|
|
||||||
info.label.type=Type:
|
|
||||||
info.tooltip.type=Cargo type
|
|
||||||
info.label.cost=Cost:
|
|
||||||
info.tooltip.cost=Cost of delivery, UAH
|
|
||||||
info.label.seats=Seats:
|
|
||||||
info.tooltip.seats=Seats amount
|
|
||||||
info.label.price=Price:
|
|
||||||
info.tooltip.price=Announced Price, UAH
|
|
||||||
info.label.weight=Weight:
|
|
||||||
info.tooltip.weight=Weight, kg
|
|
||||||
info.label.created=Created:
|
|
||||||
info.tooltip.created=Date created
|
|
||||||
info.label.scheduled=Scheduled:
|
|
||||||
info.tooltip.scheduled=Scheduled Delivery Date
|
|
||||||
info.label.updated=Updated:
|
|
||||||
info.tooltip.updated=Last updated date
|
|
||||||
info.label.recipient.name=For:
|
|
||||||
info.tooltip.recipient.name=Recipient Full Name
|
|
||||||
info.label.recipient.city=in:
|
|
||||||
info.tooltip.recipient.city=Recipient's city
|
|
||||||
info.label.recipient.warehouse=at:
|
|
||||||
info.tooltip.recipient.warehouse=Recipient's warehouse
|
|
||||||
info.label.sender.name=From:
|
|
||||||
info.tooltip.sender.name=Sender Full Name
|
|
||||||
info.label.sender.phone=(%s)
|
|
||||||
info.tooltip.sender.phone=Sender phone number
|
|
||||||
info.label.sender.city=in:
|
|
||||||
info.tooltip.sender.city=Sender's city
|
|
||||||
info.label.sender.warehouse=at:
|
|
||||||
info.tooltip.sender.warehouse=Sender's Warehouse
|
|
||||||
info.tooltip.barcode=Number's Barcode
|
|
||||||
info.button.tooltip.copy=Copy to clipboard
|
|
||||||
info.button.message.copy=Copied to clipboard
|
|
||||||
info.button.tooltip.open=Open in new window
|
|
||||||
info.label.detailed=Detailed Info:
|
|
||||||
info.field.detailed.name=Field Name
|
|
||||||
info.field.detailed.value=Field Value
|
|
||||||
info.field.menu.copy.name=Copy Field Name
|
|
||||||
info.field.menu.copy.value=Copy Field value
|
|
||||||
info.field.menu.copy.kv=Copy Key and Value as K=V
|
|
||||||
info.field.menu.copy.kv1=Copy Key and Value as K->V
|
|
||||||
info.field.menu.copy.all=Copy All Rows
|
|
||||||
# Fields
|
|
||||||
number.field.id=ID
|
|
||||||
number.field.number=Number
|
|
||||||
number.field.group=Group
|
|
||||||
number.field.appStatus=Number Status
|
|
||||||
number.field.numberType=Number Type
|
|
||||||
number.field.comment=User Comment
|
|
||||||
number.field.dateCreated=Date Created
|
|
||||||
number.field.weight=Weight
|
|
||||||
number.field.cost=Cost
|
|
||||||
number.field.seatsAmount=Seats Amount
|
|
||||||
number.field.description=Description
|
|
||||||
number.field.cargoType=Type
|
|
||||||
number.field.statusCode=Status Code
|
|
||||||
number.field.announcedPrice=Announced Price
|
|
||||||
number.field.scheduledDeliveryDate=Scheduled Delivery Date
|
|
||||||
number.field.recipientFullName=Recipient Full Name
|
|
||||||
number.field.cityRecipient=Recipient's City
|
|
||||||
number.field.warehouseRecipient=Recipient's Warehouse
|
|
||||||
number.field.warehouseRecipientNumber=Recipient Warehouse's Number
|
|
||||||
number.field.phoneRecipient=Recipient's Phone
|
|
||||||
number.field.recipientAddress=Recipient's Address
|
|
||||||
number.field.citySender=Sender's City
|
|
||||||
number.field.phoneSender=Sender's Phone
|
|
||||||
number.field.warehouseSender=Sender's Warehouse
|
|
||||||
number.field.senderAddress=Sender's Address
|
|
||||||
number.field.fullData=Response Full Data
|
|
||||||
number.field.created=Created Date
|
|
||||||
number.field.updated=Last Updated Date
|
|
||||||
number.field.groupName=Group name
|
|
||||||
number.field.descr=Describe*
|
|
||||||
number.field.autoUpdated=Auto Update
|
|
||||||
# Config window
|
|
||||||
config.title=Configuration:
|
|
||||||
config.label.url=API URL:
|
|
||||||
config.label.phone=Phone:
|
|
||||||
config.label.language=Language:
|
|
||||||
config.label.maxHistory=Search history records:
|
|
||||||
config.tooltip.maxHistory=Search history maximum records: from %d to %d\nZero value means 'Do not save search history'
|
|
||||||
config.label.maxLogRecords=LOG records:
|
|
||||||
config.label.autoUpdate=Enable Auto Update
|
|
||||||
config.alert.title=Error in config
|
|
||||||
config.alert.message.wrongApiUrl=Field must contain valid NP's API endpoint value
|
|
||||||
config.alert.message.wrongPhone=Field must contain valid phone number
|
|
||||||
# Detailed Info window
|
|
||||||
detail.title=Detailed info for %s
|
|
||||||
# Add Number window
|
|
||||||
add.title=Adding new number
|
|
||||||
add.label.number=Number:
|
|
||||||
add.label.type=Type:
|
|
||||||
add.label.phone=Phone:
|
|
||||||
add.label.update=Auto Update
|
|
||||||
add.label.another=Add another
|
|
||||||
add.label.comment=Comment:
|
|
||||||
add.label.group=Group:
|
|
||||||
add.edit.comment.prompt=Comment for new Cargo Number (could be empty)
|
|
||||||
add.alert.title.error=Error
|
|
||||||
add.alert.message.WrongNumber=Wrong number
|
|
||||||
add.alert.message.NumberAlreadyAdded=Number '%s' already added
|
|
||||||
add.alert.message.WrongPhone=Wrong phone
|
|
||||||
add.tooltip.AddPhone=Add this phone into DB
|
|
||||||
add.tooltip.EditPhones=Edit all phones
|
|
||||||
add.message.PhoneAdded=The phone '%s' have been added into DB
|
|
||||||
add.message.PhoneExists=The phone '%s' already exists in DB
|
|
||||||
# Edit Phones window
|
|
||||||
edit.phones.title=Edit all pones
|
|
||||||
edit.phones.dialog.title=Editing Phones
|
|
||||||
edit.phones.newPhone=New Phone number:
|
|
||||||
edit.phones.alert.title=Wrong phone number '%s'
|
|
||||||
edit.phones.alert.message=There was a wrong phone number entered.\nPlease correct and try again.
|
|
||||||
edit.phones.confirm.title=Confirm deletion
|
|
||||||
edit.phones.confirm.header=Confirm deletion of '%s'
|
|
||||||
edit.phones.confirm.message=Are you sure to remove the phone?
|
|
||||||
edit.phones.alert.phoneUsed.title=The '%s' phone is used in number(s)
|
|
||||||
edit.phones.alert.phoneUsed.message=Phone used in number(s). So it couldn't be deleted
|
|
||||||
# Edit Search Options window
|
|
||||||
edit.options.action.moveUp=Move Up
|
|
||||||
edit.options.action.moveDn=Move Down
|
|
||||||
edit.options.action.add=Add item
|
|
||||||
edit.options.action.edit=Edit item
|
|
||||||
edit.options.action.apply=Apply changes
|
|
||||||
edit.options.action.remove=Remove item
|
|
||||||
edit.options.title=Edit all pones
|
|
||||||
edit.options.confirm.title=Confirm deletion
|
|
||||||
edit.options.confirm.header=Confirm deletion of '%s'
|
|
||||||
edit.options.confirm.message=Are you sure to remove the Search Option?
|
|
||||||
edit.options.alert.title=Wrong parameter
|
|
||||||
edit.options.alert.message=The Search Options' name couldn't be empty.\nPlease correct and try again.
|
|
||||||
edit.options.toast.message.applied=Changes have been applied
|
|
||||||
edit.options.toast.message.noChanges=There were no changes
|
|
||||||
edit.options.toast.message.removed=The option '%s' have been removed
|
|
||||||
edit.options.name.newOption=New search options
|
|
||||||
edit.options.label.name=Name:
|
|
||||||
edit.options.label.text=Search text:
|
|
||||||
# Edit Groups window
|
|
||||||
edit.groups.title=Edit all groups
|
|
||||||
edit.groups.dialog.title=Editing Groups
|
|
||||||
edit.groups.newGroup=New Group name:
|
|
||||||
edit.groups.alert.title=Group '%s' already exists
|
|
||||||
edit.groups.alert.message=Group name you have been entered already exists.\nEnter new one please.
|
|
||||||
edit.groups.confirm.title=Confirm deletion
|
|
||||||
edit.groups.confirm.header=Confirm deletion of '%s'
|
|
||||||
edit.groups.confirm.message=Are you sure to remove the Group?
|
|
||||||
edit.groups.toast.message.removed=The Group '%s' have been removed
|
|
||||||
edit.groups.alert.notEmpty.title=Group '%s' is not empty
|
|
||||||
edit.groups.alert.notEmpty.message=The Group contains %d numbers.\nNot empty group couldn't be deleted.
|
|
||||||
# Search window
|
|
||||||
search.window.title=Search
|
|
||||||
search.fields.tooltip=Selected fields:\n%s
|
|
||||||
search.fields.tooltip.selectAll=Select all fields
|
|
||||||
search.fields.tooltip.SelectNone=Clear selected fields
|
|
||||||
search.label.what=Search for:
|
|
||||||
search.edit.what.prompt=Enter search text
|
|
||||||
search.label.searchOptions=Options:
|
|
||||||
search.button=Search
|
|
||||||
search.label.options=Search options
|
|
||||||
search.button.save=Save search options
|
|
||||||
search.button.restore=Restore search options
|
|
||||||
search.label.results=Search Results
|
|
||||||
search.button.plugins.tooltip=Send numbers list to Plugin
|
|
||||||
search.button.simpleSearch=Simple search
|
|
||||||
search.button.extSearch=in Extended search
|
|
||||||
search.button.searchArchive=in Archive
|
|
||||||
search.button.sendAllItems=Send all items
|
|
||||||
search.button.sendAllItems.tooltip=Send all items to plugin (if checked) or selected items only
|
|
||||||
search.alert.input.title=Search name
|
|
||||||
search.alert.input.header=Enter new search name:
|
|
||||||
search.alert.input.content=Name:
|
|
||||||
search.alert.error.header=Error saving options
|
|
||||||
search.alert.error.message.alreadyExists=Name '%s' already exists. Please enter new one.
|
|
||||||
search.alert.select.title=Select option
|
|
||||||
search.alert.select.header=Search option name selection
|
|
||||||
search.alert.select.content=Select name:
|
|
||||||
search.alert.info.results.header=Search Results
|
|
||||||
search.alert.info.results.content=There are no results was found for your request
|
|
||||||
search.log.numbersFound=For search query '%s' found %d number(s)
|
|
||||||
search.log.numbersNotFound=For search query '%s' doesn't found any number(s)
|
|
||||||
search.log.searchMethodChanged=Search results have been cleared due to search method was changed from 'Search in Archive' to 'Regular Search'
|
|
||||||
# search options pane
|
|
||||||
options.label.group=Group
|
|
||||||
options.label.groupName=Group Name
|
|
||||||
options.label.weight=Weight
|
|
||||||
options.label.cost=Cost
|
|
||||||
options.label.price=Announced Price
|
|
||||||
options.label.seats=Seats Amount
|
|
||||||
options.label.numberStatus=Number Status
|
|
||||||
options.label.numberType=Number Type
|
|
||||||
options.label.status=Status
|
|
||||||
options.label.createDate=Create date
|
|
||||||
options.label.scheduledDate=Scheduled delivery date
|
|
||||||
# Main Menu
|
|
||||||
menu.group.number=Numbers
|
|
||||||
menu.number.add=Add number
|
|
||||||
menu.number.update=Update number
|
|
||||||
menu.number.updateUncompleted=Update Uncompleted numbers
|
|
||||||
menu.number.moveToArchive=Move to archive
|
|
||||||
menu.number.addToCustom=Add to custom view
|
|
||||||
menu.number.restoreFromArchive=Restore from archive
|
|
||||||
menu.number.exit=Exit
|
|
||||||
menu.group.moveToGroup=Move to Group
|
|
||||||
menu.group.edit=Edit
|
|
||||||
menu.edit.newGroup=New Group
|
|
||||||
menu.edit.editGroups=Edit Groups
|
|
||||||
menu.edit.editPhones=Edit Phones
|
|
||||||
menu.edit.editSearchOptions=Edit Search Options
|
|
||||||
menu.edit.search=Search
|
|
||||||
menu.edit.config=Configuration
|
|
||||||
menu.group.view=View
|
|
||||||
menu.group.viewMode=View Mode
|
|
||||||
menu.group.filterMode=Filtering Mode
|
|
||||||
menu.view.detail=Detailed view
|
|
||||||
menu.view.showLog=Show Log
|
|
||||||
menu.group.plugins=Plugins
|
|
||||||
menu.plugins.loadPlugins=Load Plugins
|
|
||||||
menu.group.windows=Windows
|
|
||||||
menu.windows.customList=Custom numbers list
|
|
||||||
menu.windows.archivedList=Archived numbers
|
|
||||||
menu.windows.cascade=Show all as cascade
|
|
||||||
menu.windows.closeAll=Close all windows
|
|
||||||
menu.group.help=Help
|
|
||||||
menu.help.about=About
|
|
||||||
menu.log.copy=Copy LOG messages
|
|
||||||
menu.log.clear=Clear LOG messages
|
|
||||||
# Main window alerts
|
|
||||||
alert.firstLaunch.title=First launch
|
|
||||||
alert.firstLaunch.header=Welcome! There is a first launch of the Application.
|
|
||||||
alert.firstLaunch.message=Please fill all necessary configuration fields.
|
|
||||||
alert.NoNumber.title=No Uncompleted numbers
|
|
||||||
alert.NoNumber.message=There is no Uncompleted numbers in list
|
|
||||||
alert.log.NoNumber.message=Auto Update: There is no Uncompleted numbers in list
|
|
||||||
alert.CouldNotExit.title=Couldn't exit
|
|
||||||
alert.CouldNotExit.message=There is an opened windows potentially with unsaved data.\nClose it and try again
|
|
||||||
alert.archive.moveTo.header.numberExists=Error moving number to archive
|
|
||||||
alert.archive.moveTo.content.numberExists=The number '%s' already exists in archive.\nRemove it first and try again.
|
|
||||||
alert.archive.restore.header.numberExists=Error restoring number from archive
|
|
||||||
alert.archive.restore.content.numberExists=The number '%s' already exists in database.\nRestoring impossible
|
|
||||||
alert.archive.restore.content.numberNotFoundInArchive=The number '%s' doesn't exist in archive
|
|
||||||
alert.archive.title.confirmDelete=Confirm deletion
|
|
||||||
alert.archive.header.confirmDelete=Are you sure to permanently remove number '%s'?\nThis is an irreversible operation, it will be impossible to restore number.
|
|
||||||
alert.log.number.movedToArchive=The number '%s' moved to archive
|
|
||||||
alert.log.number.restoredFromArchive=The number '%s' restored from archive
|
|
||||||
alert.log.gettingResponse=Error getting response:
|
|
||||||
alert.message.gettingResponse=There was error occurred while getting data from server
|
|
||||||
# Main window view modes
|
|
||||||
label.vm.tooltip=View mode
|
|
||||||
vm.numbers=Numbers
|
|
||||||
vm.groups=Groups
|
|
||||||
vm.calendarUpdate=Calendar (Update)
|
|
||||||
vm.calendarCreate=Calendar (Create)
|
|
||||||
# Main window Filtering Mode
|
|
||||||
label.fm.filter.tooltip=View filter
|
|
||||||
fm.all=All
|
|
||||||
fm.uncompleted=Uncompleted
|
|
||||||
fm.inbound=Inbound
|
|
||||||
fm.outbound=Outbound
|
|
||||||
# Add Group window
|
|
||||||
group.add.title=Adding new group
|
|
||||||
group.add.label.name=Name:
|
|
||||||
group.alert.exists.title=Group already exists
|
|
||||||
group.alert.exists.message=Group '%s' already exists
|
|
||||||
group.alert.EmptyName.title=Empty group name
|
|
||||||
group.alert.EmptyName.message=Group name couldn't be empty
|
|
||||||
group.message.newGroup=Added new group '%s'
|
|
||||||
group.message.movedToGroup=Number '%s' moved to group '%s'
|
|
||||||
group.alert.cantMove.header=Can not move number
|
|
||||||
group.alert.cantMove.message=Can not move Number '%s'\nto Group it's already in
|
|
||||||
# List window commons
|
|
||||||
lw.menu.ctx.remove=Remove
|
|
||||||
lw.menu.ctx.clear=Clear
|
|
||||||
lw.alert.title=Deletion confirmation
|
|
||||||
# Custom Number List window
|
|
||||||
cnl.title=Custom Numbers List window
|
|
||||||
cnl.label=Numbers List:
|
|
||||||
cnl.alert.message=Are you sure to remove %d custom numbers from Custom List?
|
|
||||||
# Archived Number List window
|
|
||||||
anl.title=Archived Numbers List window
|
|
||||||
anl.label=Numbers List:
|
|
||||||
anl.alert.message=Are you sure to remove %d archived numbers?
|
|
||||||
anl.alert.content=This operation couldn't be reverted!
|
|
||||||
anl.log.numberRemoved=The number '%s' have been permanently removed
|
|
||||||
anl.log.numbersCleared=There was permanently removed all archived numbers
|
|
||||||
@@ -1,306 +0,0 @@
|
|||||||
# English Language locale file
|
|
||||||
# Application
|
|
||||||
number.type.in=Inbound
|
|
||||||
number.type.out=Outbound
|
|
||||||
number.type.undef=Undefined
|
|
||||||
number.status.new=New
|
|
||||||
number.status.error=Error
|
|
||||||
number.status.processing=Delivering
|
|
||||||
number.status.waiting=Waiting
|
|
||||||
number.status.complete=Completed
|
|
||||||
# Number item
|
|
||||||
item.tooltip.type=Cargo type: %s
|
|
||||||
item.tooltip.status=Cargo status: %s
|
|
||||||
item.tooltip.added.date=Added date
|
|
||||||
item.tooltip.created.date=Created date
|
|
||||||
item.tooltip.updated.date=Last updated date
|
|
||||||
# Number info
|
|
||||||
info.tooltip.comment=User added comment
|
|
||||||
info.tooltip.descr=Cargo description
|
|
||||||
info.label.group=Group:
|
|
||||||
info.tooltip.group=Number's group
|
|
||||||
info.label.status=Status:
|
|
||||||
info.tooltip.status=Cargo status
|
|
||||||
info.label.type=Type:
|
|
||||||
info.tooltip.type=Cargo type
|
|
||||||
info.label.cost=Cost:
|
|
||||||
info.tooltip.cost=Cost of delivery, UAH
|
|
||||||
info.label.seats=Seats:
|
|
||||||
info.tooltip.seats=Seats amount
|
|
||||||
info.label.price=Price:
|
|
||||||
info.tooltip.price=Announced Price, UAH
|
|
||||||
info.label.weight=Weight:
|
|
||||||
info.tooltip.weight=Weight, kg
|
|
||||||
info.label.created=Created:
|
|
||||||
info.tooltip.created=Date created
|
|
||||||
info.label.scheduled=Scheduled:
|
|
||||||
info.tooltip.scheduled=Scheduled Delivery Date
|
|
||||||
info.label.updated=Updated:
|
|
||||||
info.tooltip.updated=Last updated date
|
|
||||||
info.label.recipient.name=For:
|
|
||||||
info.tooltip.recipient.name=Recipient Full Name
|
|
||||||
info.label.recipient.city=in:
|
|
||||||
info.tooltip.recipient.city=Recipient's city
|
|
||||||
info.label.recipient.warehouse=at:
|
|
||||||
info.tooltip.recipient.warehouse=Recipient's warehouse
|
|
||||||
info.label.sender.name=From:
|
|
||||||
info.tooltip.sender.name=Sender Full Name
|
|
||||||
info.label.sender.phone=(%s)
|
|
||||||
info.tooltip.sender.phone=Sender phone number
|
|
||||||
info.label.sender.city=in:
|
|
||||||
info.tooltip.sender.city=Sender's city
|
|
||||||
info.label.sender.warehouse=at:
|
|
||||||
info.tooltip.sender.warehouse=Sender's Warehouse
|
|
||||||
info.tooltip.barcode=Number's Barcode
|
|
||||||
info.button.tooltip.copy=Copy to clipboard
|
|
||||||
info.button.message.copy=Copied to clipboard
|
|
||||||
info.button.tooltip.open=Open in new window
|
|
||||||
info.label.detailed=Detailed Info:
|
|
||||||
info.field.detailed.name=Field Name
|
|
||||||
info.field.detailed.value=Field Value
|
|
||||||
info.field.menu.copy.name=Copy Field Name
|
|
||||||
info.field.menu.copy.value=Copy Field value
|
|
||||||
info.field.menu.copy.kv=Copy Key and Value as K=V
|
|
||||||
info.field.menu.copy.kv1=Copy Key and Value as K->V
|
|
||||||
info.field.menu.copy.all=Copy All Rows
|
|
||||||
# Fields
|
|
||||||
number.field.id=ID
|
|
||||||
number.field.number=Number
|
|
||||||
number.field.group=Group
|
|
||||||
number.field.appStatus=Number Status
|
|
||||||
number.field.numberType=Number Type
|
|
||||||
number.field.comment=User Comment
|
|
||||||
number.field.dateCreated=Date Created
|
|
||||||
number.field.weight=Weight
|
|
||||||
number.field.cost=Cost
|
|
||||||
number.field.seatsAmount=Seats Amount
|
|
||||||
number.field.description=Description
|
|
||||||
number.field.cargoType=Type
|
|
||||||
number.field.statusCode=Status Code
|
|
||||||
number.field.announcedPrice=Announced Price
|
|
||||||
number.field.scheduledDeliveryDate=Scheduled Delivery Date
|
|
||||||
number.field.recipientFullName=Recipient Full Name
|
|
||||||
number.field.cityRecipient=Recipient's City
|
|
||||||
number.field.warehouseRecipient=Recipient's Warehouse
|
|
||||||
number.field.warehouseRecipientNumber=Recipient Warehouse's Number
|
|
||||||
number.field.phoneRecipient=Recipient's Phone
|
|
||||||
number.field.recipientAddress=Recipient's Address
|
|
||||||
number.field.citySender=Sender's City
|
|
||||||
number.field.phoneSender=Sender's Phone
|
|
||||||
number.field.warehouseSender=Sender's Warehouse
|
|
||||||
number.field.senderAddress=Sender's Address
|
|
||||||
number.field.fullData=Response Full Data
|
|
||||||
number.field.created=Created Date
|
|
||||||
number.field.updated=Last Updated Date
|
|
||||||
number.field.groupName=Group name
|
|
||||||
number.field.descr=Describe*
|
|
||||||
number.field.autoUpdated=Auto Update
|
|
||||||
# Config window
|
|
||||||
config.title=Configuration:
|
|
||||||
config.label.url=API URL:
|
|
||||||
config.label.phone=Phone:
|
|
||||||
config.label.language=Language:
|
|
||||||
config.label.maxHistory=Search history records:
|
|
||||||
config.tooltip.maxHistory=Search history maximum records: from %d to %d\nZero value means 'Do not save search history'
|
|
||||||
config.label.maxLogRecords=LOG records:
|
|
||||||
config.label.autoUpdate=Enable Auto Update
|
|
||||||
config.alert.title=Error in config
|
|
||||||
config.alert.message.wrongApiUrl=Field must contain valid NP's API endpoint value
|
|
||||||
config.alert.message.wrongPhone=Field must contain valid phone number
|
|
||||||
# Detailed Info window
|
|
||||||
detail.title=Detailed info for %s
|
|
||||||
# Add Number window
|
|
||||||
add.title=Adding new number
|
|
||||||
add.label.number=Number:
|
|
||||||
add.label.type=Type:
|
|
||||||
add.label.phone=Phone:
|
|
||||||
add.label.update=Auto Update
|
|
||||||
add.label.another=Add another
|
|
||||||
add.label.comment=Comment:
|
|
||||||
add.label.group=Group:
|
|
||||||
add.edit.comment.prompt=Comment for new Cargo Number (could be empty)
|
|
||||||
add.alert.title.error=Error
|
|
||||||
add.alert.message.WrongNumber=Wrong number
|
|
||||||
add.alert.message.NumberAlreadyAdded=Number '%s' already added
|
|
||||||
add.alert.message.WrongPhone=Wrong phone
|
|
||||||
add.tooltip.AddPhone=Add this phone into DB
|
|
||||||
add.tooltip.EditPhones=Edit all phones
|
|
||||||
add.message.PhoneAdded=The phone '%s' have been added into DB
|
|
||||||
add.message.PhoneExists=The phone '%s' already exists in DB
|
|
||||||
# Edit Phones window
|
|
||||||
edit.phones.title=Edit all pones
|
|
||||||
edit.phones.dialog.title=Editing Phones
|
|
||||||
edit.phones.newPhone=New Phone number:
|
|
||||||
edit.phones.alert.title=Wrong phone number '%s'
|
|
||||||
edit.phones.alert.message=There was a wrong phone number entered.\nPlease correct and try again.
|
|
||||||
edit.phones.confirm.title=Confirm deletion
|
|
||||||
edit.phones.confirm.header=Confirm deletion of '%s'
|
|
||||||
edit.phones.confirm.message=Are you sure to remove the phone?
|
|
||||||
edit.phones.alert.phoneUsed.title=The '%s' phone is used in number(s)
|
|
||||||
edit.phones.alert.phoneUsed.message=Phone used in number(s). So it couldn't be deleted
|
|
||||||
# Edit Search Options window
|
|
||||||
edit.options.action.moveUp=Move Up
|
|
||||||
edit.options.action.moveDn=Move Down
|
|
||||||
edit.options.action.add=Add item
|
|
||||||
edit.options.action.edit=Edit item
|
|
||||||
edit.options.action.apply=Apply changes
|
|
||||||
edit.options.action.remove=Remove item
|
|
||||||
edit.options.title=Edit all pones
|
|
||||||
edit.options.confirm.title=Confirm deletion
|
|
||||||
edit.options.confirm.header=Confirm deletion of '%s'
|
|
||||||
edit.options.confirm.message=Are you sure to remove the Search Option?
|
|
||||||
edit.options.alert.title=Wrong parameter
|
|
||||||
edit.options.alert.message=The Search Options' name couldn't be empty.\nPlease correct and try again.
|
|
||||||
edit.options.toast.message.applied=Changes have been applied
|
|
||||||
edit.options.toast.message.noChanges=There were no changes
|
|
||||||
edit.options.toast.message.removed=The option '%s' have been removed
|
|
||||||
edit.options.name.newOption=New search options
|
|
||||||
edit.options.label.name=Name:
|
|
||||||
edit.options.label.text=Search text:
|
|
||||||
# Edit Groups window
|
|
||||||
edit.groups.title=Edit all groups
|
|
||||||
edit.groups.dialog.title=Editing Groups
|
|
||||||
edit.groups.newGroup=New Group name:
|
|
||||||
edit.groups.alert.title=Group '%s' already exists
|
|
||||||
edit.groups.alert.message=Group name you have been entered already exists.\nEnter new one please.
|
|
||||||
edit.groups.confirm.title=Confirm deletion
|
|
||||||
edit.groups.confirm.header=Confirm deletion of '%s'
|
|
||||||
edit.groups.confirm.message=Are you sure to remove the Group?
|
|
||||||
edit.groups.toast.message.removed=The Group '%s' have been removed
|
|
||||||
edit.groups.alert.notEmpty.title=Group '%s' is not empty
|
|
||||||
edit.groups.alert.notEmpty.message=The Group contains %d numbers.\nNot empty group couldn't be deleted.
|
|
||||||
# Search window
|
|
||||||
search.window.title=Search
|
|
||||||
search.fields.tooltip=Selected fields:\n%s
|
|
||||||
search.fields.tooltip.selectAll=Select all fields
|
|
||||||
search.fields.tooltip.SelectNone=Clear selected fields
|
|
||||||
search.label.what=Search for:
|
|
||||||
search.edit.what.prompt=Enter search text
|
|
||||||
search.label.searchOptions=Search in:
|
|
||||||
search.button=Search
|
|
||||||
search.label.options=Search options
|
|
||||||
search.button.save=Save search options
|
|
||||||
search.button.restore=Restore search options
|
|
||||||
search.label.results=Search Results
|
|
||||||
search.button.plugins.tooltip=Send numbers list to Plugin
|
|
||||||
search.button.simpleSearch=Simple search
|
|
||||||
search.button.extSearch=in Extended search
|
|
||||||
search.button.searchArchive=in Archive
|
|
||||||
search.button.sendAllItems=Send all items
|
|
||||||
search.button.sendAllItems.tooltip=Send all items to plugin (if checked) or selected items only
|
|
||||||
search.alert.input.title=Search name
|
|
||||||
search.alert.input.header=Enter new search name:
|
|
||||||
search.alert.input.content=Name:
|
|
||||||
search.alert.error.header=Error saving options
|
|
||||||
search.alert.error.message.alreadyExists=Name '%s' already exists. Please enter new one.
|
|
||||||
search.alert.select.title=Select option
|
|
||||||
search.alert.select.header=Search option name selection
|
|
||||||
search.alert.select.content=Select name:
|
|
||||||
search.alert.info.results.header=Search Results
|
|
||||||
search.alert.info.results.content=There are no results was found for your request
|
|
||||||
search.log.numbersFound=For search query '%s' found %d number(s)
|
|
||||||
search.log.numbersNotFound=For search query '%s' doesn't found any number(s)
|
|
||||||
search.log.searchMethodChanged=Search results have been cleared due to search method was changed from 'Search in Archive' to 'Regular Search'
|
|
||||||
# search options pane
|
|
||||||
options.label.group=Group
|
|
||||||
options.label.groupName=Group Name
|
|
||||||
options.label.weight=Weight
|
|
||||||
options.label.cost=Cost
|
|
||||||
options.label.price=Announced Price
|
|
||||||
options.label.seats=Seats Amount
|
|
||||||
options.label.numberStatus=Number Status
|
|
||||||
options.label.numberType=Number Type
|
|
||||||
options.label.status=Status
|
|
||||||
options.label.createDate=Create date
|
|
||||||
options.label.scheduledDate=Scheduled delivery date
|
|
||||||
# Main Menu
|
|
||||||
menu.group.number=Numbers
|
|
||||||
menu.number.add=Add number
|
|
||||||
menu.number.update=Update number
|
|
||||||
menu.number.updateUncompleted=Update Uncompleted numbers
|
|
||||||
menu.number.moveToArchive=Move to archive
|
|
||||||
menu.number.addToCustom=Add to custom view
|
|
||||||
menu.number.restoreFromArchive=Restore from archive
|
|
||||||
menu.number.exit=Exit
|
|
||||||
menu.group.moveToGroup=Move to Group
|
|
||||||
menu.group.edit=Edit
|
|
||||||
menu.edit.newGroup=New Group
|
|
||||||
menu.edit.editGroups=Edit Groups
|
|
||||||
menu.edit.editPhones=Edit Phones
|
|
||||||
menu.edit.editSearchOptions=Edit Search Options
|
|
||||||
menu.edit.search=Search
|
|
||||||
menu.edit.config=Configuration
|
|
||||||
menu.group.view=View
|
|
||||||
menu.group.viewMode=View Mode
|
|
||||||
menu.group.filterMode=Filtering Mode
|
|
||||||
menu.view.detail=Detailed view
|
|
||||||
menu.view.showLog=Show Log
|
|
||||||
menu.group.plugins=Plugins
|
|
||||||
menu.plugins.loadPlugins=Load Plugins
|
|
||||||
menu.group.windows=Windows
|
|
||||||
menu.windows.customList=Custom numbers list
|
|
||||||
menu.windows.archivedList=Archived numbers
|
|
||||||
menu.windows.cascade=Show all as cascade
|
|
||||||
menu.windows.closeAll=Close all windows
|
|
||||||
menu.group.help=Help
|
|
||||||
menu.help.about=About
|
|
||||||
menu.log.copy=Copy LOG messages
|
|
||||||
menu.log.clear=Clear LOG messages
|
|
||||||
# Main window alerts
|
|
||||||
alert.firstLaunch.title=First launch
|
|
||||||
alert.firstLaunch.header=Welcome! There is a first launch of the Application.
|
|
||||||
alert.firstLaunch.message=Please fill all necessary configuration fields.
|
|
||||||
alert.NoNumber.title=No Uncompleted numbers
|
|
||||||
alert.NoNumber.message=There is no Uncompleted numbers in list
|
|
||||||
alert.log.NoNumber.message=Auto Update: There is no Uncompleted numbers in list
|
|
||||||
alert.CouldNotExit.title=Couldn't exit
|
|
||||||
alert.CouldNotExit.message=There is an opened windows potentially with unsaved data.\nClose it and try again
|
|
||||||
alert.archive.moveTo.header.numberExists=Error moving number to archive
|
|
||||||
alert.archive.moveTo.content.numberExists=The number '%s' already exists in archive.\nRemove it first and try again.
|
|
||||||
alert.archive.restore.header.numberExists=Error restoring number from archive
|
|
||||||
alert.archive.restore.content.numberExists=The number '%s' already exists in database.\nRestoring impossible
|
|
||||||
alert.archive.restore.content.numberNotFoundInArchive=The number '%s' doesn't exists in archive
|
|
||||||
alert.archive.title.confirmDelete=Confirm deletion
|
|
||||||
alert.archive.header.confirmDelete=Are you sure to permanently remove number '%s'?\nThis is an irreversible operation, it will be impossible to restore number.
|
|
||||||
alert.log.number.movedToArchive=The number '%s' moved to archive
|
|
||||||
alert.log.number.restoredFromArchive=The number '%s' restored from archive
|
|
||||||
alert.log.gettingResponse=Error getting response:
|
|
||||||
alert.message.gettingResponse=There was error occurred while getting data from server
|
|
||||||
# Main window view modes
|
|
||||||
label.vm.tooltip=View mode
|
|
||||||
vm.numbers=Numbers
|
|
||||||
vm.groups=Groups
|
|
||||||
vm.calendarUpdate=Calendar (Update)
|
|
||||||
vm.calendarCreate=Calendar (Create)
|
|
||||||
# Main window Filtering Mode
|
|
||||||
label.fm.filter.tooltip=View filter
|
|
||||||
fm.all=All
|
|
||||||
fm.uncompleted=Uncompleted
|
|
||||||
fm.inbound=Inbound
|
|
||||||
fm.outbound=Outbound
|
|
||||||
# Add Group window
|
|
||||||
group.add.title=Adding new group
|
|
||||||
group.add.label.name=Name:
|
|
||||||
group.alert.exists.title=Group already exists
|
|
||||||
group.alert.exists.message=Group '%s' already exists
|
|
||||||
group.alert.EmptyName.title=Empty group name
|
|
||||||
group.alert.EmptyName.message=Group name couldn't be empty
|
|
||||||
group.message.newGroup=Added new group '%s'
|
|
||||||
group.message.movedToGroup=Number '%s' moved to group '%s'
|
|
||||||
group.alert.cantMove.header=Can not move number
|
|
||||||
group.alert.cantMove.message=Can not move Number '%s'\nto Group it's already in
|
|
||||||
# List window commons
|
|
||||||
lw.menu.ctx.remove=Remove
|
|
||||||
lw.menu.ctx.clear=Clear
|
|
||||||
lw.alert.title=Deletion confirmation
|
|
||||||
# Custom Number List window
|
|
||||||
cnl.title=Custom Numbers List window
|
|
||||||
cnl.label=Numbers List:
|
|
||||||
cnl.alert.message=Are you sure to remove %d custom numbers from Custom List?
|
|
||||||
# Archived Number List window
|
|
||||||
anl.title=Archived Numbers List window
|
|
||||||
anl.label=Numbers List:
|
|
||||||
anl.alert.message=Are you sure to remove %d archived numbers?
|
|
||||||
anl.alert.content=This operation couldn't be reverted!
|
|
||||||
anl.log.numberRemoved=The number '%s' have been permanently removed
|
|
||||||
anl.log.numbersCleared=There was permanently removed all archived numbers
|
|
||||||
@@ -1,306 +0,0 @@
|
|||||||
# Ukrainian Language locale file
|
|
||||||
# Application
|
|
||||||
number.type.in=Вхідний
|
|
||||||
number.type.out=Вихідний
|
|
||||||
number.type.undef=Не визначено
|
|
||||||
number.status.new=Новий
|
|
||||||
number.status.error=Помилка
|
|
||||||
number.status.processing=Доставляється
|
|
||||||
number.status.waiting=Очікує
|
|
||||||
number.status.complete=Завершено
|
|
||||||
# Number item
|
|
||||||
item.tooltip.type=Тип вантажу: %s
|
|
||||||
item.tooltip.status=Стан вантажу: %s
|
|
||||||
item.tooltip.added.date=Дата додавання у БД
|
|
||||||
item.tooltip.created.date=Дата створення у НП
|
|
||||||
item.tooltip.updated.date=Дата останнього оновлення
|
|
||||||
# Number info
|
|
||||||
info.tooltip.comment=Коментар до вантажу, доданий користувачем
|
|
||||||
info.tooltip.descr=Опис вантажу
|
|
||||||
info.label.group=Група:
|
|
||||||
info.tooltip.group=Група, до якої внесено номер
|
|
||||||
info.label.status=Стан:
|
|
||||||
info.tooltip.status=Стан вантажу
|
|
||||||
info.label.type=Тип:
|
|
||||||
info.tooltip.type=Тип вантажу
|
|
||||||
info.label.cost=Вартість:
|
|
||||||
info.tooltip.cost=Вартість доставки, грн
|
|
||||||
info.label.seats=Місця:
|
|
||||||
info.tooltip.seats=Кількість місць
|
|
||||||
info.label.price=Ціна:
|
|
||||||
info.tooltip.price=Оголошена ціна, грн
|
|
||||||
info.label.weight=Вага:
|
|
||||||
info.tooltip.weight=Вага вантажу, кг
|
|
||||||
info.label.created=Створено:
|
|
||||||
info.tooltip.created=Дата створення
|
|
||||||
info.label.scheduled=Заплановано:
|
|
||||||
info.tooltip.scheduled=Планова дата доставки
|
|
||||||
info.label.updated=Оновлено:
|
|
||||||
info.tooltip.updated=Дата останнього оновлення
|
|
||||||
info.label.recipient.name=Для:
|
|
||||||
info.tooltip.recipient.name=Повне ім'я отримувача
|
|
||||||
info.label.recipient.city=у:
|
|
||||||
info.tooltip.recipient.city=Місто отримувача
|
|
||||||
info.label.recipient.warehouse=до:
|
|
||||||
info.tooltip.recipient.warehouse=Склад отримувача
|
|
||||||
info.label.sender.name=Від:
|
|
||||||
info.tooltip.sender.name=Повне ім'я відправника
|
|
||||||
info.label.sender.phone=(%s)
|
|
||||||
info.tooltip.sender.phone=Номер телефону відправника
|
|
||||||
info.label.sender.city=у:
|
|
||||||
info.tooltip.sender.city=Місто відправника
|
|
||||||
info.label.sender.warehouse=з:
|
|
||||||
info.tooltip.sender.warehouse=Склад відправника
|
|
||||||
info.tooltip.barcode=Штрих-код номера
|
|
||||||
info.button.tooltip.copy=Скопіювати текст
|
|
||||||
info.button.message.copy=Скопійовано
|
|
||||||
info.button.tooltip.open=Відкрити у новому вікні
|
|
||||||
info.label.detailed=Детальна інформація:
|
|
||||||
info.field.detailed.name=Поле
|
|
||||||
info.field.detailed.value=Значення
|
|
||||||
info.field.menu.copy.name=Копіювати ім'я поля
|
|
||||||
info.field.menu.copy.value=Копіювати значення поля
|
|
||||||
info.field.menu.copy.kv=Копіювати поле як ім'я=значення
|
|
||||||
info.field.menu.copy.kv1=Копіювати поле як ім'я->значення
|
|
||||||
info.field.menu.copy.all=Копіювати все
|
|
||||||
# Fields
|
|
||||||
number.field.id=ID
|
|
||||||
number.field.number=Номер
|
|
||||||
number.field.group=Група
|
|
||||||
number.field.appStatus=Статус номеру
|
|
||||||
number.field.numberType=Тип номеру
|
|
||||||
number.field.comment=Коментар користувача
|
|
||||||
number.field.dateCreated=Дата створення
|
|
||||||
number.field.weight=Вага
|
|
||||||
number.field.cost=Вартість
|
|
||||||
number.field.seatsAmount=Кількість місць
|
|
||||||
number.field.description=Опис
|
|
||||||
number.field.cargoType=Тип
|
|
||||||
number.field.statusCode=Код стану
|
|
||||||
number.field.announcedPrice=Оголошена вартість
|
|
||||||
number.field.scheduledDeliveryDate=Запланована дата доставки
|
|
||||||
number.field.recipientFullName=Повне ім'я Отримувача
|
|
||||||
number.field.cityRecipient=Місто Отримувача
|
|
||||||
number.field.warehouseRecipient=Відділення Отримувача
|
|
||||||
number.field.warehouseRecipientNumber=Номер відділення Отримувача
|
|
||||||
number.field.phoneRecipient=Номер телефону Отримувача
|
|
||||||
number.field.recipientAddress=Адреса Отримувача
|
|
||||||
number.field.citySender=Місто Відправника
|
|
||||||
number.field.phoneSender=Номер телефону Відправника
|
|
||||||
number.field.warehouseSender=Відділення Відправника
|
|
||||||
number.field.senderAddress=Адреса Відправника
|
|
||||||
number.field.fullData=Повні дані з сервера
|
|
||||||
number.field.created=Створено
|
|
||||||
number.field.updated=Оновлено
|
|
||||||
number.field.groupName=Ім'я групи
|
|
||||||
number.field.descr=Опис*
|
|
||||||
number.field.autoUpdated=Автоматичне оновлення
|
|
||||||
# Config window
|
|
||||||
config.title=Конфігурація:
|
|
||||||
config.label.url=API URL:
|
|
||||||
config.label.phone=Телефон:
|
|
||||||
config.label.language=Мова:
|
|
||||||
config.label.maxHistory=Записів у історії пошуку:
|
|
||||||
config.tooltip.maxHistory=Кількість записів у історії пошуку: від %d до %d\nНуль означає "Не зберігати історію"
|
|
||||||
config.label.maxLogRecords=Записів у журналі:
|
|
||||||
config.label.autoUpdate=Увімкнути автоматичне оновлення
|
|
||||||
config.alert.title=Error in config
|
|
||||||
config.alert.message.wrongApiUrl=У поле має бути правильний URL API НП
|
|
||||||
config.alert.message.wrongPhone=У поле має бути правильний номер телефону
|
|
||||||
# Detailed Info window
|
|
||||||
detail.title=Детально про номер %s
|
|
||||||
# Add Number window
|
|
||||||
add.title=Додавання нового номеру
|
|
||||||
add.label.number=Номер:
|
|
||||||
add.label.type=Тип:
|
|
||||||
add.label.phone=Телефон:
|
|
||||||
add.label.update=Автоматичне оновлення
|
|
||||||
add.label.another=Додати інший
|
|
||||||
add.label.comment=Коментар:
|
|
||||||
add.label.group=Група:
|
|
||||||
add.edit.comment.prompt=Коментар для нового номера ТТН (може бути порожнім)
|
|
||||||
add.alert.title.error=Помилка
|
|
||||||
add.alert.message.WrongNumber=Невірно введений номер
|
|
||||||
add.alert.message.NumberAlreadyAdded=Номер '%s' вже додано
|
|
||||||
add.alert.message.WrongPhone=Неправильний номер телефону
|
|
||||||
add.tooltip.AddPhone=Додати номер телефону до БД
|
|
||||||
add.tooltip.EditPhones=Редагувати всі номери телефонів
|
|
||||||
add.message.PhoneAdded=Телефон '%s' було додано до БД
|
|
||||||
add.message.PhoneExists=Телефон '%s' вже додано до БД
|
|
||||||
# Edit Phones window
|
|
||||||
edit.phones.title=Редагувати номери телефонів
|
|
||||||
edit.phones.dialog.title=Зміна номеру телефону
|
|
||||||
edit.phones.newPhone=Новий номер:
|
|
||||||
edit.phones.alert.title=Неправильний номер телефону '%s'
|
|
||||||
edit.phones.alert.message=Введено неправильний номер телефону.\nВиправте та спробуйте ще раз.
|
|
||||||
edit.phones.confirm.title=Підтвердження видалення
|
|
||||||
edit.phones.confirm.header=Підтвердіть видалення номеру '%s'
|
|
||||||
edit.phones.confirm.message=Ви дійсно хочете видалити вказаний номер?
|
|
||||||
edit.phones.alert.phoneUsed.title=Номер телефону '%s' використовується в ТТН
|
|
||||||
edit.phones.alert.phoneUsed.message=Номер телефону використовується в ТТН. Т.ч. його не можна видалити
|
|
||||||
# Edit Search Options window
|
|
||||||
edit.options.action.moveUp=Вгору
|
|
||||||
edit.options.action.moveDn=Вниз
|
|
||||||
edit.options.action.add=Додати
|
|
||||||
edit.options.action.edit=Редагувати
|
|
||||||
edit.options.action.apply=Підтвердити зміні
|
|
||||||
edit.options.action.remove=Видалити
|
|
||||||
edit.options.title=Редагувати налаштування пошуку
|
|
||||||
edit.options.confirm.title=Підтвердження видалення
|
|
||||||
edit.options.confirm.header=Підтвердіть видалення налаштувань пошуку '%s'
|
|
||||||
edit.options.confirm.message=Ви дійсно хочете видалити вказані налаштуваня пошуку?
|
|
||||||
edit.options.alert.title=Невірний параметр
|
|
||||||
edit.options.alert.message=Ім'я параметрів пошуку не може бути порожнім.\nВиправте та спробуйте ще раз.
|
|
||||||
edit.options.toast.message.applied=Зміни застосовано
|
|
||||||
edit.options.toast.message.noChanges=Змін не було зроблено
|
|
||||||
edit.options.toast.message.removed=Налаштування '%s' було видалено
|
|
||||||
edit.options.name.newOption=Нові налаштування пошуку
|
|
||||||
edit.options.label.name=Назва:
|
|
||||||
edit.options.label.text=Текст для пошуку:
|
|
||||||
# Edit Groups window
|
|
||||||
edit.groups.title=Редагувати групи
|
|
||||||
edit.groups.dialog.title=Редагування груп
|
|
||||||
edit.groups.newGroup=Ім'я нової групи:
|
|
||||||
edit.groups.alert.title=Група '%s' вже існує
|
|
||||||
edit.groups.alert.message=Група з таким іменем вже є.\nВведіт, будь ласка, нове ім'я групи.
|
|
||||||
edit.groups.confirm.title=Підтвердження видалення
|
|
||||||
edit.groups.confirm.header=Підтвердіть видалення групи '%s'
|
|
||||||
edit.groups.confirm.message==Ви дійсно хочете видалити вказану групу?
|
|
||||||
edit.groups.toast.message.removed=Групу '%s' було видалено
|
|
||||||
edit.groups.alert.notEmpty.title=Група '%s' не порожня
|
|
||||||
edit.groups.alert.notEmpty.message=Група містить %d ТТН.\nНепорожню групу видалити неможна.
|
|
||||||
# Search window
|
|
||||||
search.window.title=Пошук
|
|
||||||
search.fields.tooltip=Обрані для пошуку поля:\n%s
|
|
||||||
search.fields.tooltip.selectAll=Обрати всі поля
|
|
||||||
search.fields.tooltip.SelectNone=Очистити обрані поля
|
|
||||||
search.label.what=Що шукати:
|
|
||||||
search.edit.what.prompt=Введіть текст для пошуку
|
|
||||||
search.label.searchOptions=Шукати у:
|
|
||||||
search.button=Шукати
|
|
||||||
search.button.options=Налаштування пошуку
|
|
||||||
search.button.save=Зберегти налаштування пошуку
|
|
||||||
search.button.restore=Відновити налаштування пошуку
|
|
||||||
search.label.results=Результати пошуку
|
|
||||||
search.button.plugins.tooltip=Надіслати список до плагіну
|
|
||||||
search.button.simpleSearch=Простий пошук
|
|
||||||
search.button.extSearch=Розширений пошук
|
|
||||||
search.button.searchArchive=в архіві
|
|
||||||
search.button.sendAllItems=Усі ТТН
|
|
||||||
search.button.sendAllItems.tooltip=Надіслати до плагіну усі ТТН (якщо обрано) чи лише вибрані ТТН
|
|
||||||
search.alert.input.title=Назва пошуку
|
|
||||||
search.alert.input.header=Введіть нову назву для пошуку:
|
|
||||||
search.alert.input.content=Назва:
|
|
||||||
search.alert.error.header=Помилка зберігання налаштувань
|
|
||||||
search.alert.error.message.alreadyExists=Назва '%s' вже збережено. Будь ласка введіть нове.
|
|
||||||
search.alert.select.title=Вибір налаштувань
|
|
||||||
search.alert.select.header=Вибір назви налаштувань пошуку
|
|
||||||
search.alert.select.content=Виберіть назву:
|
|
||||||
search.alert.info.results.header=Результати пошуку
|
|
||||||
search.alert.info.results.content=За вашим запитом не знайдено жодного результату
|
|
||||||
search.log.numbersFound=За запитом '%s' знайдено %d ТТН
|
|
||||||
search.log.numbersNotFound=За запитом '%s' не знайдено жодного ТТН
|
|
||||||
search.log.searchMethodChanged=Результати пошуку очищено т.я. метод пошуку змінено з 'Шукати в архіві' на 'Звичайний пошук'
|
|
||||||
# search options pane
|
|
||||||
options.label.group=Група
|
|
||||||
options.label.groupName=Назва групи
|
|
||||||
options.label.weight=Вага
|
|
||||||
options.label.cost=Вартість
|
|
||||||
options.label.price=Оголошена вартість
|
|
||||||
options.label.seats=Кількість місць
|
|
||||||
options.label.numberStatus=Стан накладної
|
|
||||||
options.label.numberType=Тип накладної
|
|
||||||
options.label.status=Статус
|
|
||||||
options.label.createDate=Дата створення
|
|
||||||
options.label.scheduledDate=Планова доставка
|
|
||||||
# Main Menu
|
|
||||||
menu.group.number=Номери
|
|
||||||
menu.number.add=Додати номер
|
|
||||||
menu.number.update=Оновити номер
|
|
||||||
menu.number.updateUncompleted=Оновити незавершені номери
|
|
||||||
menu.number.moveToArchive=Перемістити до архіву
|
|
||||||
menu.number.addToCustom=Додати до обраних
|
|
||||||
menu.number.restoreFromArchive=Відновити з архіву
|
|
||||||
menu.number.exit=Вихід
|
|
||||||
menu.group.moveToGroup=Перемістити до групи
|
|
||||||
menu.group.edit=Змінити
|
|
||||||
menu.edit.newGroup=Нова група
|
|
||||||
menu.edit.editGroups=Змінити групи
|
|
||||||
menu.edit.editPhones=Змінити телефони
|
|
||||||
menu.edit.editSearchOptions=Змінити опції пошуку
|
|
||||||
menu.edit.search=Пошук
|
|
||||||
menu.edit.config=Конфігурація
|
|
||||||
menu.group.view=Вигляд
|
|
||||||
menu.group.viewMode=Перегляд
|
|
||||||
menu.group.filterMode=Фільтр
|
|
||||||
menu.view.detail=Детально
|
|
||||||
menu.view.showLog=Показати журнал
|
|
||||||
menu.group.plugins=Плагіни
|
|
||||||
menu.plugins.loadPlugins=Завантажити плагіни
|
|
||||||
menu.group.windows=Вікна
|
|
||||||
menu.windows.customList=Обрані номери
|
|
||||||
menu.windows.archivedList=Архівні номери
|
|
||||||
menu.windows.cascade=Показати всі каскадом
|
|
||||||
menu.windows.closeAll=Закрити всі
|
|
||||||
menu.group.help=Допомога
|
|
||||||
menu.help.about=Про додаток
|
|
||||||
menu.log.copy=Копіювати
|
|
||||||
menu.log.clear=Очистити
|
|
||||||
# Main window alerts
|
|
||||||
alert.firstLaunch.title=Перший запуск
|
|
||||||
alert.firstLaunch.header=Ласкаво прошу! Це перший запуск додатка.
|
|
||||||
alert.firstLaunch.message=Будь ласка, заповніть усі необхідні поля конфігурації.
|
|
||||||
alert.NoNumber.title=Немає незавершених номерів
|
|
||||||
alert.NoNumber.message=Жодного незавершеного номера у списку
|
|
||||||
alert.log.NoNumber.message=Автоматичне оновлення: Жодного незавершеного номера у списку
|
|
||||||
alert.CouldNotExit.title=Вихід неможливий
|
|
||||||
alert.CouldNotExit.message=Є відкриті вікна потенційно з незбереженими даними.\nЗакрийте їх та спробуйте ще раз
|
|
||||||
alert.archive.moveTo.header.numberExists=Помилка переміщення ТТН до архіву
|
|
||||||
alert.archive.moveTo.content.numberExists=ТТН '%s' вже є в архіві.\nСпершу видаліть цей ТТН з архіву та спробуйте ще раз.
|
|
||||||
alert.archive.restore.header.numberExists=Помилка відновлення номеру з архіву
|
|
||||||
alert.archive.restore.content.numberExists=ТТН '%s' вже є в основній БД.\nВідновлення неможливе.
|
|
||||||
alert.archive.restore.content.numberNotFoundInArchive=ТТН '%s' не знайдено в архіві
|
|
||||||
alert.archive.title.confirmDelete=Підтвердження видалення
|
|
||||||
alert.archive.header.confirmDelete=Ви впевнені, що ТТН '%s' потрібно видалити?\nЦе незворотня операція, відновити ТТН буде неможливо.
|
|
||||||
alert.log.number.movedToArchive=ТТН '%s' переміщено до архіву
|
|
||||||
alert.log.number.restoredFromArchive=ТТН '%s' відновлено з архіву
|
|
||||||
alert.log.gettingResponse=Помилка отримання даних:
|
|
||||||
alert.message.gettingResponse=Виникла помилка отримання даних з серверу
|
|
||||||
# Main window view modes
|
|
||||||
label.vm.tooltip=Перегляд
|
|
||||||
vm.numbers=Номери
|
|
||||||
vm.groups=Групи
|
|
||||||
vm.calendarUpdate=Календар (Оновлено)
|
|
||||||
vm.calendarCreate=Календар (Створено)
|
|
||||||
# Main window Filtering Mode
|
|
||||||
label.fm.filter.tooltip=Фільтр
|
|
||||||
fm.all=Всі
|
|
||||||
fm.uncompleted=Незавершені
|
|
||||||
fm.inbound=Вхідні
|
|
||||||
fm.outbound=Вихідні
|
|
||||||
# Add Group window
|
|
||||||
group.add.title=Додати нову групу
|
|
||||||
group.add.label.name=Назва:
|
|
||||||
group.alert.exists.title=Групу вже додано
|
|
||||||
group.alert.exists.message=Група '%s' вже існує
|
|
||||||
group.alert.EmptyName.title=Порожнє ім'я групи
|
|
||||||
group.alert.EmptyName.message=Ім'я групи не може бути порожнім
|
|
||||||
group.message.newGroup=Додано нову групу '%s'
|
|
||||||
group.message.movedToGroup=ТТН '%s' переміщено до групи '%s'
|
|
||||||
group.alert.cantMove.header=Неможливо перемістити ТТН
|
|
||||||
group.alert.cantMove.message=Неможливо перемістити ТТН '%s'\nдо групи т.я. він вже у групі
|
|
||||||
# List window commons
|
|
||||||
lw.menu.ctx.remove=Видалити
|
|
||||||
lw.menu.ctx.clear=Очистити
|
|
||||||
lw.alert.title=Підтвердження видалення
|
|
||||||
# Custom Number List window
|
|
||||||
cnl.title=Вікно обраних ТТН
|
|
||||||
cnl.label=Список номерів:
|
|
||||||
cnl.alert.message=Ви впевнені, що потрібно видалити %d обраних номерів зі списку обраних?
|
|
||||||
# Archived Number List window
|
|
||||||
anl.title=Вікно архівних ТТН
|
|
||||||
anl.label=Список номерів:
|
|
||||||
anl.alert.message=Ви впевнеі, що потрібно видалити %d номерів з архіву?
|
|
||||||
anl.alert.content=Цю операцію неможливо буде відмінити!
|
|
||||||
anl.log.numberRemoved=ТТН '%s' було повністю видалено
|
|
||||||
anl.log.numbersCleared=Було повністю видалено всі архівні ТТН
|
|
||||||
@@ -1,22 +1,13 @@
|
|||||||
## Nova Poshta: Tracker and Organizer
|
## Nova Poshta: Tracker and Organizer
|
||||||
### _Desktop application to track, organize and manage parcels from Ukrainian delivery operator Nova Poshta_
|
### _Desktop application to track, organize and manage parcels from Ukrainian delivery operator Nova Poshta_
|
||||||
|
|
||||||
[](https://adoptium.net/) [](https://gluonhq.com/products/javafx/) [](https://spring.io/projects/spring-boot) [](https://controlsfx.github.io) [](https://www.sqlite.org/) [](#)
|
[](https://www.java.com/) [](https://controlsfx.github.io) [](https://maven.apache.org/)
|
||||||
|
|
||||||
🇺🇦 [Українська версія](README_ua.md)
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 📂 Repository
|
|
||||||
- [NovaPoshta](NovaPoshta/README.md) – the application itself: features, launch and build instructions
|
|
||||||
- [plugins/template](plugins/template) – template project for writing your own plugin
|
|
||||||
- [plugins/demo](plugins/demo) – demo plugin that prints the passed numbers to the console
|
|
||||||
|
|
||||||
### ⏬ Getting
|
### ⏬ Getting
|
||||||
📖 Read [NovaPoshta/README.md](NovaPoshta/README.md)
|
📖 Read [README.md](NovaPoshta/README.md)
|
||||||
|
|
||||||
You can download the archive from the [Releases section](https://github.com/anrydas/NovaPoshta/releases) or clone the repository.
|
You can download archive from [Releases section](https://github.com/anrydas/NovaPoshta/releases) or clone the repository.
|
||||||
|
|
||||||
Find the full application documentation in [Ukrainian](NovaPoshta/help/uk/help.md) and [English](NovaPoshta/help/en/help.md).
|
Find full application's documentation at: [Ukrainian](NovaPoshta/help/uk/help.md) and [English](NovaPoshta/help/en/help.md).
|
||||||
|
|
||||||
###### _Made by -=:dAs:=-_
|
|
||||||
|
|||||||
Reference in New Issue
Block a user