diff --git a/README.md b/README.md index af273f6..7bcc550 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ![CRM](src/main/resources/META-INF/resources/images/logo.svg) B2B CRM -Languages: [English](README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) +Languages: [English](README.md) | [Русский](readme/README_ru.md) | [Deutsch](readme/README_de.md) | [Italiano](readme/README_it.md) | [Español](readme/README_es.md) | [Tiếng Việt](readme/README_vi.md) | [Српски](readme/README_sr.md) `B2B CRM` is an enterprise demo application built with Jmix that showcases how to develop **production-ready** business systems including `customers`, `orders`, `invoicing`, `finance` and `analytics`.
It reflects real **ERP/CRM** scenarios and demonstrates diff --git a/README_de.md b/readme/README_de.md similarity index 86% rename from README_de.md rename to readme/README_de.md index 9efe310..2238fa3 100644 --- a/README_de.md +++ b/readme/README_de.md @@ -1,6 +1,6 @@ -# ![CRM](src/main/resources/META-INF/resources/images/logo.svg) B2B CRM +# ![CRM](../src/main/resources/META-INF/resources/images/logo.svg) B2B CRM -Sprachen: [English](README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) +Sprachen: [English](../README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) | [Tiếng Việt](README_vi.md) | [Српски](README_sr.md) `B2B CRM` ist eine Enterprise-Demoanwendung auf Basis von Jmix, die zeigt, wie **produktionsreife** Geschäftssysteme für `Kunden`, `Aufträge`, `Rechnungsstellung`, `Finanzen` und `Analysen` entwickelt werden.
Sie bildet reale **ERP/CRM**-Szenarien ab und demonstriert @@ -54,7 +54,7 @@ Voraussetzungen: Java 21+ ### Projekt starten -1. Starte die Jmix-Run-Konfiguration [B2B CRM](.run/crm-app.run.xml) oder führe aus +1. Starte die Jmix-Run-Konfiguration [B2B CRM](../.run/crm-app.run.xml) oder führe aus ```bash ./gradlew bootRun @@ -103,7 +103,7 @@ Wichtige Funktionen: Konfiguration: -- Setze `spring.ai.openai.api-key` in [application.properties](src/main/resources/application.properties) oder stelle die Umgebungsvariable `SPRING_AI_OPENAI_APIKEY` bereit +- Setze `spring.ai.openai.api-key` in [application.properties](../src/main/resources/application.properties) oder stelle die Umgebungsvariable `SPRING_AI_OPENAI_APIKEY` bereit Nach der Aktivierung öffne den Menüpunkt `CRM AI` im Hauptmenü, um eine neue Konversation zu starten. @@ -112,8 +112,8 @@ Nach der Aktivierung öffne den Menüpunkt `CRM AI` im Hauptmenü, um eine neue Das lokale Profil generiert Demo-Daten beim Start der Anwendung: - Die Generierung von Demo-Daten kann mit der Eigenschaft `crm.generateDemoData` - in [application.properties](src/main/resources/application.properties) deaktiviert werden -- Der Katalog wird aus [catalog.xlsx](src/main/resources/demo-data/catalog.xlsx) importiert + in [application.properties](../src/main/resources/application.properties) deaktiviert werden +- Der Katalog wird aus [catalog.xlsx](../src/main/resources/demo-data/catalog.xlsx) importiert ## 👥 Anwendungskonten diff --git a/README_es.md b/readme/README_es.md similarity index 88% rename from README_es.md rename to readme/README_es.md index 0d5f257..2e9fc41 100644 --- a/README_es.md +++ b/readme/README_es.md @@ -1,6 +1,6 @@ -# ![CRM](src/main/resources/META-INF/resources/images/logo.svg) B2B CRM +# ![CRM](../src/main/resources/META-INF/resources/images/logo.svg) B2B CRM -Idiomas: [English](README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) +Idiomas: [English](../README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) | [Tiếng Việt](README_vi.md) | [Српски](README_sr.md) `B2B CRM` es una demo de aplicación empresarial creada con Jmix que muestra cómo desarrollar sistemas de negocio **listos para su puesta en producción** para `clientes`, `pedidos`, `facturación`, `finanzas` y `analítica`.
Refleja escenarios reales **ERP/CRM** y demuestra @@ -54,7 +54,7 @@ Requisitos: Java 21+ ### Para ejecutar el proyecto -1. Ejecuta la configuración Jmix [B2B CRM](.run/crm-app.run.xml) o ejecuta +1. Ejecuta la configuración Jmix [B2B CRM](../.run/crm-app.run.xml) o ejecuta ```bash ./gradlew bootRun @@ -103,7 +103,7 @@ Capacidades principales: Configuración: -- Define `spring.ai.openai.api-key` en [application.properties](src/main/resources/application.properties) o proporciona la variable de entorno `SPRING_AI_OPENAI_APIKEY` +- Define `spring.ai.openai.api-key` en [application.properties](../src/main/resources/application.properties) o proporciona la variable de entorno `SPRING_AI_OPENAI_APIKEY` Cuando esté habilitado, abre el elemento `CRM AI` en el menú principal para iniciar una nueva conversación. @@ -112,8 +112,8 @@ Cuando esté habilitado, abre el elemento `CRM AI` en el menú principal para in El perfil local genera datos demo al iniciar la aplicación: - Puedes desactivar la generación de datos demo con la propiedad `crm.generateDemoData` - en [application.properties](src/main/resources/application.properties) -- El catálogo se importa desde [catalog.xlsx](src/main/resources/demo-data/catalog.xlsx) + en [application.properties](../src/main/resources/application.properties) +- El catálogo se importa desde [catalog.xlsx](../src/main/resources/demo-data/catalog.xlsx) ## 👥 Cuentas de la aplicación diff --git a/README_it.md b/readme/README_it.md similarity index 87% rename from README_it.md rename to readme/README_it.md index 7917694..f3b0579 100644 --- a/README_it.md +++ b/readme/README_it.md @@ -1,6 +1,6 @@ -# ![CRM](src/main/resources/META-INF/resources/images/logo.svg) B2B CRM +# ![CRM](../src/main/resources/META-INF/resources/images/logo.svg) B2B CRM -Lingue: [English](README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) +Lingue: [English](../README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) | [Tiếng Việt](README_vi.md) | [Српски](README_sr.md) `B2B CRM` è un'applicazione demo sviluppata con Jmix che mostra come creare sistemi aziendali **pronti per la produzione** per lavorare con `clienti`, `ordini`, `fatture`, `finanza` e `analitica`.
Rappresenta scenari reali **ERP/CRM** e dimostra @@ -54,7 +54,7 @@ Prerequisiti: Java 21+ ### Esecuzione del progetto -1. Avvia la configurazione Jmix [B2B CRM](.run/crm-app.run.xml) oppure esegui +1. Avvia la configurazione Jmix [B2B CRM](../.run/crm-app.run.xml) oppure esegui ```bash ./gradlew bootRun @@ -103,7 +103,7 @@ Funzionalità principali: Configurazione: -- Imposta `spring.ai.openai.api-key` in [application.properties](src/main/resources/application.properties) oppure fornisci la variabile d'ambiente `SPRING_AI_OPENAI_APIKEY` +- Imposta `spring.ai.openai.api-key` in [application.properties](../src/main/resources/application.properties) oppure fornisci la variabile d'ambiente `SPRING_AI_OPENAI_APIKEY` Dopo l'avvio apri la voce `CRM AI` nel menu principale per iniziare una nuova conversazione. @@ -112,8 +112,8 @@ Dopo l'avvio apri la voce `CRM AI` nel menu principale per iniziare una nuova co Il profilo locale genera dati demo all'avvio dell'applicazione: - Puoi disabilitare la generazione dei dati demo con la proprietà `crm.generateDemoData` - in [application.properties](src/main/resources/application.properties) -- Il catalogo viene importato da [catalog.xlsx](src/main/resources/demo-data/catalog.xlsx) + in [application.properties](../src/main/resources/application.properties) +- Il catalogo viene importato da [catalog.xlsx](../src/main/resources/demo-data/catalog.xlsx) ## 👥 Account dell'applicazione diff --git a/README_ru.md b/readme/README_ru.md similarity index 92% rename from README_ru.md rename to readme/README_ru.md index 5e7f010..f348a8d 100644 --- a/README_ru.md +++ b/readme/README_ru.md @@ -1,6 +1,6 @@ -# ![CRM](src/main/resources/META-INF/resources/images/logo.svg) B2B CRM +# ![CRM](../src/main/resources/META-INF/resources/images/logo.svg) B2B CRM -Языки: [English](README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) +Языки: [English](../README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) | [Tiếng Việt](README_vi.md) | [Српски](README_sr.md) `B2B CRM` — корпоративное демонстрационное приложение на Jmix, показывающее, как разрабатывать **готовые к production** бизнес-системы для работы с `клиентами`, `заказами`, `счетами`, `финансами` и `аналитикой`.
Оно отражает реальные сценарии **ERP/CRM** и демонстрирует @@ -54,7 +54,7 @@ ### Запуск проекта -1. Запустите Jmix run configuration [B2B CRM](.run/crm-app.run.xml) или выполните команду +1. Запустите Jmix run configuration [B2B CRM](../.run/crm-app.run.xml) или выполните команду ```bash ./gradlew bootRun @@ -103,7 +103,7 @@ docker-compose up Настройка: -- Укажите `spring.ai.openai.api-key` в [application.properties](src/main/resources/application.properties) или передайте переменную окружения `SPRING_AI_OPENAI_APIKEY` +- Укажите `spring.ai.openai.api-key` в [application.properties](../src/main/resources/application.properties) или передайте переменную окружения `SPRING_AI_OPENAI_APIKEY` После включения откройте пункт `CRM AI` в главном меню, чтобы начать новый диалог. diff --git a/readme/README_sr.md b/readme/README_sr.md new file mode 100644 index 0000000..bb2ad78 --- /dev/null +++ b/readme/README_sr.md @@ -0,0 +1,157 @@ +# ![CRM](../src/main/resources/META-INF/resources/images/logo.svg) B2B CRM + +Језици: [English](../README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) | [Tiếng Việt](README_vi.md) | [Српски](README_sr.md) + +`B2B CRM` је демо апликација корпоративног нивоа изграђена помоћу Jmix-а која показује како развити пословне системе **спремне за продукцију** +укључујући `клијенте`, `поруџбине`, `фактурисање`, `финансије` и `аналитику`.
Одражава реалне **ERP/CRM** сценарије и демонстрира +најбоље праксе у моделовању домена, корисничком интерфејсу, безбедности и имплементацији пословне логике. + +## 📑 Садржај + +- [Преглед](#-преглед) +- [Технолошки стек](#-технолошки-стек) +- [Коришћени додаци](#-додаци) +- [Изградња и покретање](#-изградња-и-покретање) +- [AI асистент](#-ai-асистент) +- [Демо подаци](#-демо-подаци) +- [Налози](#-налози-апликације) +- [Модел домена](#-модел-домена) +- [Модел улога](#-модел-улога) + +## 📖 Преглед + +Овај пројекат моделује типичан B2B продајни процес: + +- Управљање каталогом производа и категорија +- Одржавање клијената и контаката +- Праћење поруџбина и ставки поруџбина +- Издавање фактура и евидентирање уплата +- Постављање пословних питања AI асистенту +- Праћење задатака и недавних активности +- Преглед продајне аналитике + +## 🛠️ Технолошки стек + +- Java 21 +- Jmix 2.8 +- Spring Boot 3 +- HSQLDB + +## 🧩 Додаци + +- Audit +- Application settings +- Charts +- Data tools +- Dynamic attributes +- Grid export +- Local file storage +- Reports (укључује шаблон фактуре) + +## 🚀 Изградња и покретање + +Предуслови: Java 21+ + +### Покретање пројекта + +1. Покрените Jmix конфигурацију [B2B CRM](../.run/crm-app.run.xml) или извршите + + ```bash + ./gradlew bootRun + ``` + +2. [Отворите URL апликације](http://localhost:8080/b2b-crm) + +### Покретање преко JAR-а + +```bash +./gradlew bootJar -Pvaadin.productionMode +``` + +```bash +java -jar build/libs/crm.jar +``` + +### Покретање преко Docker-а + +```bash +docker build -t jmix-crm . +``` + +```bash +docker run --rm -p 8080:8080 jmix-crm +``` + +### Покретање преко Docker Compose-а + +```bash +docker-compose up +``` + +## 🤖 AI асистент + +Апликација укључује уграђени `CRM AI` радни простор за анализу CRM података у природном језику. + +Кључне могућности: + +- Постављање пословних питања о клијентима, поруџбинама, фактурама, уплатама и продајном учинку +- Поштовање дозвола приступа подацима тренутног корисника и одржавање разговора приватним за њиховог аутора +- Коришћење уграђених пословних извештаја као што су `Client 360 Report` и `Category Cashflow Risk Allocation Report` +- Чување историје разговора са аутоматски генерисаним насловима чета +- Отпремање датотека у разговор и омогућавање асистенту да анализира подржане документе и слике +- Генерисање интерактивних веза до CRM записа директно у одговорима + +Подешавање: + +- Поставите `spring.ai.openai.api-key` у [application.properties](src/main/resources/application.properties) или обезбедите променљиву окружења `SPRING_AI_OPENAI_APIKEY` + +Када је омогућено, отворите ставку `CRM AI` у главном менију да започнете нови разговор. + +## 🎲 Демо подаци + +Локални профил генерише демо податке при покретању апликације: + +- Можете онемогућити генерисање демо података помоћу својства `crm.generateDemoData` + у [application.properties](../src/main/resources/application.properties) +- Каталог се увози из [catalog.xlsx](../src/main/resources/demo-data/catalog.xlsx) + +## 👥 Налози апликације + +| Положај | Корисничко име | Лозинка | Приступ | +|-----------------|----------------|---------|------------------------------------------------------| +| Administrator | ```admin``` | admin | Пун приступ свим подацима и подешавањима | +| Supervisor | ```james``` | james | Manager + управљање каталогом + додела налога | +| Manager | ```manager``` | manager | Пун приступ свим клијентима и поруџбинама | +| Account Manager | ```alice``` | alice | Види само клијенте додељене Alice Brown | +| Account Manager | ```robert``` | robert | Види само клијенте додељене Robert Taylor | + +## ⚙️ Модел домена + +```mermaid +classDiagram + Client o-- Contact + Client o-- Order + Client o-- Invoice + Client o-- Payment + Client o-- Address + + Order *-- OrderItem + OrderItem --> CategoryItem + Category o-- CategoryItem + + Invoice o-- Payment +``` + +## 🔐 Модел улога + +Апликација користи хијерархијски модел улога: + +- `Administrator`: пун приступ свим функцијама апликације, ентитетима и подешавањима. +- `Supervisor`: проширује улогу Manager-а додатним административним могућностима: + - Управљање каталогом производа (Categories и Category Items). + - Додела Account Managers за Clients. +- `Manager`: примарна улога за продајне операције. + - Пун приступ Clients, Contacts, Orders, Invoices и Payments. + - Приступ само за читање каталогу производа. + - Управљање сопственим Tasks. +- `UI Minimal`: минимални приступ који омогућава пријаву и основну навигацију. diff --git a/readme/README_vi.md b/readme/README_vi.md new file mode 100644 index 0000000..7dfe57c --- /dev/null +++ b/readme/README_vi.md @@ -0,0 +1,157 @@ +# ![CRM](../src/main/resources/META-INF/resources/images/logo.svg) B2B CRM + +Ngôn ngữ: [English](../README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) | [Tiếng Việt](README_vi.md) | [Српски](README_sr.md) + +`B2B CRM` là một ứng dụng demo doanh nghiệp được xây dựng bằng Jmix, minh họa cách phát triển các hệ thống nghiệp vụ **sẵn sàng cho môi trường sản xuất** +bao gồm `khách hàng`, `đơn hàng`, `lập hóa đơn`, `tài chính` và `phân tích`.
Nó phản ánh các kịch bản **ERP/CRM** thực tế và minh họa +các phương pháp tốt nhất trong mô hình hóa miền, UI, bảo mật và triển khai logic nghiệp vụ. + +## 📑 Mục lục + +- [Tổng quan](#-tổng-quan) +- [Stack công nghệ](#-stack-công-nghệ) +- [Add-on được sử dụng](#-add-on) +- [Build và chạy](#-build-và-chạy) +- [Trợ lý AI](#-trợ-lý-ai) +- [Dữ liệu demo](#-dữ-liệu-demo) +- [Tài khoản](#-tài-khoản-ứng-dụng) +- [Mô hình miền](#-mô-hình-miền) +- [Mô hình vai trò](#-mô-hình-vai-trò) + +## 📖 Tổng quan + +Dự án này mô hình hóa một quy trình bán hàng B2B điển hình: + +- Quản lý danh mục sản phẩm và phân loại +- Duy trì khách hàng và liên hệ +- Theo dõi đơn hàng và mặt hàng đơn hàng +- Phát hành hóa đơn và ghi nhận thanh toán +- Yêu cầu trợ lý AI cung cấp thông tin chi tiết về kinh doanh +- Giám sát nhiệm vụ và hoạt động gần đây +- Xem phân tích bán hàng + +## 🛠️ Stack công nghệ + +- Java 21 +- Jmix 2.8 +- Spring Boot 3 +- HSQLDB + +## 🧩 Add-on + +- Audit +- Application settings +- Charts +- Data tools +- Dynamic attributes +- Grid export +- Local file storage +- Reports (bao gồm mẫu hóa đơn) + +## 🚀 Build và chạy + +Yêu cầu: Java 21+ + +### Chạy dự án + +1. Chạy cấu hình Jmix [B2B CRM](../.run/crm-app.run.xml) hoặc thực thi + + ```bash + ./gradlew bootRun + ``` + +2. [Mở URL ứng dụng](http://localhost:8080/b2b-crm) + +### Chạy qua JAR + +```bash +./gradlew bootJar -Pvaadin.productionMode +``` + +```bash +java -jar build/libs/crm.jar +``` + +### Chạy qua Docker + +```bash +docker build -t jmix-crm . +``` + +```bash +docker run --rm -p 8080:8080 jmix-crm +``` + +### Chạy qua Docker Compose + +```bash +docker-compose up +``` + +## 🤖 Trợ lý AI + +Ứng dụng bao gồm một không gian làm việc `CRM AI` tích hợp sẵn để phân tích dữ liệu CRM bằng ngôn ngữ tự nhiên. + +Khả năng chính: + +- Đặt câu hỏi kinh doanh về khách hàng, đơn hàng, hóa đơn, thanh toán và hiệu suất bán hàng +- Tôn trọng quyền truy cập dữ liệu của người dùng hiện tại và giữ các cuộc trò chuyện riêng tư cho tác giả của chúng +- Sử dụng các báo cáo kinh doanh tích hợp sẵn như `Client 360 Report` và `Category Cashflow Risk Allocation Report` +- Lưu lịch sử cuộc trò chuyện với các tiêu đề chat được tạo tự động +- Tải tệp lên cuộc trò chuyện và để trợ lý phân tích các tài liệu và hình ảnh được hỗ trợ +- Tạo liên kết tương tác đến các bản ghi CRM trực tiếp trong phản hồi + +Cấu hình: + +- Đặt `spring.ai.openai.api-key` trong [application.properties](../src/main/resources/application.properties) hoặc cung cấp biến môi trường `SPRING_AI_OPENAI_APIKEY` + +Khi đã bật, mở mục `CRM AI` trong menu chính để bắt đầu một cuộc trò chuyện mới. + +## 🎲 Dữ liệu demo + +Profile local tạo dữ liệu demo khi khởi động ứng dụng: + +- Bạn có thể tắt tạo dữ liệu demo với thuộc tính `crm.generateDemoData` + trong [application.properties](../src/main/resources/application.properties) +- Danh mục được nhập từ [catalog.xlsx](../src/main/resources/demo-data/catalog.xlsx) + +## 👥 Tài khoản ứng dụng + +| Vị trí | Tên đăng nhập | Mật khẩu | Quyền truy cập | +|-----------------|---------------|----------|---------------------------------------------------------| +| Administrator | ```admin``` | admin | Truy cập đầy đủ vào tất cả dữ liệu và cài đặt | +| Supervisor | ```james``` | james | Manager + quản lý danh mục + chỉ định tài khoản | +| Manager | ```manager``` | manager | Truy cập đầy đủ vào tất cả khách hàng và đơn hàng | +| Account Manager | ```alice``` | alice | Chỉ thấy khách hàng được chỉ định cho Alice Brown | +| Account Manager | ```robert``` | robert | Chỉ thấy khách hàng được chỉ định cho Robert Taylor | + +## ⚙️ Mô hình miền + +```mermaid +classDiagram + Client o-- Contact + Client o-- Order + Client o-- Invoice + Client o-- Payment + Client o-- Address + + Order *-- OrderItem + OrderItem --> CategoryItem + Category o-- CategoryItem + + Invoice o-- Payment +``` + +## 🔐 Mô hình vai trò + +Ứng dụng sử dụng mô hình vai trò phân cấp: + +- `Administrator`: Truy cập đầy đủ vào tất cả các tính năng ứng dụng, thực thể và cài đặt. +- `Supervisor`: Mở rộng vai trò Manager với các khả năng quản trị bổ sung: + - Quản lý danh mục sản phẩm (Categories và Category Items). + - Chỉ định Account Managers cho Clients. +- `Manager`: Vai trò chính cho các hoạt động bán hàng. + - Truy cập đầy đủ vào Clients, Contacts, Orders, Invoices và Payments. + - Truy cập chỉ đọc vào danh mục sản phẩm. + - Quản lý Tasks của riêng mình. +- `UI Minimal`: Truy cập tối thiểu, cho phép đăng nhập và điều hướng cơ bản. diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 97ae69f..7ade8e7 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -18,7 +18,7 @@ main.datasource.password= main.liquibase.change-log=com/company/crm/liquibase/changelog.xml # jmix -jmix.core.available-locales=en,de,ru,it,es +jmix.core.available-locales=en,de,ru,it,es,vi,sr jmix.ui.login-view-id=LoginView jmix.ui.main-view-id=MainView jmix.ui.default-view-id=HomeView diff --git a/src/main/resources/com/company/crm/messages_sr.properties b/src/main/resources/com/company/crm/messages_sr.properties new file mode 100644 index 0000000..8889bd8 --- /dev/null +++ b/src/main/resources/com/company/crm/messages_sr.properties @@ -0,0 +1,459 @@ +language.displayName=Српски + +# database constraints +# suppress inspection "UnusedProperty" +databaseUniqueConstraintViolation.IDX_USER__ON_USERNAME=Корисник са истим корисничким именом већ постоји + +# common +aiConversation.welcomeMessage=👋 Здраво! Ја сам ваш CRM AI асистент. Могу вам помоћи са питањима о аналитици. Како вам могу помоћи данас? +advanced=Напредно +averageBill=Просечан рачун + +currencySymbol=РСД +currencyPosition=END + +com.company.crm.ai.service/attachmentUploadPrompt=%s је додао прилог "%s" +com.company.crm.ai.service/defaultFileName=Датотека +com.company.crm.ai.service/defaultActorName=Корисник +com.company.crm.ai.model/defaultTitle=Нови AI разговор +com.company.crm.ai.report.run/attachmentEventMessage=%s је додао прилог "%s" + +changeLanguageNotificationMessage=Након промене језика, страница ће се поново учитати и несачувани подаци ће бити изгубљени. Наставити? +changeLanguageNotificationTitle=Промена језика + +copied=Копирано +copy=Копирај +clone=Клонирај + +clientComboBox.placeholder=Клијент + +download=Преузми +defaultGridEmptyStateText=Овде још нема ничега... + +demoData.progress.configuring=Конфигурисање скупа података... +demoData.progress.creatingTasks=Креирање задатака... +demoData.progress.creatingClients=Креирање клијената... +demoData.progress.creatingContacts=Креирање контаката... +demoData.progress.importingCatalog=Увоз каталога... +demoData.progress.generatingOrders=Генерисање поруџбина... +demoData.progress.generatingInvoices=Генерисање фактура... +demoData.progress.generatingPayments=Генерисање уплата... +demoData.progress.creatingActivities=Креирање активности... +demoData.progress.createDynamicAttributes=Креирање динамичких атрибута... +demoData.progress.finalizing=Финализација демо података... +demoData.progress.done=Демо подаци иницијализовани 👍 + +dynamicAttributes.softwareProducts.categoryName=Софтверски производи +dynamicAttributes.softwareProducts.vendorName=Добављач +dynamicAttributes.salesTerritory.categoryName=Продајна територија +dynamicAttributes.salesTerritory.salesAreaName=Продајна област + +email=Е-пошта + +fromDatePicker.label=Од +invalidEmail=Неисправна е-пошта + +language=Језик +loading=Учитавање... + +newClient=Нови клијент +newInvoice=Нова фактура +newOrder=Нова поруџбина +newPayment=Нова уплата +numberWillBeGenerated=Биће генерисано + +orderComboBox.placeholder=Поруџбина +ordersTotal=Укупно поруџбина + +paid=Плаћено +paymentsTotal=Укупно уплата +profile=Профил + +recentActivitiesTitle=Недавне активности +recentActivities.emptyState=Још нема активности +runCategoryCashflowRiskReport=Извештај о ризику новчаног тока по категоријама +search.hint=

