From 67a66d5d6eda9448677dd3678a2b5464dae748c7 Mon Sep 17 00:00:00 2001 From: vamsikrishnamathala Date: Wed, 9 Apr 2025 16:39:38 +0530 Subject: [PATCH] chore: updated language support to estimates --- .../i18n/src/locales/cs/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/de/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/en/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/es/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/fr/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/id/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/it/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/ja/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/ko/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/pl/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/pt-BR/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/ro/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/ru/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/sk/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/ua/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/vi-VN/translations.json | 24 ++++++++++++++++++- .../i18n/src/locales/zh-CN/translations.json | 15 +++++++++++- .../i18n/src/locales/zh-TW/translations.json | 24 ++++++++++++++++++- packages/types/src/estimate.d.ts | 11 ++++----- packages/ui/src/dropdown/common/options.tsx | 2 +- web/ce/constants/estimates.ts | 11 +++++++++ .../components/estimates/create/modal.tsx | 13 ++++++---- .../components/estimates/create/stage-one.tsx | 6 ++--- .../estimates/inputs/text-input.tsx | 2 +- 24 files changed, 434 insertions(+), 34 deletions(-) diff --git a/packages/i18n/src/locales/cs/translations.json b/packages/i18n/src/locales/cs/translations.json index 0dff29fc7e5..88777e84864 100644 --- a/packages/i18n/src/locales/cs/translations.json +++ b/packages/i18n/src/locales/cs/translations.json @@ -1738,12 +1738,15 @@ "title": "Povolit odhady pro můj projekt", "description": "Pomáhají vám komunikovat složitost a pracovní zátěž týmu.", "no_estimate": "Bez odhadu", + "new": "Nový systém odhadů", "create": { "custom": "Vlastní", "start_from_scratch": "Začít od nuly", "choose_template": "Vybrat šablonu", "choose_estimate_system": "Vybrat systém odhadů", - "enter_estimate_point": "Zadat odhad" + "enter_estimate_point": "Zadat odhad", + "step": "Krok {step} z {total}", + "label": "Vytvořit odhad" }, "toasts": { "created": { @@ -1792,6 +1795,25 @@ "already_exists": "Hodnota odhadu již existuje.", "unsaved_changes": "Máte neuložené změny. Před kliknutím na hotovo je prosím uložte", "remove_empty": "Odhad nemůže být prázdný. Zadejte hodnotu do každého pole nebo odstraňte ta, pro která nemáte hodnoty." + }, + "systems": { + "points": { + "label": "Body", + "fibonacci": "Fibonacci", + "linear": "Lineární", + "squares": "Čtverce", + "custom": "Vlastní" + }, + "categories": { + "label": "Kategorie", + "t_shirt_sizes": "Velikosti triček", + "easy_to_hard": "Od snadného po těžké", + "custom": "Vlastní" + }, + "time": { + "label": "Čas", + "hours": "Hodiny" + } } }, "automations": { diff --git a/packages/i18n/src/locales/de/translations.json b/packages/i18n/src/locales/de/translations.json index 97334611b88..9ed62e11bc0 100644 --- a/packages/i18n/src/locales/de/translations.json +++ b/packages/i18n/src/locales/de/translations.json @@ -1714,12 +1714,15 @@ "title": "Schätzungen für mein Projekt aktivieren", "description": "Sie helfen dir, die Komplexität und Arbeitsbelastung des Teams zu kommunizieren.", "no_estimate": "Keine Schätzung", + "new": "Neues Schätzungssystem", "create": { "custom": "Benutzerdefiniert", "start_from_scratch": "Von Grund auf neu", "choose_template": "Vorlage wählen", "choose_estimate_system": "Schätzungssystem wählen", - "enter_estimate_point": "Schätzung eingeben" + "enter_estimate_point": "Schätzung eingeben", + "step": "Schritt {step} von {total}", + "label": "Schätzung erstellen" }, "toasts": { "created": { @@ -1768,6 +1771,25 @@ "already_exists": "Der Schätzungswert existiert bereits.", "unsaved_changes": "Du hast ungespeicherte Änderungen. Bitte speichere sie, bevor du auf Fertig klickst", "remove_empty": "Die Schätzung darf nicht leer sein. Gib einen Wert in jedes Feld ein oder entferne die Felder, für die du keine Werte hast." + }, + "systems": { + "points": { + "label": "Punkte", + "fibonacci": "Fibonacci", + "linear": "Linear", + "squares": "Quadrate", + "custom": "Benutzerdefiniert" + }, + "categories": { + "label": "Kategorien", + "t_shirt_sizes": "T-Shirt-Größen", + "easy_to_hard": "Einfach bis schwer", + "custom": "Benutzerdefiniert" + }, + "time": { + "label": "Zeit", + "hours": "Stunden" + } } }, "automations": { diff --git a/packages/i18n/src/locales/en/translations.json b/packages/i18n/src/locales/en/translations.json index d2a891fc6e1..cfa7b64d95f 100644 --- a/packages/i18n/src/locales/en/translations.json +++ b/packages/i18n/src/locales/en/translations.json @@ -1573,12 +1573,15 @@ "title": "Enable estimates for my project", "description": "They help you in communicating complexity and workload of the team.", "no_estimate": "No estimate", + "new": "New estimate system", "create": { "custom": "Custom", "start_from_scratch": "Start from scratch", "choose_template": "Choose a template", "choose_estimate_system": "Choose an estimate system", - "enter_estimate_point": "Enter estimate" + "enter_estimate_point": "Enter estimate", + "step": "Step {step} of {total}", + "label": "Create estimate" }, "toasts": { "created": { @@ -1627,6 +1630,25 @@ "already_exists": "Estimate value already exists.", "unsaved_changes": "You have some unsaved changes, Please save them before clicking on done", "remove_empty": "Estimate can't be empty. Enter a value in each field or remove those you don't have values for." + }, + "systems": { + "points": { + "label": "Points", + "fibonacci": "Fibonacci", + "linear": "Linear", + "squares": "Squares", + "custom": "Custom" + }, + "categories": { + "label": "Categories", + "t_shirt_sizes": "T-Shirt Sizes", + "easy_to_hard": "Easy to hard", + "custom": "Custom" + }, + "time": { + "label": "Time", + "hours": "Hours" + } } }, "automations": { diff --git a/packages/i18n/src/locales/es/translations.json b/packages/i18n/src/locales/es/translations.json index 9470a8c7aaf..de7941d7a10 100644 --- a/packages/i18n/src/locales/es/translations.json +++ b/packages/i18n/src/locales/es/translations.json @@ -1742,12 +1742,15 @@ "title": "Activar estimaciones para mi proyecto", "description": "Te ayudan a comunicar la complejidad y la carga de trabajo del equipo.", "no_estimate": "Sin estimación", + "new": "Nuevo sistema de estimación", "create": { "custom": "Personalizado", "start_from_scratch": "Comenzar desde cero", "choose_template": "Elegir una plantilla", "choose_estimate_system": "Elegir un sistema de estimación", - "enter_estimate_point": "Ingresar estimación" + "enter_estimate_point": "Ingresar estimación", + "step": "Paso {step} de {total}", + "label": "Crear estimación" }, "toasts": { "created": { @@ -1796,6 +1799,25 @@ "already_exists": "El valor de la estimación ya existe.", "unsaved_changes": "Tienes cambios sin guardar. Por favor guárdalos antes de hacer clic en Hecho", "remove_empty": "La estimación no puede estar vacía. Ingresa un valor en cada campo o elimina aquellos para los que no tienes valores." + }, + "systems": { + "points": { + "label": "Puntos", + "fibonacci": "Fibonacci", + "linear": "Lineal", + "squares": "Cuadrados", + "custom": "Personalizado" + }, + "categories": { + "label": "Categorías", + "t_shirt_sizes": "Tallas de camiseta", + "easy_to_hard": "Fácil a difícil", + "custom": "Personalizado" + }, + "time": { + "label": "Tiempo", + "hours": "Horas" + } } }, "automations": { diff --git a/packages/i18n/src/locales/fr/translations.json b/packages/i18n/src/locales/fr/translations.json index 27d6f54c85e..1b2fd8d8050 100644 --- a/packages/i18n/src/locales/fr/translations.json +++ b/packages/i18n/src/locales/fr/translations.json @@ -1740,12 +1740,15 @@ "title": "Activer les estimations pour mon projet", "description": "Elles vous aident à communiquer la complexité et la charge de travail de l'équipe.", "no_estimate": "Sans estimation", + "new": "Nouveau système d'estimation", "create": { "custom": "Personnalisé", "start_from_scratch": "Commencer depuis zéro", "choose_template": "Choisir un modèle", "choose_estimate_system": "Choisir un système d'estimation", - "enter_estimate_point": "Saisir une estimation" + "enter_estimate_point": "Saisir une estimation", + "step": "Étape {step} de {total}", + "label": "Créer une estimation" }, "toasts": { "created": { @@ -1794,6 +1797,25 @@ "already_exists": "La valeur de l'estimation existe déjà.", "unsaved_changes": "Vous avez des modifications non enregistrées. Veuillez les enregistrer avant de cliquer sur Terminé", "remove_empty": "L'estimation ne peut pas être vide. Saisissez une valeur dans chaque champ ou supprimez ceux pour lesquels vous n'avez pas de valeurs." + }, + "systems": { + "points": { + "label": "Points", + "fibonacci": "Fibonacci", + "linear": "Linéaire", + "squares": "Carrés", + "custom": "Personnalisé" + }, + "categories": { + "label": "Catégories", + "t_shirt_sizes": "Tailles de T-Shirt", + "easy_to_hard": "Facile à difficile", + "custom": "Personnalisé" + }, + "time": { + "label": "Temps", + "hours": "Heures" + } } }, "automations": { diff --git a/packages/i18n/src/locales/id/translations.json b/packages/i18n/src/locales/id/translations.json index 22ebae1c0cf..55f23f2a739 100644 --- a/packages/i18n/src/locales/id/translations.json +++ b/packages/i18n/src/locales/id/translations.json @@ -1740,12 +1740,15 @@ "title": "Aktifkan perkiraan untuk proyek saya", "description": "Ini membantu Anda dalam mengkomunikasikan kompleksitas dan beban kerja tim.", "no_estimate": "Tidak ada perkiraan", + "new": "Sistem perkiraan baru", "create": { "custom": "Kustom", "start_from_scratch": "Mulai dari awal", "choose_template": "Pilih template", "choose_estimate_system": "Pilih sistem perkiraan", - "enter_estimate_point": "Masukkan perkiraan" + "enter_estimate_point": "Masukkan perkiraan", + "step": "Langkah {step} dari {total}", + "label": "Buat perkiraan" }, "toasts": { "created": { @@ -1794,6 +1797,25 @@ "already_exists": "Nilai perkiraan sudah ada.", "unsaved_changes": "Anda memiliki beberapa perubahan yang belum disimpan, Harap simpan sebelum mengklik selesai", "remove_empty": "Perkiraan tidak boleh kosong. Masukkan nilai di setiap bidang atau hapus yang tidak memiliki nilai." + }, + "systems": { + "points": { + "label": "Poin", + "fibonacci": "Fibonacci", + "linear": "Linear", + "squares": "Kuadrat", + "custom": "Kustom" + }, + "categories": { + "label": "Kategori", + "t_shirt_sizes": "Ukuran Baju", + "easy_to_hard": "Mudah ke sulit", + "custom": "Kustom" + }, + "time": { + "label": "Waktu", + "hours": "Jam" + } } }, "automations": { diff --git a/packages/i18n/src/locales/it/translations.json b/packages/i18n/src/locales/it/translations.json index 4cfe9c2b5cd..efce51ee36a 100644 --- a/packages/i18n/src/locales/it/translations.json +++ b/packages/i18n/src/locales/it/translations.json @@ -1739,12 +1739,15 @@ "title": "Abilita le stime per il mio progetto", "description": "Ti aiutano a comunicare la complessità e il carico di lavoro del team.", "no_estimate": "Nessuna stima", + "new": "Nuovo sistema di stima", "create": { "custom": "Personalizzato", "start_from_scratch": "Inizia da zero", "choose_template": "Scegli un modello", "choose_estimate_system": "Scegli un sistema di stima", - "enter_estimate_point": "Inserisci stima" + "enter_estimate_point": "Inserisci stima", + "step": "Passo {step} di {total}", + "label": "Crea stima" }, "toasts": { "created": { @@ -1793,6 +1796,25 @@ "already_exists": "Il valore della stima esiste già.", "unsaved_changes": "Hai delle modifiche non salvate. Salva prima di cliccare su Fatto", "remove_empty": "La stima non può essere vuota. Inserisci un valore in ogni campo o rimuovi quelli per cui non hai valori." + }, + "systems": { + "points": { + "label": "Punti", + "fibonacci": "Fibonacci", + "linear": "Lineare", + "squares": "Quadrati", + "custom": "Personalizzato" + }, + "categories": { + "label": "Categorie", + "t_shirt_sizes": "Taglie T-Shirt", + "easy_to_hard": "Da facile a difficile", + "custom": "Personalizzato" + }, + "time": { + "label": "Tempo", + "hours": "Ore" + } } }, "automations": { diff --git a/packages/i18n/src/locales/ja/translations.json b/packages/i18n/src/locales/ja/translations.json index 44c9488baed..e7c28d65a9c 100644 --- a/packages/i18n/src/locales/ja/translations.json +++ b/packages/i18n/src/locales/ja/translations.json @@ -1740,12 +1740,15 @@ "title": "プロジェクトの見積もりを有効にする", "description": "チームの複雑さと作業負荷を伝えるのに役立ちます。", "no_estimate": "見積もりなし", + "new": "新しい見積もりシステム", "create": { "custom": "カスタム", "start_from_scratch": "最初から開始", "choose_template": "テンプレートを選択", "choose_estimate_system": "見積もりシステムを選択", - "enter_estimate_point": "見積もりを入力" + "enter_estimate_point": "見積もりを入力", + "step": "ステップ {step} の {total}", + "label": "見積もりを作成" }, "toasts": { "created": { @@ -1794,6 +1797,25 @@ "already_exists": "見積もり値は既に存在します。", "unsaved_changes": "未保存の変更があります。完了をクリックする前に保存してください", "remove_empty": "見積もりは空にできません。各フィールドに値を入力するか、値がないフィールドを削除してください。" + }, + "systems": { + "points": { + "label": "ポイント", + "fibonacci": "フィボナッチ", + "linear": "リニア", + "squares": "二乗", + "custom": "カスタム" + }, + "categories": { + "label": "カテゴリー", + "t_shirt_sizes": "Tシャツサイズ", + "easy_to_hard": "簡単から難しい", + "custom": "カスタム" + }, + "time": { + "label": "時間", + "hours": "時間" + } } }, "automations": { diff --git a/packages/i18n/src/locales/ko/translations.json b/packages/i18n/src/locales/ko/translations.json index f0f74991f6d..ac43b6d5dad 100644 --- a/packages/i18n/src/locales/ko/translations.json +++ b/packages/i18n/src/locales/ko/translations.json @@ -1742,12 +1742,15 @@ "title": "프로젝트 추정 활성화", "description": "팀의 복잡성과 작업량을 전달하는 데 도움이 됩니다.", "no_estimate": "추정 없음", + "new": "새 추정 시스템", "create": { "custom": "사용자 지정", "start_from_scratch": "처음부터 시작", "choose_template": "템플릿 선택", "choose_estimate_system": "추정 시스템 선택", - "enter_estimate_point": "추정 입력" + "enter_estimate_point": "추정 입력", + "step": "단계 {step}/{total}", + "label": "추정 생성" }, "toasts": { "created": { @@ -1796,6 +1799,25 @@ "already_exists": "추정 값이 이미 존재합니다.", "unsaved_changes": "저장되지 않은 변경 사항이 있습니다. 완료를 클릭하기 전에 저장하세요", "remove_empty": "추정은 비어있을 수 없습니다. 각 필드에 값을 입력하거나 값이 없는 필드를 제거하세요." + }, + "systems": { + "points": { + "label": "포인트", + "fibonacci": "피보나치", + "linear": "선형", + "squares": "제곱", + "custom": "사용자 정의" + }, + "categories": { + "label": "카테고리", + "t_shirt_sizes": "티셔츠 사이즈", + "easy_to_hard": "쉬움에서 어려움", + "custom": "사용자 정의" + }, + "time": { + "label": "시간", + "hours": "시간" + } } }, "automations": { diff --git a/packages/i18n/src/locales/pl/translations.json b/packages/i18n/src/locales/pl/translations.json index 048df2a2ffd..4de8715ad83 100644 --- a/packages/i18n/src/locales/pl/translations.json +++ b/packages/i18n/src/locales/pl/translations.json @@ -1717,12 +1717,15 @@ "title": "Włącz szacunki dla mojego projektu", "description": "Pomagają w komunikacji o złożoności i obciążeniu zespołu.", "no_estimate": "Bez szacunku", + "new": "Nowy system szacowania", "create": { "custom": "Niestandardowy", "start_from_scratch": "Zacznij od zera", "choose_template": "Wybierz szablon", "choose_estimate_system": "Wybierz system szacowania", - "enter_estimate_point": "Wprowadź punkt szacunkowy" + "enter_estimate_point": "Wprowadź punkt szacunkowy", + "step": "Krok {step} z {total}", + "label": "Utwórz szacunek" }, "toasts": { "created": { @@ -1771,6 +1774,25 @@ "already_exists": "Wartość szacunku już istnieje.", "unsaved_changes": "Masz niezapisane zmiany. Zapisz je przed kliknięciem 'gotowe'", "remove_empty": "Szacunek nie może być pusty. Wprowadź wartość w każde pole lub usuń te, dla których nie masz wartości." + }, + "systems": { + "points": { + "label": "Punkty", + "fibonacci": "Fibonacci", + "linear": "Liniowy", + "squares": "Kwadraty", + "custom": "Własny" + }, + "categories": { + "label": "Kategorie", + "t_shirt_sizes": "Rozmiary koszulek", + "easy_to_hard": "Od łatwego do trudnego", + "custom": "Własne" + }, + "time": { + "label": "Czas", + "hours": "Godziny" + } } }, "automations": { diff --git a/packages/i18n/src/locales/pt-BR/translations.json b/packages/i18n/src/locales/pt-BR/translations.json index 97b08022129..a37a0577757 100644 --- a/packages/i18n/src/locales/pt-BR/translations.json +++ b/packages/i18n/src/locales/pt-BR/translations.json @@ -1742,12 +1742,15 @@ "title": "Habilitar estimativas para meu projeto", "description": "Elas ajudam você a comunicar a complexidade e a carga de trabalho da equipe.", "no_estimate": "Sem estimativa", + "new": "Novo sistema de estimativa", "create": { "custom": "Personalizado", "start_from_scratch": "Começar do zero", "choose_template": "Escolher um modelo", "choose_estimate_system": "Escolher um sistema de estimativa", - "enter_estimate_point": "Inserir estimativa" + "enter_estimate_point": "Inserir estimativa", + "step": "Passo {step} de {total}", + "label": "Criar estimativa" }, "toasts": { "created": { @@ -1796,6 +1799,25 @@ "already_exists": "O valor da estimativa já existe.", "unsaved_changes": "Você tem algumas alterações não salvas. Por favor, salve-as antes de clicar em concluir", "remove_empty": "A estimativa não pode estar vazia. Insira um valor em cada campo ou remova aqueles para os quais você não tem valores." + }, + "systems": { + "points": { + "label": "Pontos", + "fibonacci": "Fibonacci", + "linear": "Linear", + "squares": "Quadrados", + "custom": "Personalizado" + }, + "categories": { + "label": "Categorias", + "t_shirt_sizes": "Tamanhos de Camiseta", + "easy_to_hard": "Fácil a difícil", + "custom": "Personalizado" + }, + "time": { + "label": "Tempo", + "hours": "Horas" + } } }, "automations": { diff --git a/packages/i18n/src/locales/ro/translations.json b/packages/i18n/src/locales/ro/translations.json index 71d5183e7b2..69a3f40ae45 100644 --- a/packages/i18n/src/locales/ro/translations.json +++ b/packages/i18n/src/locales/ro/translations.json @@ -1740,12 +1740,15 @@ "title": "Activează estimările pentru proiectul meu", "description": "Te ajută să comunici complexitatea și volumul de muncă al echipei.", "no_estimate": "Fără estimare", + "new": "Noul sistem de estimare", "create": { "custom": "Personalizat", "start_from_scratch": "Începe de la zero", "choose_template": "Alege un șablon", "choose_estimate_system": "Alege un sistem de estimare", - "enter_estimate_point": "Introdu estimarea" + "enter_estimate_point": "Introdu estimarea", + "step": "Pasul {step} de {total}", + "label": "Creează estimare" }, "toasts": { "created": { @@ -1794,6 +1797,25 @@ "already_exists": "Valoarea estimării există deja.", "unsaved_changes": "Ai modificări nesalvate, te rugăm să le salvezi înainte de a finaliza", "remove_empty": "Estimarea nu poate fi goală. Introdu o valoare în fiecare câmp sau elimină câmpurile pentru care nu ai valori." + }, + "systems": { + "points": { + "label": "Puncte", + "fibonacci": "Fibonacci", + "linear": "Linear", + "squares": "Pătrate", + "custom": "Personalizat" + }, + "categories": { + "label": "Categorii", + "t_shirt_sizes": "Mărimi tricou", + "easy_to_hard": "De la ușor la greu", + "custom": "Personalizat" + }, + "time": { + "label": "Timp", + "hours": "Ore" + } } }, "automations": { diff --git a/packages/i18n/src/locales/ru/translations.json b/packages/i18n/src/locales/ru/translations.json index 0b43356f998..836f905836a 100644 --- a/packages/i18n/src/locales/ru/translations.json +++ b/packages/i18n/src/locales/ru/translations.json @@ -1740,12 +1740,15 @@ "title": "Включить оценки для моего проекта", "description": "Они помогают вам в общении о сложности и рабочей нагрузке команды.", "no_estimate": "Без оценки", + "new": "Новая система оценок", "create": { "custom": "Пользовательская", "start_from_scratch": "Начать с нуля", "choose_template": "Выбрать шаблон", "choose_estimate_system": "Выбрать систему оценок", - "enter_estimate_point": "Ввести оценку" + "enter_estimate_point": "Ввести оценку", + "step": "Шаг {step} из {total}", + "label": "Создать оценку" }, "toasts": { "created": { @@ -1794,6 +1797,25 @@ "already_exists": "Значение оценки уже существует.", "unsaved_changes": "У вас есть несохраненные изменения. Пожалуйста, сохраните их перед нажатием на готово", "remove_empty": "Оценка не может быть пустой. Введите значение в каждое поле или удалите те, для которых у вас нет значений." + }, + "systems": { + "points": { + "label": "Баллы", + "fibonacci": "Фибоначчи", + "linear": "Линейная", + "squares": "Квадраты", + "custom": "Пользовательская" + }, + "categories": { + "label": "Категории", + "t_shirt_sizes": "Размеры футболок", + "easy_to_hard": "От простого к сложному", + "custom": "Пользовательская" + }, + "time": { + "label": "Время", + "hours": "Часы" + } } }, "automations": { diff --git a/packages/i18n/src/locales/sk/translations.json b/packages/i18n/src/locales/sk/translations.json index 63acc072358..6d2b30f71ec 100644 --- a/packages/i18n/src/locales/sk/translations.json +++ b/packages/i18n/src/locales/sk/translations.json @@ -1739,12 +1739,15 @@ "title": "Povoliť odhady pre môj projekt", "description": "Pomáhajú vám komunikovať zložitosť a pracovné zaťaženie tímu.", "no_estimate": "Bez odhadu", + "new": "Nový systém odhadov", "create": { "custom": "Vlastné", "start_from_scratch": "Začať od nuly", "choose_template": "Vybrať šablónu", "choose_estimate_system": "Vybrať systém odhadov", - "enter_estimate_point": "Zadať bod odhadu" + "enter_estimate_point": "Zadať bod odhadu", + "step": "Krok {step} z {total}", + "label": "Vytvoriť odhad" }, "toasts": { "created": { @@ -1793,6 +1796,25 @@ "already_exists": "Hodnota odhadu už existuje.", "unsaved_changes": "Máte neuložené zmeny. Prosím, uložte ich pred kliknutím na hotovo", "remove_empty": "Odhad nemôže byť prázdny. Zadajte hodnotu do každého poľa alebo odstráňte prázdne polia." + }, + "systems": { + "points": { + "label": "Body", + "fibonacci": "Fibonacci", + "linear": "Lineárne", + "squares": "Štvorce", + "custom": "Vlastné" + }, + "categories": { + "label": "Kategórie", + "t_shirt_sizes": "Veľkosti tričiek", + "easy_to_hard": "Od jednoduchého po náročné", + "custom": "Vlastné" + }, + "time": { + "label": "Čas", + "hours": "Hodiny" + } } }, "automations": { diff --git a/packages/i18n/src/locales/ua/translations.json b/packages/i18n/src/locales/ua/translations.json index 69236d9f1df..0f6142a3760 100644 --- a/packages/i18n/src/locales/ua/translations.json +++ b/packages/i18n/src/locales/ua/translations.json @@ -1716,12 +1716,15 @@ "title": "Увімкнути оцінки для мого проєкту", "description": "Вони допомагають вам повідомляти про складність та навантаження команди.", "no_estimate": "Без оцінки", + "new": "Нова система оцінок", "create": { "custom": "Власний", "start_from_scratch": "Почати з нуля", "choose_template": "Вибрати шаблон", "choose_estimate_system": "Вибрати систему оцінок", - "enter_estimate_point": "Введіть оцінку" + "enter_estimate_point": "Введіть оцінку", + "step": "Крок {step} з {total}", + "label": "Створити оцінку" }, "toasts": { "created": { @@ -1770,6 +1773,25 @@ "already_exists": "Таке значення оцінки вже існує.", "unsaved_changes": "У вас є незбережені зміни. Збережіть їх перед тим, як натиснути 'готово'", "remove_empty": "Оцінка не може бути порожньою. Введіть значення в кожне поле або видаліть ті, для яких у вас немає значень." + }, + "systems": { + "points": { + "label": "Бали", + "fibonacci": "Фібоначчі", + "linear": "Лінійна", + "squares": "Квадрати", + "custom": "Власна" + }, + "categories": { + "label": "Категорії", + "t_shirt_sizes": "Розміри футболок", + "easy_to_hard": "Від легкого до складного", + "custom": "Власна" + }, + "time": { + "label": "Час", + "hours": "Години" + } } }, "automations": { diff --git a/packages/i18n/src/locales/vi-VN/translations.json b/packages/i18n/src/locales/vi-VN/translations.json index 7c2c0a40b40..5a1b8f20813 100644 --- a/packages/i18n/src/locales/vi-VN/translations.json +++ b/packages/i18n/src/locales/vi-VN/translations.json @@ -1715,12 +1715,15 @@ "title": "Bật ước tính cho dự án của tôi", "description": "Chúng giúp bạn truyền đạt độ phức tạp và khối lượng công việc của nhóm.", "no_estimate": "Không có ước tính", + "new": "Hệ thống ước tính mới", "create": { "custom": "Tùy chỉnh", "start_from_scratch": "Bắt đầu từ đầu", "choose_template": "Chọn mẫu", "choose_estimate_system": "Chọn hệ thống ước tính", - "enter_estimate_point": "Nhập điểm ước tính" + "enter_estimate_point": "Nhập điểm ước tính", + "step": "Bước {step} của {total}", + "label": "Tạo ước tính" }, "toasts": { "created": { @@ -1768,6 +1771,25 @@ "empty": "Giá trị ước tính không được để trống", "already_exists": "Giá trị ước tính này đã tồn tại", "unsaved_changes": "Bạn có thay đổi chưa lưu. Vui lòng lưu trước khi nhấn 'xong'" + }, + "systems": { + "points": { + "label": "Điểm", + "fibonacci": "Fibonacci", + "linear": "Tuyến tính", + "squares": "Bình phương", + "custom": "Tùy chỉnh" + }, + "categories": { + "label": "Danh mục", + "t_shirt_sizes": "Kích cỡ áo", + "easy_to_hard": "Dễ đến khó", + "custom": "Tùy chỉnh" + }, + "time": { + "label": "Thời gian", + "hours": "Giờ" + } } }, "automations": { diff --git a/packages/i18n/src/locales/zh-CN/translations.json b/packages/i18n/src/locales/zh-CN/translations.json index a382c8c2e20..c270bc9a786 100644 --- a/packages/i18n/src/locales/zh-CN/translations.json +++ b/packages/i18n/src/locales/zh-CN/translations.json @@ -1740,12 +1740,15 @@ "title": "为我的项目启用估算", "description": "它们有助于您传达团队的复杂性和工作量。", "no_estimate": "无估算", + "new": "新估算系统", "create": { "custom": "自定义", "start_from_scratch": "从头开始", "choose_template": "选择模板", "choose_estimate_system": "选择估算系统", - "enter_estimate_point": "输入估算点数" + "enter_estimate_point": "输入估算点数", + "step": "步骤 {step} 共 {total}", + "label": "创建估算" }, "toasts": { "created": { @@ -1784,6 +1787,16 @@ "message": "无法禁用估算。请重试" } } + }, + "validation": { + "min_length": "估算需要大于0。", + "unable_to_process": "我们无法处理您的请求,请重试。", + "numeric": "估算需要是数值。", + "character": "估算需要是字符值。", + "empty": "估算值不能为空。", + "already_exists": "估算值已存在。", + "unsaved_changes": "您有未保存的更改,请在点击完成前保存。", + "remove_empty": "估算不能为空。请在每个字段中输入值或删除没有值的字段。" } }, "automations": { diff --git a/packages/i18n/src/locales/zh-TW/translations.json b/packages/i18n/src/locales/zh-TW/translations.json index e86642f3e00..d49f47cc9d0 100644 --- a/packages/i18n/src/locales/zh-TW/translations.json +++ b/packages/i18n/src/locales/zh-TW/translations.json @@ -1742,12 +1742,15 @@ "title": "為我的專案啟用預估", "description": "幫助你傳達團隊的複雜性和工作負荷。", "no_estimate": "無預估", + "new": "新估算系統", "create": { "custom": "自訂", "start_from_scratch": "從頭開始", "choose_template": "選擇範本", "choose_estimate_system": "選擇預估系統", - "enter_estimate_point": "輸入預估" + "enter_estimate_point": "輸入預估", + "step": "步驟 {step} 共 {total}", + "label": "建立預估" }, "toasts": { "created": { @@ -1796,6 +1799,25 @@ "already_exists": "預估值已存在。", "unsaved_changes": "你有未儲存的變更。請在點擊完成前儲存", "remove_empty": "預估不能為空。在每個欄位中輸入值或移除沒有值的欄位。" + }, + "systems": { + "points": { + "label": "點數", + "fibonacci": "費波那契數列", + "linear": "線性", + "squares": "平方數", + "custom": "自訂" + }, + "categories": { + "label": "類別", + "t_shirt_sizes": "T恤尺寸", + "easy_to_hard": "簡單到困難", + "custom": "自訂" + }, + "time": { + "label": "時間", + "hours": "小時" + } } }, "automations": { diff --git a/packages/types/src/estimate.d.ts b/packages/types/src/estimate.d.ts index 145edf11774..0de2019fa0a 100644 --- a/packages/types/src/estimate.d.ts +++ b/packages/types/src/estimate.d.ts @@ -14,10 +14,7 @@ export interface IEstimatePoint { updated_by: string | undefined; } -export type TEstimateSystemKeys = - | EEstimateSystem.POINTS - | EEstimateSystem.CATEGORIES - | EEstimateSystem.TIME; +export type TEstimateSystemKeys = EEstimateSystem.POINTS | EEstimateSystem.CATEGORIES | EEstimateSystem.TIME; export interface IEstimate { id: string | undefined; @@ -55,12 +52,14 @@ export type TEstimatePointsObject = { export type TTemplateValues = { title: string; + i18n_title: string; values: TEstimatePointsObject[]; hide?: boolean; }; export type TEstimateSystem = { name: string; + i18n_name: string; templates: Record; is_available: boolean; is_ee: boolean; @@ -82,6 +81,4 @@ export type TEstimateTypeErrorObject = { message: string | undefined; }; -export type TEstimateTypeError = - | Record - | undefined; +export type TEstimateTypeError = Record | undefined; diff --git a/packages/ui/src/dropdown/common/options.tsx b/packages/ui/src/dropdown/common/options.tsx index 0657ff0c5ba..6be99a9d93c 100644 --- a/packages/ui/src/dropdown/common/options.tsx +++ b/packages/ui/src/dropdown/common/options.tsx @@ -42,7 +42,7 @@ export const DropdownOptions: React.FC )} -
+
<> {options ? ( options.length > 0 ? ( diff --git a/web/ce/constants/estimates.ts b/web/ce/constants/estimates.ts index 6692c8cbdb8..2cba8ac837a 100644 --- a/web/ce/constants/estimates.ts +++ b/web/ce/constants/estimates.ts @@ -23,9 +23,11 @@ export const estimateCount = { export const ESTIMATE_SYSTEMS: TEstimateSystems = { points: { name: "Points", + i18n_name: "project_settings.estimates.systems.points.label", templates: { fibonacci: { title: "Fibonacci", + i18n_title: "project_settings.estimates.systems.points.fibonacci", values: [ { id: undefined, key: 1, value: "1" }, { id: undefined, key: 2, value: "2" }, @@ -37,6 +39,7 @@ export const ESTIMATE_SYSTEMS: TEstimateSystems = { }, linear: { title: "Linear", + i18n_title: "project_settings.estimates.systems.points.linear", values: [ { id: undefined, key: 1, value: "1" }, { id: undefined, key: 2, value: "2" }, @@ -48,6 +51,7 @@ export const ESTIMATE_SYSTEMS: TEstimateSystems = { }, squares: { title: "Squares", + i18n_title: "project_settings.estimates.systems.points.squares", values: [ { id: undefined, key: 1, value: "1" }, { id: undefined, key: 2, value: "4" }, @@ -59,6 +63,7 @@ export const ESTIMATE_SYSTEMS: TEstimateSystems = { }, custom: { title: "Custom", + i18n_title: "project_settings.estimates.systems.points.custom", values: [ { id: undefined, key: 1, value: "1" }, { id: undefined, key: 2, value: "2" }, @@ -71,9 +76,11 @@ export const ESTIMATE_SYSTEMS: TEstimateSystems = { }, categories: { name: "Categories", + i18n_name: "project_settings.estimates.systems.categories.label", templates: { t_shirt_sizes: { title: "T-Shirt Sizes", + i18n_title: "project_settings.estimates.systems.categories.t_shirt_sizes", values: [ { id: undefined, key: 1, value: "XS" }, { id: undefined, key: 2, value: "S" }, @@ -85,6 +92,7 @@ export const ESTIMATE_SYSTEMS: TEstimateSystems = { }, easy_to_hard: { title: "Easy to hard", + i18n_title: "project_settings.estimates.systems.categories.easy_to_hard", values: [ { id: undefined, key: 1, value: "Easy" }, { id: undefined, key: 2, value: "Medium" }, @@ -94,6 +102,7 @@ export const ESTIMATE_SYSTEMS: TEstimateSystems = { }, custom: { title: "Custom", + i18n_title: "project_settings.estimates.systems.categories.custom", values: [ { id: undefined, key: 1, value: "Easy" }, { id: undefined, key: 2, value: "Hard" }, @@ -106,9 +115,11 @@ export const ESTIMATE_SYSTEMS: TEstimateSystems = { }, time: { name: "Time", + i18n_name: "project_settings.estimates.systems.time.label", templates: { hours: { title: "Hours", + i18n_title: "project_settings.estimates.systems.time.hours", values: [ { id: undefined, key: 1, value: "1" }, { id: undefined, key: 2, value: "2" }, diff --git a/web/core/components/estimates/create/modal.tsx b/web/core/components/estimates/create/modal.tsx index 547038a903f..c5760fb9908 100644 --- a/web/core/components/estimates/create/modal.tsx +++ b/web/core/components/estimates/create/modal.tsx @@ -153,9 +153,14 @@ export const CreateEstimateModal: FC = observer((props) =>
)} -
New estimate system
+
{t("project_settings.estimates.new")}
+
+
+ {t("project_settings.estimates.create.step", { + step: renderEstimateStepsCount, + total: 2, + })}
-
Step {renderEstimateStepsCount} of 2
{/* estimate steps */} @@ -191,11 +196,11 @@ export const CreateEstimateModal: FC = observer((props) =>
{estimatePoints && ( )}
diff --git a/web/core/components/estimates/create/stage-one.tsx b/web/core/components/estimates/create/stage-one.tsx index 6c195fa941f..a32ab0d411c 100644 --- a/web/core/components/estimates/create/stage-one.tsx +++ b/web/core/components/estimates/create/stage-one.tsx @@ -38,18 +38,18 @@ export const EstimateCreateStageOne: FC = (props) => { return { label: !ESTIMATE_SYSTEMS[currentSystem]?.is_available ? (
- {ESTIMATE_SYSTEMS[currentSystem]?.name} + {t(ESTIMATE_SYSTEMS[currentSystem]?.i18n_name)}
) : !isEnabled ? (
- {ESTIMATE_SYSTEMS[currentSystem]?.name} + {t(ESTIMATE_SYSTEMS[currentSystem]?.i18n_name)}
) : ( -
{ESTIMATE_SYSTEMS[currentSystem]?.name}
+
{t(ESTIMATE_SYSTEMS[currentSystem]?.i18n_name)}
), value: system, disabled: !isEnabled, diff --git a/web/core/components/estimates/inputs/text-input.tsx b/web/core/components/estimates/inputs/text-input.tsx index 0380678868c..e6e930abe9e 100644 --- a/web/core/components/estimates/inputs/text-input.tsx +++ b/web/core/components/estimates/inputs/text-input.tsx @@ -16,7 +16,7 @@ export const EstimateTextInput: FC = (props) => { value={value} onChange={(e) => handleEstimateInputValue(e.target.value)} className="border-none focus:ring-0 focus:border-0 focus:outline-none px-3 py-2 w-full bg-transparent text-sm" - placeholder={t("project_settings.estimates.create.enter_estimate_input")} + placeholder={t("project_settings.estimates.create.enter_estimate_point")} autoFocus type="text" />