Притисните Enter да примените филтер

+ +send=Пошаљи +sendEmailDialog.header=Пошаљи е-пошту +something.went.wrong=Нешто је пошло наопако + +invoiceComboBox.placeholder=Фактура + +toDatePicker.label=До +today=Данас + +yesterday=Јуче + +# menu +menu_config.administration.description=Алатке за администрацију +menu_config.administration.title=Администрација +menu_config.catalog.title=Каталог +menu_config.catalog.categories.title=Категорије +menu_config.catalog.categoryItems.title=Производи +menu_config.clients.title=Клијенти +menu_config.finance.title=Финансије +menu_config.finance.invoices.title=Фактуре +menu_config.finance.payments.title=Уплате +menu_config.home.description=Почетна страница +menu_config.home.title=Почетна +menu_config.orders.title=Поруџбине +menu_config.tasks.title=Моји задаци + +# entities +com.company.crm.ai.model/AiAttachmentType=Тип AI прилога +com.company.crm.ai.model/AiAttachmentType.AI_GENERATED=Генерисано од стране AI +com.company.crm.ai.model/AiAttachmentType.USER_UPLOADED=Корисник отпремио + +com.company.crm.ai.model/AiConversation=AI разговор +com.company.crm.ai.model/AiConversation.attachments=Прилози +com.company.crm.ai.model/AiConversation.firstMessageSent=Прва порука послата +com.company.crm.ai.model/AiConversation.messages=Поруке +com.company.crm.ai.model/AiConversation.title=Наслов + +com.company.crm.ai.model/AiConversationAttachment=Прилог +com.company.crm.ai.model/AiConversationAttachment.conversation=Разговор +com.company.crm.ai.model/AiConversationAttachment.file=Датотека +com.company.crm.ai.model/AiConversationAttachment.fileName=Назив датотеке +com.company.crm.ai.model/AiConversationAttachment.title=Наслов +com.company.crm.ai.model/AiConversationAttachment.type=Тип + +com.company.crm.ai.model/ChatMessage=AI порука разговора +com.company.crm.ai.model/ChatMessage.content=Садржај +com.company.crm.ai.model/ChatMessage.conversation=Разговор +com.company.crm.ai.model/ChatMessage.type=Тип + +com.company.crm.ai.model/ChatMessageType=Тип поруке +com.company.crm.ai.model/ChatMessageType.ASSISTANT=Асистент +com.company.crm.ai.model/ChatMessageType.ATTACHMENT=Прилог +com.company.crm.ai.model/ChatMessageType.SYSTEM=Систем +com.company.crm.ai.model/ChatMessageType.TOOL=Алатка +com.company.crm.ai.model/ChatMessageType.USER=Корисник +com.company.crm.ai.model/ChatMessageType.USER_UPLOAD=Отпремање корисника + +com.company.crm.app.util.date/Period=Период +com.company.crm.app.util.date/Period.MONTH=Месец +com.company.crm.app.util.date/Period.WEEK=Седмица +com.company.crm.app.util.date/Period.YEAR=Година + +com.company.crm.app.util.ui.renderer/invoices=Фактуре +com.company.crm.app.util.ui.renderer/orders=Поруџбине +com.company.crm.app.util.ui.renderer/payments=Уплате + +com.company.crm.model.address/Address=Адреса +com.company.crm.model.address/Address.apartment=Стан +com.company.crm.model.address/Address.city=Град +com.company.crm.model.address/Address.country=Држава +com.company.crm.model.address/Address.instanceName=Адреса +com.company.crm.model.address/Address.building=Кућни број +com.company.crm.model.address/Address.postalCode=Поштански број +com.company.crm.model.address/Address.street=Улица + +com.company.crm.model.base/CreateAuditEntity.createdBy=Креирао +com.company.crm.model.base/CreateAuditEntity.createdDate=Датум креирања +com.company.crm.model.base/CreateUpdateAuditEntity.updatedBy=Ажурирао +com.company.crm.model.base/CreateUpdateAuditEntity.updatedDate=Датум ажурирања + +com.company.crm.model.base/FullAuditEntity.deletedBy=Обрисао +com.company.crm.model.base/FullAuditEntity.deletedDate=Датум брисања +com.company.crm.model.base/FullAuditEntity.version=Верзија + +com.company.crm.model.base/UuidEntity.id=ID + +com.company.crm.model.catalog.item/CategoryItem=Производ +com.company.crm.model.catalog.item/CategoryItem.category=Категорија +com.company.crm.model.catalog.item/CategoryItem.code=Шифра +com.company.crm.model.catalog.item/CategoryItem.comments=Коментари +com.company.crm.model.catalog.item/CategoryItem.description=Опис +com.company.crm.model.catalog.item/CategoryItem.image=Слика +com.company.crm.model.catalog.item/CategoryItem.name=Назив +com.company.crm.model.catalog.item/CategoryItem.price=Цена +com.company.crm.model.catalog.item/CategoryItem.uom=Јединица мере + +com.company.crm.model.catalog.item/CategoryItemComment=Коментар +com.company.crm.model.catalog.item/CategoryItemComment.categoryItem=Производ +com.company.crm.model.catalog.item/CategoryItemComment.message=Порука +com.company.crm.model.catalog.item/CategoryItemComment.sender=Пошиљалац + +com.company.crm.model.catalog.item/UomType=Јединица мере +com.company.crm.model.catalog.item/UomType.KILOGRAM=Килограм +com.company.crm.model.catalog.item/UomType.LITER=Литар +com.company.crm.model.catalog.item/UomType.METER=Метар +com.company.crm.model.catalog.item/UomType.PIECES=Комади + +com.company.crm.model.catalog.category/Category=Категорија +com.company.crm.model.catalog.category/Category.code=Шифра +com.company.crm.model.catalog.category/Category.description=Опис +com.company.crm.model.catalog.category/Category.name=Назив +com.company.crm.model.catalog.category/Category.parent=Надређена + +com.company.crm.model.client/Client=Клијент +com.company.crm.model.client/Client.accountManager=Менаџер налога +com.company.crm.model.client/Client.address=Адреса +com.company.crm.model.client/Client.contacts=Контакти +com.company.crm.model.client/Client.fullName=Пуно име +com.company.crm.model.client/Client.invoices=Фактуре +com.company.crm.model.client/Client.name=Назив +com.company.crm.model.client/Client.orders=Поруџбине +com.company.crm.model.client/Client.regNumber=Регистарски број +com.company.crm.model.client/Client.type=Тип +com.company.crm.model.client/Client.vatNumber=ПИБ +com.company.crm.model.client/Client.website=Веб-сајт + +com.company.crm.model.client/ClientType=Тип +com.company.crm.model.client/ClientType.BUSINESS=Правно лице +com.company.crm.model.client/ClientType.INDIVIDUAL=Физичко лице + +com.company.crm.model.client/RiskLevel=Ниво ризика +com.company.crm.model.client/RiskLevel.HIGH=Висок +com.company.crm.model.client/RiskLevel.MEDIUM=Средњи +com.company.crm.model.client/RiskLevel.LOW=Низак + +com.company.crm.model.contact/Contact=Контакт +com.company.crm.model.contact/Contact.client=Клијент +com.company.crm.model.contact/Contact.email=Е-пошта +com.company.crm.model.contact/Contact.endDate=Датум завршетка +com.company.crm.model.contact/Contact.person=Особа +com.company.crm.model.contact/Contact.phone=Телефон +com.company.crm.model.contact/Contact.position=Функција +com.company.crm.model.contact/Contact.startDate=Датум почетка + +com.company.crm.model.invoice/Invoice=Фактура +com.company.crm.model.invoice/Invoice.client=Клијент +com.company.crm.model.invoice/Invoice.date=Датум +com.company.crm.model.invoice/Invoice.dueDate=Датум доспећа +com.company.crm.model.invoice/Invoice.number=Број +com.company.crm.model.invoice/Invoice.order=Поруџбина +com.company.crm.model.invoice/Invoice.payments=Уплате +com.company.crm.model.invoice/Invoice.paymentsSum=Збир уплата +com.company.crm.model.invoice/Invoice.status=Статус +com.company.crm.model.invoice/Invoice.subtotal=Међузбир +com.company.crm.model.invoice/Invoice.total=Укупно +com.company.crm.model.invoice/Invoice.vat=ПДВ + +com.company.crm.model.invoice/InvoiceStatus=Статус +com.company.crm.model.invoice/InvoiceStatus.NEW=Нова +com.company.crm.model.invoice/InvoiceStatus.OVERDUE=Доспела +com.company.crm.model.invoice/InvoiceStatus.PAID=Плаћена +com.company.crm.model.invoice/InvoiceStatus.PENDING=На чекању + +com.company.crm.model.order/Order=Поруџбина +com.company.crm.model.order/Order.client=Клијент +com.company.crm.model.order/Order.comment=Коментар +com.company.crm.model.order/Order.date=Датум +com.company.crm.model.order/Order.discountPercent=Проценат попуста +com.company.crm.model.order/Order.discountValue=Вредност попуста +com.company.crm.model.order/Order.invoiced=Фактурисано +com.company.crm.model.order/Order.invoices=Фактуре +com.company.crm.model.order/Order.itemsTotal=Укупно ставки +com.company.crm.model.order/Order.leftOverSum=Преостало +com.company.crm.model.order/Order.number=Број +com.company.crm.model.order/Order.orderItems=Ставке поруџбине +com.company.crm.model.order/Order.paid=Плаћено +com.company.crm.model.order/Order.purchaseOrder=Налог за куповину +com.company.crm.model.order/Order.status=Статус +com.company.crm.model.order/Order.subTotal=Међузбир +com.company.crm.model.order/Order.total=Укупно +com.company.crm.model.order/Order.vat=ПДВ + +com.company.crm.model.order/OrderItem=Ставка поруџбине +com.company.crm.model.order/OrderItems=Ставке поруџбине +com.company.crm.model.order/OrderItem.categoryItem=Производ +com.company.crm.model.order/OrderItem.discount=Попуст +com.company.crm.model.order/OrderItem.grossPrice=Бруто цена +com.company.crm.model.order/OrderItem.unitPrice=Јединична цена +com.company.crm.model.order/OrderItem.netPrice=Нето цена +com.company.crm.model.order/OrderItem.order=Поруџбина +com.company.crm.model.order/OrderItem.quantity=Количина +com.company.crm.model.order/OrderItem.total=Укупно +com.company.crm.model.order/OrderItem.vat=ПДВ +com.company.crm.model.order/OrderItem.vatIncluded=ПДВ укључен + +com.company.crm.model.order/OrderStatus=Статус +com.company.crm.model.order/OrderStatus.ACCEPTED=Прихваћена +com.company.crm.model.order/OrderStatus.DONE=Завршена +com.company.crm.model.order/OrderStatus.IN_PROGRESS=У току +com.company.crm.model.order/OrderStatus.NEW=Нова + +com.company.crm.model.payment/Payment=Уплата +com.company.crm.model.payment/Payment.amount=Износ +com.company.crm.model.payment/Payment.client=Клијент +com.company.crm.model.payment/Payment.date=Датум +com.company.crm.model.payment/Payment.invoice=Фактура +com.company.crm.model.payment/Payment.number=Број +com.company.crm.model.payment/Payment.order=Поруџбина + +com.company.crm.model.settings/CrmSettings=CRM подешавања +com.company.crm.model.settings/CrmSettings.createdBy=Креирао +com.company.crm.model.settings/CrmSettings.createdDate=Датум креирања +com.company.crm.model.settings/CrmSettings.defaultVatPercent=Подразумевани ПДВ +com.company.crm.model.settings/CrmSettings.lastModifiedBy=Последње изменио +com.company.crm.model.settings/CrmSettings.lastModifiedDate=Датум последње измене +com.company.crm.model.settings/CrmSettings.navigationBarTouchOptimized=Навигациона трака оптимизована за додир + +com.company.crm.model.user/User=Корисник +com.company.crm.model.user/User.active=Активан +com.company.crm.model.user/User.email=Е-пошта +com.company.crm.model.user/User.firstName=Име +com.company.crm.model.user/User.lastName=Презиме +com.company.crm.model.user/User.password=Лозинка +com.company.crm.model.user/User.tasks=Задаци +com.company.crm.model.user/User.timeZoneId=Временска зона +com.company.crm.model.user/User.username=Корисничко име +com.company.crm.model.user/User.version=Верзија + +com.company.crm.model.user.activity/UserActivity=Активност корисника +com.company.crm.model.user.activity/UserActivity.actionDescription=Опис акције +com.company.crm.model.user.activity/UserActivity.user=Корисник + +com.company.crm.model.user.activity.client/ClientUserActivity=Активност корисника по клијенту +com.company.crm.model.user.activity.client/ClientUserActivity.client=Клијент + +com.company.crm.model.user.task/UserTask=Задатак корисника +com.company.crm.model.user.task/UserTask.author=Аутор +com.company.crm.model.user.task/UserTask.description=Опис +com.company.crm.model.user.task/UserTask.dueDate=Рок +com.company.crm.model.user.task/UserTask.isCompleted=Завршен +com.company.crm.model.user.task/UserTask.title=Наслов + +com.company.crm.model.user.activity.userprofile/UserProfileUserActivity=Активност профила корисника + +# views +com.company.crm.ai.view.aiconversation/aiConversationDetailView.title=CRM AI +com.company.crm.ai.view.aiconversation/aiConversationListView.createAction.text=Нови разговор +com.company.crm.ai.view.aiconversation/aiConversationListView.editAction.text=Отвори +com.company.crm.ai.view.aiconversation/aiConversationListView.title=CRM AI +com.company.crm.ai.view.aiconversation/assistantName=CRM AI +com.company.crm.ai.view.aiconversation/uploadEventName=Прилози +com.company.crm.ai.view.aiconversation/attachmentsPanelTitle=Прилози +com.company.crm.ai.view.aiconversation/attachmentUploadField.uploadText=Отпреми +com.company.crm.ai.view.aiconversation/attachmentUpload.dropLabel=Превуците прилог овде +com.company.crm.ai.view.aiconversation/attachmentUploadNoConversation=Нема активног разговора за отпремање. +com.company.crm.ai.view.aiconversation/attachmentUploadMissingFile=Отпремање је успело, али референца датотеке није креирана. +com.company.crm.ai.view.aiconversation/attachmentUploadPersistError=Није успело чување отпремљене датотеке као прилога. +com.company.crm.ai.view.aiconversation/attachmentUploadEventMessage=%s је додао прилог \"%s\" +com.company.crm.ai.view.aiconversation/errorProcessingMessage=Жао нам је, дошло је до техничке грешке приликом обраде вашег захтева. Покушајте поново касније. +com.company.crm.ai.view.aiconversation/errorInvalidApiKey=OpenAI API кључ није подешен. Поставите валидни кључ преко својства `spring.ai.openai.api-key` у `application.properties` и поново покрените апликацију. +com.company.crm.ai.view.aiconversation/errorProcessingAttachment=Жао нам је, тренутно не могу да анализирам отпремљену датотеку. Покушајте поново касније. +com.company.crm.ai.view.aiconversation/editConversationTitleDialog.header=Уреди наслов разговора +com.company.crm.ai.view.aiconversation/editConversationTitleDialog.titleField=Наслов +com.company.crm.ai.view.aiconversation/attachmentsDownloadAction=Преузми +com.company.crm.ai.view.aiconversation/attachmentsMissingFileName=Прилог без имена +com.company.crm.ai.view.aiconversation/attachmentsSourceAi=AI +com.company.crm.ai.view.aiconversation/attachmentsSourceUser=Корисник +com.company.crm.ai.view.aiconversation/editConversationTitleAction=Отвори разговор +com.company.crm.ai.view.aiconversation/attachmentsSourceUnknown=Непознато + +com.company.crm.view.catalog/categoryListView.title=Категорије +com.company.crm.view.catalog/downloadXlsx=Преузми XLSX +com.company.crm.view.catalog/updateFromXlsx=Ажурирај из XLSX +com.company.crm.view.catalog/searchField.placeholder=Претражите по називу и шифри +com.company.crm.view.catalog/allCategories=Све категорије +com.company.crm.view.catalog/categoryItemDetailView.title=Производ +com.company.crm.view.catalog/categoryItemListView.title=Производи + +com.company.crm.view.category/categoryDetailView.title=Категорија + +com.company.crm.view.client/ClientCategory=Категорија +com.company.crm.view.client/ClientCategory.WITH_ORDERS=Са поруџбинама +com.company.crm.view.client/ClientCategory.WITH_PAYMENTS=Са уплатама +com.company.crm.view.client/accountManagerPlaceholder=Менаџер налога +com.company.crm.view.client/addressFieldPlaceholder=Није попуњено... +com.company.crm.view.client/allClients=Сви клијенти +com.company.crm.view.client/allManagers=Сви менаџери +com.company.crm.view.client/allTypes=Сви типови +com.company.crm.view.client/categoryPlaceholder=Категорија +com.company.crm.view.client/clientDetailView.title=Клијент +com.company.crm.view.client/clientListView.title=Клијенти +com.company.crm.view.client/general=Општи подаци +com.company.crm.view.client/contactsTabLabel=Контакти +com.company.crm.view.client/downloadProfile=Преузми профил +com.company.crm.view.client/for=За +com.company.crm.view.client/forAllClients=За све клијенте +com.company.crm.view.client/forFilteredClients=За филтриране клијенте +com.company.crm.view.client/infoTabLabel=Инфо +com.company.crm.view.client/analyticsTabLabel=Аналитика +com.company.crm.view.client/analytics.purchaseFrequency=Учесталост куповине +com.company.crm.view.client/analytics.averageOrderValue=Просечна вредност поруџбине +com.company.crm.view.client/analytics.salesCycleLength=Дужина продајног циклуса +com.company.crm.view.client/cardHintText=Изаберите клијенте у табели да бисте приказали њихову статистику +com.company.crm.view.client/invoicesTabLabel=Фактуре +com.company.crm.view.client/mainText=За %d изабраних клијената +com.company.crm.view.client/managementTitle=Управљање +com.company.crm.view.client/ordersTabLabel=Поруџбине +com.company.crm.view.client/paymentsTabLabel=Уплате +com.company.crm.view.client/searchField.placeholder=Претражите по називу +com.company.crm.view.client/showOnlyMyClients=Прикажи само моје клијенте +com.company.crm.view.client/typePlaceholder=Тип +com.company.crm.view.client/outstandingBalance=Преостали салдо +com.company.crm.view.client/addressRequiredError=Адреса је обавезна. Попуните државу, град, улицу и кућни број. + +com.company.crm.view.contact/contactDetailView.title=Контакт + +com.company.crm.view.home/card.totalOrdersValue=Укупна вредност поруџбина +com.company.crm.view.home/cards.overdueInvoices=Доспеле фактуре +com.company.crm.view.home/cards.payments=Уплате +com.company.crm.view.home/homeView.title=Почетна +com.company.crm.view.home/myTasks=Моји задаци +com.company.crm.view.home/newTask=Нови задатак +com.company.crm.view.home/salesCardTitle=Преглед поруџбина +com.company.crm.view.home/salesOrdersCount=%s поруџбина +com.company.crm.view.home/salesChartTitle=СТАТУС + +com.company.crm.view.main/MainView.title=B2B CRM +com.company.crm.view.main/applicationTitle.text=B2B CRM +com.company.crm.view.main/navigation.ariaLabel=Прикази +com.company.crm.view.main/notificationsNotFound=Обавештења нису пронађена +com.company.crm.view.main/searchFieldPlaceholder=Претражите клијенте... +com.company.crm.view.main/show.all=Прикажи све +com.company.crm.view.main/drawerToggle.ariaLabel=Прекидач менија + +com.company.crm.view.invoice/InvoiceListView.title=Фактуре +com.company.crm.view.invoice/allInvoices=Све фактуре +com.company.crm.view.invoice/statusCounts=Фактуре по статусу +com.company.crm.view.invoice/invoiceDetailView.title=Фактура +com.company.crm.view.invoice/statusSelect.placeholder=Статус + +com.company.crm.view.login/LoginView.title=Пријава +com.company.crm.view.login/loginForm.username=Корисничко име +com.company.crm.view.login/loginForm.password=Лозинка +com.company.crm.view.login/loginForm.submit=Пријави се +com.company.crm.view.login/loginForm.errorTitle=Пријава није успела +com.company.crm.view.login/loginForm.badCredentials=Проверите да ли сте унели исправно корисничко име и лозинку и покушајте поново +com.company.crm.view.login/loginForm.errorUsername=Корисничко име је обавезно +com.company.crm.view.login/loginForm.errorPassword=Лозинка је обавезна +com.company.crm.view.login/usageHelp.buttonTitle=Сценарији коришћења + +com.company.crm.view.order.item/orderItemDetailView.title=Ставка поруџбине + +com.company.crm.view.order/addInvoice=Додај фактуру +com.company.crm.view.order/changeOrderStatusConfirmationDialog.header=Промени статус поруџбине +com.company.crm.view.order/changeOrderStatusConfirmationDialog.text=Мењате статус поруџбине на %s. Да ли заиста желите да наставите? +com.company.crm.view.order/cost=Трошак +# suppress inspection "UnusedProperty" +com.company.crm.view.order/emailSentNotification=Ово је демо функционалност, права е-пошта није послата +# suppress inspection "UnusedProperty" +com.company.crm.view.order/sendEmailDialog.header=Пошаљи поруџбину е-поштом +com.company.crm.view.order/validation.discountValueGreaterThanTotal=Вредност не сме бити већа од укупне вредности +com.company.crm.view.order/orderDetailView.title=Поруџбина +com.company.crm.view.order/orderListView.title=Поруџбине +com.company.crm.view.order/orderStatusChanged=Статус поруџбине промењен у %s +com.company.crm.view.order/searchField.placeholder=Претражите по броју + +com.company.crm.view.payment/PaymentListView.title=Уплате +com.company.crm.view.payment/paymentDetailView.title=Уплата + +com.company.crm.view.user/UserListView.title=Корисници +com.company.crm.view.user/UserDetailView.title=Корисник +com.company.crm.view.user/confirmPassword=Потврдите лозинку +com.company.crm.view.user/passwordsDoNotMatch=Лозинке се не подударају +com.company.crm.view.user/resetUiSettings=Ресетуј UI подешавања +com.company.crm.view.user/resetUiSettings.tooltip=Ресетуј сачувана UI подешавања, као што су сортирање колона, приказане колоне и њихове величине +com.company.crm.view.user/uiSettingsSuccessfullyReset=UI подешавања су успешно ресетована +com.company.crm.view.user/additionalMenu=Додатно +com.company.crm.view.user/noAssignedRolesNotification=Доделите улоге новом кориснику + +com.company.crm.view.usertask/userTaskListView.title=Моји задаци + +com.company.crm.view.usagehelp/usageHelp.title=Сценарији коришћења +com.company.crm.view.usagehelp/usageHelp.contentFile=com/company/crm/view/usagehelp/usage-help-sr.html diff --git a/src/main/resources/com/company/crm/messages_vi.properties b/src/main/resources/com/company/crm/messages_vi.properties new file mode 100644 index 0000000..b945d13 --- /dev/null +++ b/src/main/resources/com/company/crm/messages_vi.properties @@ -0,0 +1,459 @@ +language.displayName=Tiếng Việt + +# database constraints +# suppress inspection "UnusedProperty" +databaseUniqueConstraintViolation.IDX_USER__ON_USERNAME=Đã tồn tại người dùng có cùng tên đăng nhập + +# common +aiConversation.welcomeMessage=👋 Xin chào! Tôi là trợ lý AI CRM của bạn. Tôi có thể giúp bạn với các câu hỏi phân tích. Hôm nay tôi có thể giúp gì cho bạn? +advanced=Nâng cao +averageBill=Hóa đơn trung bình + +currencySymbol=₫ +currencyPosition=END + +com.company.crm.ai.service/attachmentUploadPrompt=%s đã thêm tệp đính kèm "%s" +com.company.crm.ai.service/defaultFileName=Tệp +com.company.crm.ai.service/defaultActorName=Người dùng +com.company.crm.ai.model/defaultTitle=Cuộc trò chuyện AI mới +com.company.crm.ai.report.run/attachmentEventMessage=%s đã thêm tệp đính kèm "%s" + +changeLanguageNotificationMessage=Sau khi thay đổi ngôn ngữ, trang sẽ được tải lại và dữ liệu chưa lưu sẽ bị mất. Tiếp tục? +changeLanguageNotificationTitle=Thay đổi ngôn ngữ + +copied=Đã sao chép +copy=Sao chép +clone=Nhân bản + +clientComboBox.placeholder=Khách hàng + +download=Tải xuống +defaultGridEmptyStateText=Chưa có gì ở đây... + +demoData.progress.configuring=Đang cấu hình bộ dữ liệu... +demoData.progress.creatingTasks=Đang tạo nhiệm vụ... +demoData.progress.creatingClients=Đang tạo khách hàng... +demoData.progress.creatingContacts=Đang tạo liên hệ... +demoData.progress.importingCatalog=Đang nhập danh mục... +demoData.progress.generatingOrders=Đang tạo đơn hàng... +demoData.progress.generatingInvoices=Đang tạo hóa đơn... +demoData.progress.generatingPayments=Đang tạo thanh toán... +demoData.progress.creatingActivities=Đang tạo hoạt động... +demoData.progress.createDynamicAttributes=Đang tạo thuộc tính động... +demoData.progress.finalizing=Đang hoàn tất dữ liệu demo... +demoData.progress.done=Đã khởi tạo dữ liệu demo 👍 + +dynamicAttributes.softwareProducts.categoryName=Sản phẩm phần mềm +dynamicAttributes.softwareProducts.vendorName=Nhà cung cấp +dynamicAttributes.salesTerritory.categoryName=Khu vực bán hàng +dynamicAttributes.salesTerritory.salesAreaName=Vùng bán hàng + +email=E-Mail + +fromDatePicker.label=Từ +invalidEmail=E-Mail không hợp lệ + +language=Ngôn ngữ +loading=Đang tải... + +newClient=Khách hàng mới +newInvoice=Hóa đơn mới +newOrder=Đơn hàng mới +newPayment=Thanh toán mới +numberWillBeGenerated=Sẽ được tạo + +orderComboBox.placeholder=Đơn hàng +ordersTotal=Tổng đơn hàng + +paid=Đã thanh toán +paymentsTotal=Tổng thanh toán +profile=Hồ sơ + +recentActivitiesTitle=Hoạt động gần đây +recentActivities.emptyState=Chưa có hoạt động nào +runCategoryCashflowRiskReport=Báo cáo rủi ro dòng tiền theo danh mục +search.hint=

Nhấn Enter để áp dụng bộ lọc

+ +send=Gửi +sendEmailDialog.header=Gửi E-Mail +something.went.wrong=Đã xảy ra lỗi + +invoiceComboBox.placeholder=Hóa đơn + +toDatePicker.label=Đến +today=Hôm nay + +yesterday=Hôm qua + +# menu +menu_config.administration.description=Công cụ quản trị +menu_config.administration.title=Quản trị +menu_config.catalog.title=Danh mục +menu_config.catalog.categories.title=Phân loại +menu_config.catalog.categoryItems.title=Sản phẩm +menu_config.clients.title=Khách hàng +menu_config.finance.title=Tài chính +menu_config.finance.invoices.title=Hóa đơn +menu_config.finance.payments.title=Thanh toán +menu_config.home.description=Trang chủ +menu_config.home.title=Trang chủ +menu_config.orders.title=Đơn hàng +menu_config.tasks.title=Nhiệm vụ của tôi + +# entities +com.company.crm.ai.model/AiAttachmentType=Loại tệp đính kèm AI +com.company.crm.ai.model/AiAttachmentType.AI_GENERATED=Do AI tạo +com.company.crm.ai.model/AiAttachmentType.USER_UPLOADED=Do người dùng tải lên + +com.company.crm.ai.model/AiConversation=Cuộc trò chuyện AI +com.company.crm.ai.model/AiConversation.attachments=Tệp đính kèm +com.company.crm.ai.model/AiConversation.firstMessageSent=Tin nhắn đầu tiên đã gửi +com.company.crm.ai.model/AiConversation.messages=Tin nhắn +com.company.crm.ai.model/AiConversation.title=Tiêu đề + +com.company.crm.ai.model/AiConversationAttachment=Tệp đính kèm +com.company.crm.ai.model/AiConversationAttachment.conversation=Cuộc trò chuyện +com.company.crm.ai.model/AiConversationAttachment.file=Tệp +com.company.crm.ai.model/AiConversationAttachment.fileName=Tên tệp +com.company.crm.ai.model/AiConversationAttachment.title=Tiêu đề +com.company.crm.ai.model/AiConversationAttachment.type=Loại + +com.company.crm.ai.model/ChatMessage=Tin nhắn chat AI +com.company.crm.ai.model/ChatMessage.content=Nội dung +com.company.crm.ai.model/ChatMessage.conversation=Cuộc trò chuyện +com.company.crm.ai.model/ChatMessage.type=Loại + +com.company.crm.ai.model/ChatMessageType=Loại tin nhắn +com.company.crm.ai.model/ChatMessageType.ASSISTANT=Trợ lý +com.company.crm.ai.model/ChatMessageType.ATTACHMENT=Tệp đính kèm +com.company.crm.ai.model/ChatMessageType.SYSTEM=Hệ thống +com.company.crm.ai.model/ChatMessageType.TOOL=Công cụ +com.company.crm.ai.model/ChatMessageType.USER=Người dùng +com.company.crm.ai.model/ChatMessageType.USER_UPLOAD=Người dùng tải lên + +com.company.crm.app.util.date/Period=Kỳ hạn +com.company.crm.app.util.date/Period.MONTH=Tháng +com.company.crm.app.util.date/Period.WEEK=Tuần +com.company.crm.app.util.date/Period.YEAR=Năm + +com.company.crm.app.util.ui.renderer/invoices=Hóa đơn +com.company.crm.app.util.ui.renderer/orders=Đơn hàng +com.company.crm.app.util.ui.renderer/payments=Thanh toán + +com.company.crm.model.address/Address=Địa chỉ +com.company.crm.model.address/Address.apartment=Căn hộ +com.company.crm.model.address/Address.city=Thành phố +com.company.crm.model.address/Address.country=Quốc gia +com.company.crm.model.address/Address.instanceName=Địa chỉ +com.company.crm.model.address/Address.building=Số nhà +com.company.crm.model.address/Address.postalCode=Mã bưu chính +com.company.crm.model.address/Address.street=Đường + +com.company.crm.model.base/CreateAuditEntity.createdBy=Người tạo +com.company.crm.model.base/CreateAuditEntity.createdDate=Ngày tạo +com.company.crm.model.base/CreateUpdateAuditEntity.updatedBy=Người cập nhật +com.company.crm.model.base/CreateUpdateAuditEntity.updatedDate=Ngày cập nhật + +com.company.crm.model.base/FullAuditEntity.deletedBy=Người xóa +com.company.crm.model.base/FullAuditEntity.deletedDate=Ngày xóa +com.company.crm.model.base/FullAuditEntity.version=Phiên bản + +com.company.crm.model.base/UuidEntity.id=ID + +com.company.crm.model.catalog.item/CategoryItem=Sản phẩm +com.company.crm.model.catalog.item/CategoryItem.category=Phân loại +com.company.crm.model.catalog.item/CategoryItem.code=Mã +com.company.crm.model.catalog.item/CategoryItem.comments=Bình luận +com.company.crm.model.catalog.item/CategoryItem.description=Mô tả +com.company.crm.model.catalog.item/CategoryItem.image=Hình ảnh +com.company.crm.model.catalog.item/CategoryItem.name=Tên +com.company.crm.model.catalog.item/CategoryItem.price=Giá +com.company.crm.model.catalog.item/CategoryItem.uom=Đơn vị tính + +com.company.crm.model.catalog.item/CategoryItemComment=Bình luận +com.company.crm.model.catalog.item/CategoryItemComment.categoryItem=Sản phẩm +com.company.crm.model.catalog.item/CategoryItemComment.message=Tin nhắn +com.company.crm.model.catalog.item/CategoryItemComment.sender=Người gửi + +com.company.crm.model.catalog.item/UomType=Đơn vị tính +com.company.crm.model.catalog.item/UomType.KILOGRAM=Kilogam +com.company.crm.model.catalog.item/UomType.LITER=Lít +com.company.crm.model.catalog.item/UomType.METER=Mét +com.company.crm.model.catalog.item/UomType.PIECES=Cái + +com.company.crm.model.catalog.category/Category=Phân loại +com.company.crm.model.catalog.category/Category.code=Mã +com.company.crm.model.catalog.category/Category.description=Mô tả +com.company.crm.model.catalog.category/Category.name=Tên +com.company.crm.model.catalog.category/Category.parent=Phân loại cha + +com.company.crm.model.client/Client=Khách hàng +com.company.crm.model.client/Client.accountManager=Quản lý tài khoản +com.company.crm.model.client/Client.address=Địa chỉ +com.company.crm.model.client/Client.contacts=Liên hệ +com.company.crm.model.client/Client.fullName=Tên đầy đủ +com.company.crm.model.client/Client.invoices=Hóa đơn +com.company.crm.model.client/Client.name=Tên +com.company.crm.model.client/Client.orders=Đơn hàng +com.company.crm.model.client/Client.regNumber=Số đăng ký +com.company.crm.model.client/Client.type=Loại +com.company.crm.model.client/Client.vatNumber=Mã số thuế GTGT +com.company.crm.model.client/Client.website=Trang web + +com.company.crm.model.client/ClientType=Loại +com.company.crm.model.client/ClientType.BUSINESS=Doanh nghiệp +com.company.crm.model.client/ClientType.INDIVIDUAL=Cá nhân + +com.company.crm.model.client/RiskLevel=Mức độ rủi ro +com.company.crm.model.client/RiskLevel.HIGH=Cao +com.company.crm.model.client/RiskLevel.MEDIUM=Trung bình +com.company.crm.model.client/RiskLevel.LOW=Thấp + +com.company.crm.model.contact/Contact=Liên hệ +com.company.crm.model.contact/Contact.client=Khách hàng +com.company.crm.model.contact/Contact.email=Email +com.company.crm.model.contact/Contact.endDate=Ngày kết thúc +com.company.crm.model.contact/Contact.person=Người +com.company.crm.model.contact/Contact.phone=Điện thoại +com.company.crm.model.contact/Contact.position=Chức vụ +com.company.crm.model.contact/Contact.startDate=Ngày bắt đầu + +com.company.crm.model.invoice/Invoice=Hóa đơn +com.company.crm.model.invoice/Invoice.client=Khách hàng +com.company.crm.model.invoice/Invoice.date=Ngày +com.company.crm.model.invoice/Invoice.dueDate=Hạn thanh toán +com.company.crm.model.invoice/Invoice.number=Số +com.company.crm.model.invoice/Invoice.order=Đơn hàng +com.company.crm.model.invoice/Invoice.payments=Thanh toán +com.company.crm.model.invoice/Invoice.paymentsSum=Tổng thanh toán +com.company.crm.model.invoice/Invoice.status=Trạng thái +com.company.crm.model.invoice/Invoice.subtotal=Tạm tính +com.company.crm.model.invoice/Invoice.total=Tổng +com.company.crm.model.invoice/Invoice.vat=Thuế GTGT + +com.company.crm.model.invoice/InvoiceStatus=Trạng thái +com.company.crm.model.invoice/InvoiceStatus.NEW=Mới +com.company.crm.model.invoice/InvoiceStatus.OVERDUE=Quá hạn +com.company.crm.model.invoice/InvoiceStatus.PAID=Đã thanh toán +com.company.crm.model.invoice/InvoiceStatus.PENDING=Đang chờ + +com.company.crm.model.order/Order=Đơn hàng +com.company.crm.model.order/Order.client=Khách hàng +com.company.crm.model.order/Order.comment=Bình luận +com.company.crm.model.order/Order.date=Ngày +com.company.crm.model.order/Order.discountPercent=Phần trăm chiết khấu +com.company.crm.model.order/Order.discountValue=Giá trị chiết khấu +com.company.crm.model.order/Order.invoiced=Đã xuất hóa đơn +com.company.crm.model.order/Order.invoices=Hóa đơn +com.company.crm.model.order/Order.itemsTotal=Tổng mặt hàng +com.company.crm.model.order/Order.leftOverSum=Còn lại +com.company.crm.model.order/Order.number=Số +com.company.crm.model.order/Order.orderItems=Mặt hàng đơn hàng +com.company.crm.model.order/Order.paid=Đã thanh toán +com.company.crm.model.order/Order.purchaseOrder=Đơn đặt mua +com.company.crm.model.order/Order.status=Trạng thái +com.company.crm.model.order/Order.subTotal=Tạm tính +com.company.crm.model.order/Order.total=Tổng +com.company.crm.model.order/Order.vat=Thuế GTGT + +com.company.crm.model.order/OrderItem=Mặt hàng đơn hàng +com.company.crm.model.order/OrderItems=Mặt hàng đơn hàng +com.company.crm.model.order/OrderItem.categoryItem=Sản phẩm +com.company.crm.model.order/OrderItem.discount=Chiết khấu +com.company.crm.model.order/OrderItem.grossPrice=Giá tổng +com.company.crm.model.order/OrderItem.unitPrice=Đơn giá +com.company.crm.model.order/OrderItem.netPrice=Giá ròng +com.company.crm.model.order/OrderItem.order=Đơn hàng +com.company.crm.model.order/OrderItem.quantity=Số lượng +com.company.crm.model.order/OrderItem.total=Tổng +com.company.crm.model.order/OrderItem.vat=Thuế GTGT +com.company.crm.model.order/OrderItem.vatIncluded=Bao gồm thuế GTGT + +com.company.crm.model.order/OrderStatus=Trạng thái +com.company.crm.model.order/OrderStatus.ACCEPTED=Đã chấp nhận +com.company.crm.model.order/OrderStatus.DONE=Hoàn tất +com.company.crm.model.order/OrderStatus.IN_PROGRESS=Đang thực hiện +com.company.crm.model.order/OrderStatus.NEW=Mới + +com.company.crm.model.payment/Payment=Thanh toán +com.company.crm.model.payment/Payment.amount=Số tiền +com.company.crm.model.payment/Payment.client=Khách hàng +com.company.crm.model.payment/Payment.date=Ngày +com.company.crm.model.payment/Payment.invoice=Hóa đơn +com.company.crm.model.payment/Payment.number=Số +com.company.crm.model.payment/Payment.order=Đơn hàng + +com.company.crm.model.settings/CrmSettings=Cài đặt CRM +com.company.crm.model.settings/CrmSettings.createdBy=Người tạo +com.company.crm.model.settings/CrmSettings.createdDate=Ngày tạo +com.company.crm.model.settings/CrmSettings.defaultVatPercent=Thuế GTGT mặc định +com.company.crm.model.settings/CrmSettings.lastModifiedBy=Người chỉnh sửa cuối +com.company.crm.model.settings/CrmSettings.lastModifiedDate=Ngày chỉnh sửa cuối +com.company.crm.model.settings/CrmSettings.navigationBarTouchOptimized=Thanh điều hướng tối ưu cho cảm ứng + +com.company.crm.model.user/User=Người dùng +com.company.crm.model.user/User.active=Hoạt động +com.company.crm.model.user/User.email=Email +com.company.crm.model.user/User.firstName=Tên +com.company.crm.model.user/User.lastName=Họ +com.company.crm.model.user/User.password=Mật khẩu +com.company.crm.model.user/User.tasks=Nhiệm vụ +com.company.crm.model.user/User.timeZoneId=Múi giờ +com.company.crm.model.user/User.username=Tên đăng nhập +com.company.crm.model.user/User.version=Phiên bản + +com.company.crm.model.user.activity/UserActivity=Hoạt động người dùng +com.company.crm.model.user.activity/UserActivity.actionDescription=Mô tả hành động +com.company.crm.model.user.activity/UserActivity.user=Người dùng + +com.company.crm.model.user.activity.client/ClientUserActivity=Hoạt động người dùng theo khách hàng +com.company.crm.model.user.activity.client/ClientUserActivity.client=Khách hàng + +com.company.crm.model.user.task/UserTask=Nhiệm vụ người dùng +com.company.crm.model.user.task/UserTask.author=Tác giả +com.company.crm.model.user.task/UserTask.description=Mô tả +com.company.crm.model.user.task/UserTask.dueDate=Hạn chót +com.company.crm.model.user.task/UserTask.isCompleted=Hoàn thành +com.company.crm.model.user.task/UserTask.title=Tiêu đề + +com.company.crm.model.user.activity.userprofile/UserProfileUserActivity=Hoạt động hồ sơ người dùng + +# views +com.company.crm.ai.view.aiconversation/aiConversationDetailView.title=CRM AI +com.company.crm.ai.view.aiconversation/aiConversationListView.createAction.text=Trò chuyện mới +com.company.crm.ai.view.aiconversation/aiConversationListView.editAction.text=Mở +com.company.crm.ai.view.aiconversation/aiConversationListView.title=CRM AI +com.company.crm.ai.view.aiconversation/assistantName=CRM AI +com.company.crm.ai.view.aiconversation/uploadEventName=Tệp đính kèm +com.company.crm.ai.view.aiconversation/attachmentsPanelTitle=Tệp đính kèm +com.company.crm.ai.view.aiconversation/attachmentUploadField.uploadText=Tải lên +com.company.crm.ai.view.aiconversation/attachmentUpload.dropLabel=Thả tệp đính kèm vào đây +com.company.crm.ai.view.aiconversation/attachmentUploadNoConversation=Không có cuộc trò chuyện nào đang hoạt động để tải lên. +com.company.crm.ai.view.aiconversation/attachmentUploadMissingFile=Tải lên thành công, nhưng không có tham chiếu tệp nào được tạo. +com.company.crm.ai.view.aiconversation/attachmentUploadPersistError=Không thể lưu tệp đã tải lên làm tệp đính kèm. +com.company.crm.ai.view.aiconversation/attachmentUploadEventMessage=%s đã thêm tệp đính kèm \"%s\" +com.company.crm.ai.view.aiconversation/errorProcessingMessage=Xin lỗi, đã xảy ra lỗi kỹ thuật khi xử lý yêu cầu của bạn. Vui lòng thử lại sau. +com.company.crm.ai.view.aiconversation/errorInvalidApiKey=Khóa API OpenAI chưa được cấu hình. Vui lòng đặt khóa hợp lệ thông qua thuộc tính `spring.ai.openai.api-key` trong `application.properties` và khởi động lại ứng dụng. +com.company.crm.ai.view.aiconversation/errorProcessingAttachment=Xin lỗi, hiện tại tôi không thể phân tích tệp đã tải lên. Vui lòng thử lại sau. +com.company.crm.ai.view.aiconversation/editConversationTitleDialog.header=Chỉnh sửa tiêu đề cuộc trò chuyện +com.company.crm.ai.view.aiconversation/editConversationTitleDialog.titleField=Tiêu đề +com.company.crm.ai.view.aiconversation/attachmentsDownloadAction=Tải xuống +com.company.crm.ai.view.aiconversation/attachmentsMissingFileName=Tệp đính kèm không tên +com.company.crm.ai.view.aiconversation/attachmentsSourceAi=AI +com.company.crm.ai.view.aiconversation/attachmentsSourceUser=Người dùng +com.company.crm.ai.view.aiconversation/editConversationTitleAction=Mở trò chuyện +com.company.crm.ai.view.aiconversation/attachmentsSourceUnknown=Không xác định + +com.company.crm.view.catalog/categoryListView.title=Phân loại +com.company.crm.view.catalog/downloadXlsx=Tải xuống XLSX +com.company.crm.view.catalog/updateFromXlsx=Cập nhật từ XLSX +com.company.crm.view.catalog/searchField.placeholder=Tìm theo tên và mã +com.company.crm.view.catalog/allCategories=Tất cả phân loại +com.company.crm.view.catalog/categoryItemDetailView.title=Sản phẩm +com.company.crm.view.catalog/categoryItemListView.title=Sản phẩm + +com.company.crm.view.category/categoryDetailView.title=Phân loại + +com.company.crm.view.client/ClientCategory=Phân loại +com.company.crm.view.client/ClientCategory.WITH_ORDERS=Có đơn hàng +com.company.crm.view.client/ClientCategory.WITH_PAYMENTS=Có thanh toán +com.company.crm.view.client/accountManagerPlaceholder=Quản lý tài khoản +com.company.crm.view.client/addressFieldPlaceholder=Chưa điền... +com.company.crm.view.client/allClients=Tất cả khách hàng +com.company.crm.view.client/allManagers=Tất cả quản lý +com.company.crm.view.client/allTypes=Tất cả loại +com.company.crm.view.client/categoryPlaceholder=Phân loại +com.company.crm.view.client/clientDetailView.title=Khách hàng +com.company.crm.view.client/clientListView.title=Khách hàng +com.company.crm.view.client/general=Thông tin chung +com.company.crm.view.client/contactsTabLabel=Liên hệ +com.company.crm.view.client/downloadProfile=Tải hồ sơ +com.company.crm.view.client/for=Cho +com.company.crm.view.client/forAllClients=Cho tất cả khách hàng +com.company.crm.view.client/forFilteredClients=Cho khách hàng đã lọc +com.company.crm.view.client/infoTabLabel=Thông tin +com.company.crm.view.client/analyticsTabLabel=Phân tích +com.company.crm.view.client/analytics.purchaseFrequency=Tần suất mua hàng +com.company.crm.view.client/analytics.averageOrderValue=Giá trị đơn hàng trung bình +com.company.crm.view.client/analytics.salesCycleLength=Độ dài chu kỳ bán hàng +com.company.crm.view.client/cardHintText=Chọn khách hàng trong bảng để xem thống kê của họ +com.company.crm.view.client/invoicesTabLabel=Hóa đơn +com.company.crm.view.client/mainText=Cho %d khách hàng đã chọn +com.company.crm.view.client/managementTitle=Quản lý +com.company.crm.view.client/ordersTabLabel=Đơn hàng +com.company.crm.view.client/paymentsTabLabel=Thanh toán +com.company.crm.view.client/searchField.placeholder=Tìm theo tên +com.company.crm.view.client/showOnlyMyClients=Chỉ hiển thị khách hàng của tôi +com.company.crm.view.client/typePlaceholder=Loại +com.company.crm.view.client/outstandingBalance=Số dư còn nợ +com.company.crm.view.client/addressRequiredError=Địa chỉ là bắt buộc. Điền quốc gia, thành phố, đường và số nhà. + +com.company.crm.view.contact/contactDetailView.title=Liên hệ + +com.company.crm.view.home/card.totalOrdersValue=Tổng giá trị đơn hàng +com.company.crm.view.home/cards.overdueInvoices=Hóa đơn quá hạn +com.company.crm.view.home/cards.payments=Thanh toán +com.company.crm.view.home/homeView.title=Trang chủ +com.company.crm.view.home/myTasks=Nhiệm vụ của tôi +com.company.crm.view.home/newTask=Nhiệm vụ mới +com.company.crm.view.home/salesCardTitle=Tổng quan đơn hàng +com.company.crm.view.home/salesOrdersCount=%s đơn hàng +com.company.crm.view.home/salesChartTitle=TRẠNG THÁI + +com.company.crm.view.main/MainView.title=B2B CRM +com.company.crm.view.main/applicationTitle.text=B2B CRM +com.company.crm.view.main/navigation.ariaLabel=Chế độ xem +com.company.crm.view.main/notificationsNotFound=Không tìm thấy thông báo +com.company.crm.view.main/searchFieldPlaceholder=Tìm kiếm khách hàng... +com.company.crm.view.main/show.all=Hiển thị tất cả +com.company.crm.view.main/drawerToggle.ariaLabel=Bật/tắt menu + +com.company.crm.view.invoice/InvoiceListView.title=Hóa đơn +com.company.crm.view.invoice/allInvoices=Tất cả hóa đơn +com.company.crm.view.invoice/statusCounts=Hóa đơn theo trạng thái +com.company.crm.view.invoice/invoiceDetailView.title=Hóa đơn +com.company.crm.view.invoice/statusSelect.placeholder=Trạng thái + +com.company.crm.view.login/LoginView.title=Đăng nhập +com.company.crm.view.login/loginForm.username=Tên đăng nhập +com.company.crm.view.login/loginForm.password=Mật khẩu +com.company.crm.view.login/loginForm.submit=Đăng nhập +com.company.crm.view.login/loginForm.errorTitle=Đăng nhập thất bại +com.company.crm.view.login/loginForm.badCredentials=Vui lòng kiểm tra rằng bạn đã nhập đúng tên đăng nhập và mật khẩu, sau đó thử lại +com.company.crm.view.login/loginForm.errorUsername=Tên đăng nhập là bắt buộc +com.company.crm.view.login/loginForm.errorPassword=Mật khẩu là bắt buộc +com.company.crm.view.login/usageHelp.buttonTitle=Tình huống sử dụng + +com.company.crm.view.order.item/orderItemDetailView.title=Mặt hàng đơn hàng + +com.company.crm.view.order/addInvoice=Thêm hóa đơn +com.company.crm.view.order/changeOrderStatusConfirmationDialog.header=Thay đổi trạng thái đơn hàng +com.company.crm.view.order/changeOrderStatusConfirmationDialog.text=Bạn đang thay đổi trạng thái đơn hàng thành %s. Bạn có chắc muốn tiếp tục? +com.company.crm.view.order/cost=Chi phí +# suppress inspection "UnusedProperty" +com.company.crm.view.order/emailSentNotification=Đây là tính năng demo, không có email thực nào được gửi +# suppress inspection "UnusedProperty" +com.company.crm.view.order/sendEmailDialog.header=Gửi đơn hàng qua E-Mail +com.company.crm.view.order/validation.discountValueGreaterThanTotal=Giá trị không được lớn hơn tổng giá trị +com.company.crm.view.order/orderDetailView.title=Đơn hàng +com.company.crm.view.order/orderListView.title=Đơn hàng +com.company.crm.view.order/orderStatusChanged=Trạng thái đơn hàng đã thay đổi thành %s +com.company.crm.view.order/searchField.placeholder=Tìm theo số + +com.company.crm.view.payment/PaymentListView.title=Thanh toán +com.company.crm.view.payment/paymentDetailView.title=Thanh toán + +com.company.crm.view.user/UserListView.title=Người dùng +com.company.crm.view.user/UserDetailView.title=Người dùng +com.company.crm.view.user/confirmPassword=Xác nhận mật khẩu +com.company.crm.view.user/passwordsDoNotMatch=Mật khẩu không khớp +com.company.crm.view.user/resetUiSettings=Đặt lại cài đặt UI +com.company.crm.view.user/resetUiSettings.tooltip=Đặt lại các cài đặt UI đã lưu, chẳng hạn như sắp xếp cột, các cột hiển thị và kích thước của chúng +com.company.crm.view.user/uiSettingsSuccessfullyReset=Cài đặt UI đã được đặt lại thành công +com.company.crm.view.user/additionalMenu=Bổ sung +com.company.crm.view.user/noAssignedRolesNotification=Gán vai trò cho người dùng mới + +com.company.crm.view.usertask/userTaskListView.title=Nhiệm vụ của tôi + +com.company.crm.view.usagehelp/usageHelp.title=Tình huống sử dụng +com.company.crm.view.usagehelp/usageHelp.contentFile=com/company/crm/view/usagehelp/usage-help-vi.html diff --git a/src/main/resources/com/company/crm/view/usagehelp/usage-help-sr.html b/src/main/resources/com/company/crm/view/usagehelp/usage-help-sr.html new file mode 100644 index 0000000..8c715bc --- /dev/null +++ b/src/main/resources/com/company/crm/view/usagehelp/usage-help-sr.html @@ -0,0 +1,15 @@ +
+

Можете се пријавити користећи следеће акредитиве (корисничко име / лозинка):

+ +
diff --git a/src/main/resources/com/company/crm/view/usagehelp/usage-help-vi.html b/src/main/resources/com/company/crm/view/usagehelp/usage-help-vi.html new file mode 100644 index 0000000..6142796 --- /dev/null +++ b/src/main/resources/com/company/crm/view/usagehelp/usage-help-vi.html @@ -0,0 +1,15 @@ +
+

Bạn có thể đăng nhập bằng các thông tin sau (tên đăng nhập / mật khẩu):

+ +
diff --git a/src/test/java/com/company/crm/test/message/MessagePropertiesTest.java b/src/test/java/com/company/crm/test/message/MessagePropertiesTest.java index 047902d..90c96e2 100644 --- a/src/test/java/com/company/crm/test/message/MessagePropertiesTest.java +++ b/src/test/java/com/company/crm/test/message/MessagePropertiesTest.java @@ -21,7 +21,7 @@ class MessagePropertiesTest { - private static final int EXPECTED_LOCALIZED_MESSAGE_FILES = 5; + private static final int EXPECTED_LOCALIZED_MESSAGE_FILES = 7; private static final Pattern LOCALIZED_MESSAGES_FILENAME = Pattern.compile("messages_(.+)\\.properties"); @Test