Merge branch 'dev' of https://github.com/opf/openproject into dev
commit
0d75077c09
After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 38 KiB |
File diff suppressed because it is too large
Load Diff
@ -1,899 +0,0 @@ |
||||
#-- copyright |
||||
#OpenProject is an open source project management software. |
||||
#Copyright (C) 2012-2020 the OpenProject GmbH |
||||
#This program is free software; you can redistribute it and/or |
||||
#modify it under the terms of the GNU General Public License version 3. |
||||
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: |
||||
#Copyright (C) 2006-2017 Jean-Philippe Lang |
||||
#Copyright (C) 2010-2013 the ChiliProject Team |
||||
#This program is free software; you can redistribute it and/or |
||||
#modify it under the terms of the GNU General Public License |
||||
#as published by the Free Software Foundation; either version 2 |
||||
#of the License, or (at your option) any later version. |
||||
#This program is distributed in the hope that it will be useful, |
||||
#but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
#GNU General Public License for more details. |
||||
#You should have received a copy of the GNU General Public License |
||||
#along with this program; if not, write to the Free Software |
||||
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
||||
#See docs/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
bg: |
||||
js: |
||||
ajax: |
||||
hide: "Скрий" |
||||
loading: "Зареждане ..." |
||||
attachments: |
||||
draggable_hint: | |
||||
Drag on editor field to inline image or reference attachment. Closed editor fields will be opened while you keep dragging. |
||||
autocomplete_select: |
||||
placeholder: |
||||
multi: "Add \"%{name}\"" |
||||
single: "Select \"%{name}\"" |
||||
remove: "Remove %{name}" |
||||
active: "Active %{label} %{name}" |
||||
close_popup_title: "Затвори изкачащият прозорец" |
||||
close_filter_title: "Close filter" |
||||
close_form_title: "Close form" |
||||
button_add_watcher: "Добавяне на наблюдател" |
||||
button_back: "Назад" |
||||
button_back_to_list_view: "Back to list view" |
||||
button_cancel: "Отказ" |
||||
button_close: "Close" |
||||
button_change_project: "Промяна на проект" |
||||
button_check_all: "Избери всички" |
||||
button_configure-form: "Configure form" |
||||
button_confirm: "Confirm" |
||||
button_continue: "Continue" |
||||
button_copy: "Копиране" |
||||
button_custom-fields: "допълнителни полета" |
||||
button_delete: "Изтрий" |
||||
button_delete_watcher: "Премахни наблюдаващ" |
||||
button_details_view: "Детайлен изглед" |
||||
button_duplicate: "Дублиране" |
||||
button_edit: "Редактиране" |
||||
button_filter: "Филтър" |
||||
button_advanced_filter: "Advanced filter" |
||||
button_list_view: "Изглед списък" |
||||
button_show_view: "Изглед на цял екран" |
||||
button_log_time: "Отчетено време" |
||||
button_more: "Повече" |
||||
button_open_details: "Отвори детайлен изглед" |
||||
button_close_details: "Close details view" |
||||
button_open_fullscreen: "Отвори на цял екран" |
||||
button_show_cards: "Показване на изглед карта" |
||||
button_show_list: "Показване на изглед списък" |
||||
button_quote: "Цитат" |
||||
button_save: "Запази" |
||||
button_settings: "Настройки" |
||||
button_uncheck_all: "Размаркирай всички" |
||||
button_update: "Обнови" |
||||
button_export-pdf: "Свали PDF" |
||||
button_export-atom: "Свали Atom" |
||||
calendar: |
||||
title: 'Календар' |
||||
too_many: 'Общо има %{count} работни пакети, но могат да бъдат показани само %{max}.' |
||||
card: |
||||
add_new: 'Add new card' |
||||
highlighting: |
||||
inline: 'Highlight inline:' |
||||
entire_card_by: 'Entire card by' |
||||
remove_from_list: 'Remove card from list' |
||||
caption_rate_history: "Rate history" |
||||
clipboard: |
||||
browser_error: "Вашият браузър не поддържа копиране в клипборд. Моля копирайте избрания текст ръчно." |
||||
copied_successful: "Копирането в клипборд е успешно!" |
||||
chart: |
||||
type: 'Тип на диаграмата' |
||||
axis_criteria: 'Критерии за ос' |
||||
modal_title: 'Work package graph configuration' |
||||
types: |
||||
line: 'Line' |
||||
horizontal_bar: 'Horizontal bar' |
||||
bar: 'Bar' |
||||
pie: 'Pie' |
||||
doughnut: 'Doughnut' |
||||
radar: 'Radar' |
||||
polar_area: 'Polar area' |
||||
tabs: |
||||
graph_settings: 'Общ' |
||||
dataset: 'Dataset %{number}' |
||||
errors: |
||||
could_not_load: 'The data to display the graph could not be loaded. The necessary permissions may be lacking.' |
||||
description_available_columns: "Достъпни колони" |
||||
description_current_position: "You are here: " |
||||
description_select_work_package: "Избери работен пакет #%{id}" |
||||
description_selected_columns: "Избрани колони" |
||||
description_subwork_package: "Подработен пакет #%{id}" |
||||
editor: |
||||
preview: 'Toggle preview mode' |
||||
source_code: 'Toggle Markdown source mode' |
||||
error_saving_failed: 'Saving the document failed with the following error: %{error}' |
||||
error_initialization_failed: 'Failed to initialize CKEditor!' |
||||
mode: |
||||
manual: 'Switch to Markdown source' |
||||
wysiwyg: 'Switch to WYSIWYG editor' |
||||
macro: |
||||
child_pages: |
||||
button: 'Links to child pages' |
||||
include_parent: 'Include parent' |
||||
text: '[Placeholder] Links to child pages of' |
||||
page: 'Wiki страница' |
||||
this_page: 'this page' |
||||
hint: | |
||||
Leave this field empty to list all child pages of the current page. If you want to reference a different page, provide its title or slug. |
||||
code_block: |
||||
button: 'Insert code snippet' |
||||
title: 'Insert / edit Code snippet' |
||||
language: 'Formatting language' |
||||
language_hint: 'Enter the formatting language that will be used for highlighting (if supported).' |
||||
dropdown: |
||||
macros: 'Macros' |
||||
chose_macro: 'Chose macro' |
||||
toc: 'Table of contents' |
||||
toolbar_help: 'Click to select widget and show the toolbar. Double-click to edit widget' |
||||
wiki_page_include: |
||||
button: 'Include content of another wiki page' |
||||
text: '[Placeholder] Included wiki page of' |
||||
page: 'Wiki страница' |
||||
not_set: '(Page not yet set)' |
||||
hint: | |
||||
Include the content of another wiki page by specifying its title or slug. |
||||
You can include the wiki page of another project by separating them with a colon like the following example. |
||||
work_package_button: |
||||
button: 'Insert create work package button' |
||||
type: 'Work package type' |
||||
button_style: 'Use button style' |
||||
button_style_hint: 'Optional: Check to make macro appear as a button, not as a link.' |
||||
without_type: 'Create work package' |
||||
with_type: 'Create work package (Type: %{typename})' |
||||
embedded_table: |
||||
button: 'Embed work package table' |
||||
text: '[Placeholder] Embedded work package table' |
||||
embedded_calendar: |
||||
text: '[Placeholder] Embedded calendar' |
||||
admin: |
||||
type_form: |
||||
custom_field: 'Потребителски полета' |
||||
inactive: 'Inactive' |
||||
drag_to_activate: "Drag fields from here to activate them" |
||||
add_group: "Add attribute group" |
||||
add_table: "Add table of related work packages" |
||||
edit_query: 'Edit query' |
||||
new_group: 'Нова група' |
||||
reset_to_defaults: 'Reset to defaults' |
||||
custom_actions: |
||||
date: |
||||
specific: 'на' |
||||
current_date: 'Current date' |
||||
error: |
||||
internal: "Възникна вътрешна грешка." |
||||
cannot_save_changes_with_message: "Cannot save your changes due to the following error: %{error}" |
||||
query_saving: "The view could not be saved." |
||||
embedded_table_loading: "The embedded view could not be loaded: %{message}" |
||||
enumeration_activities: "Дейности (проследяване по време)" |
||||
enumeration_doc_categories: "Document categories" |
||||
enumeration_work_package_priorities: "Приоритети на работни пакети" |
||||
filter: |
||||
description: |
||||
text_open_filter: "Отворете този филтър с клавишите \"ALT\" и клавишите за стрелки." |
||||
text_close_filter: "За да изберете запис махнете фокуса например чрез натискане на Enter. За да оставите без филтър изберете първия (празен) запис." |
||||
noneElement: "(none)" |
||||
time_zone_converted: |
||||
two_values: "%{from} - %{to} in your local time." |
||||
only_start: "From %{from} in your local time." |
||||
only_end: "Till %{to} in your local time." |
||||
value_spacer: "-" |
||||
sorting: |
||||
criteria: |
||||
one: "Първи критерий за подреждане" |
||||
two: "Втори критерий за подреждане" |
||||
three: "Трети критерий за подреждане" |
||||
upsale_for_more: "For more advanced filters, check out the" |
||||
upsale_link: 'Enterprise Edition.' |
||||
general_text_no: "Не" |
||||
general_text_yes: "Да" |
||||
general_text_No: "Не" |
||||
general_text_Yes: "Да" |
||||
global_roles: Global Roles |
||||
hal: |
||||
error: |
||||
update_conflict_refresh: "Click here to refresh the resource and update to the newest version." |
||||
edit_prohibited: "Editing %{attribute} is blocked for this resource. Either this attribute is derived from relations (e.g, children) or otherwise not configurable." |
||||
format: |
||||
date: "%{attribute} не е валидна дата - очаква се ГГГГ-ММ-ДД." |
||||
general: "Възникна грешка." |
||||
homescreen: |
||||
blocks: |
||||
new_features: |
||||
text_new_features: "Read about new features and product updates." |
||||
current_new_feature_html: "OpenProject contains a new <b>Overview page</b> to <b>display important project information</b> and show whether the project is on track. </br> You can insert various new status widgets, such as: <ul><li>project status,</li> <li>overview of work package status,</li> <li>task progress,</li> <li>tasks assigned to users.</li></ul>" |
||||
learn_about: "Learn more about the new status widgets" |
||||
label_activate: "Activate" |
||||
label_add_column_after: "Add column after" |
||||
label_add_column_before: "Add column before" |
||||
label_add_columns: "Add columns" |
||||
label_add_comment: "Добави коментар" |
||||
label_add_comment_title: "Comment and type @ to notify other people" |
||||
label_add_row_after: "Add row after" |
||||
label_add_row_before: "Add row before" |
||||
label_add_selected_columns: "Добавяне на избраните колони" |
||||
label_added_by: "добавен от" |
||||
label_added_time_by: "Добавено от %{author} %{age}" |
||||
label_ago: "преди" |
||||
label_all: "всички" |
||||
label_all_work_packages: "всички работни пакети" |
||||
label_and: "и" |
||||
label_ascending: "Възходящо" |
||||
label_author: "Автор: %{user}" |
||||
label_avatar: "Аватар" |
||||
label_between: "between" |
||||
label_board: "Board" |
||||
label_board_locked: "Заключен" |
||||
label_board_plural: "Boards" |
||||
label_board_sticky: "Лепкава" |
||||
label_create: "Създаване" |
||||
label_create_work_package: "Създаване на нов работен пакет" |
||||
label_created_by: "Created by" |
||||
label_date: "Дата" |
||||
label_date_with_format: "Въведете %{date_attribute}, като използвате следния формат: %{format}" |
||||
label_deactivate: "Деактивирай" |
||||
label_descending: "Низходящо" |
||||
label_description: "Описание" |
||||
label_details: "Подробности" |
||||
label_display: "Покажи" |
||||
label_cancel_comment: "Отказване от коментар" |
||||
label_closed_work_packages: "затворен" |
||||
label_collapse: "Свий" |
||||
label_collapsed: "свита" |
||||
label_collapse_all: "Свиване на всички" |
||||
label_comment: "Коментар" |
||||
label_committed_at: "%{committed_revision_link} в %{date}" |
||||
label_committed_link: "направена ревизия %{revision_identifier}" |
||||
label_contains: "съдържа" |
||||
label_created_on: "създадена на" |
||||
label_edit_comment: "Редактиране на този коментар" |
||||
label_edit_status: "Edit the status of the work package" |
||||
label_equals: "е" |
||||
label_expand: "Разтвори" |
||||
label_expanded: "разширена" |
||||
label_expand_all: "Разгъване на всички" |
||||
label_expand_project_menu: "Expand project menu" |
||||
label_export: "Експортиране" |
||||
label_filename: "Файл" |
||||
label_filesize: "Размер" |
||||
label_general: "Общ" |
||||
label_greater_or_equal: ">=" |
||||
label_group: 'Група' |
||||
label_group_by: "Групиране по" |
||||
label_group_plural: "Групи" |
||||
label_hide_attributes: "Скрии детайли" |
||||
label_hide_column: "Скрий колоната" |
||||
label_hide_project_menu: "Collapse project menu" |
||||
label_in: "в" |
||||
label_in_less_than: "в по-малко от" |
||||
label_in_more_than: "в повече от" |
||||
label_incoming_emails: "Входящи имейли" |
||||
label_information_plural: "Информация" |
||||
label_import: "Import" |
||||
label_latest_activity: "Latest activity" |
||||
label_last_updated_on: "Последно актуализиран на" |
||||
label_less_or_equal: "<=" |
||||
label_less_than_ago: "по-скоро от няколко дни" |
||||
label_loading: "Зареждане..." |
||||
label_mail_notification: "Известия по имейл" |
||||
label_me: "мен" |
||||
label_meeting_agenda: "Agenda" |
||||
label_meeting_minutes: "Minutes" |
||||
label_menu_collapse: "събери" |
||||
label_menu_expand: "разтвори" |
||||
label_more_than_ago: "повече от преди дни" |
||||
label_next: "Следващо" |
||||
label_no_color: "No color" |
||||
label_no_data: "Няма данни за показване" |
||||
label_no_due_date: "Няма крайна дата" |
||||
label_no_start_date: "няма начална дата" |
||||
label_no_value: "Няма стойност" |
||||
label_none: "none" |
||||
label_not_contains: "doesn't contain" |
||||
label_not_equals: "is not" |
||||
label_on: "на" |
||||
label_open_menu: "Open menu" |
||||
label_open_context_menu: "Open context menu" |
||||
label_open_work_packages: "open" |
||||
label_password: "Парола" |
||||
label_previous: "Предишен" |
||||
label_per_page: "За страница:" |
||||
label_please_wait: "Моля изчакайте" |
||||
label_project_plural: "Проекти" |
||||
label_visibility_settings: "Visibility settings" |
||||
label_quote_comment: "Цитиране на този коментар" |
||||
label_reset: "Нулиране" |
||||
label_remove_column: "Remove column" |
||||
label_remove_columns: "Премахване на избраните колони" |
||||
label_remove_row: "Remove row" |
||||
label_report: "Отчет" |
||||
label_repository_plural: "Хранилища" |
||||
label_save_as: "Запиши като" |
||||
label_select_watcher: "Изберете наблюдаващ..." |
||||
label_selected_filter_list: "Избрани филтри" |
||||
label_show_attributes: "Показване на всички атрибути" |
||||
label_show_in_menu: "Show view in menu" |
||||
label_sort_by: "Подреждане по" |
||||
label_sorted_by: "сортирано по" |
||||
label_sort_higher: "Премести нагоре" |
||||
label_sort_lower: "Премести надолу" |
||||
label_sorting: "Сортиране" |
||||
label_spent_time: "Отработено време" |
||||
label_star_query: "Favored" |
||||
label_press_enter_to_save: "Press enter to save." |
||||
label_public_query: "Публичен" |
||||
label_sum: "Sum" |
||||
label_sum_for: "Сума за" |
||||
label_subject: "Заглавие" |
||||
label_this_week: "тази седмица" |
||||
label_today: "днес" |
||||
label_time_entry_plural: "Отработено време" |
||||
label_up: "Up" |
||||
label_user_plural: "Потребители" |
||||
label_activity_show_only_comments: "Show activities with comments only" |
||||
label_activity_show_all: "Show all activities" |
||||
label_total_progress: "%{percent} % Общ напредък" |
||||
label_total_amount: "Total: %{amount}" |
||||
label_updated_on: "актуализиран на" |
||||
label_value_derived_from_children: "(value derived from children)" |
||||
label_warning: "Предупреждение" |
||||
label_work_package: "Работен пакет" |
||||
label_work_package_plural: "Работни пакети" |
||||
label_watch: "Наблюдавай" |
||||
label_watch_work_package: "Наблюдавай работния пакет" |
||||
label_watcher_added_successfully: "Наблюдаващият е успешно добавен!" |
||||
label_watcher_deleted_successfully: "Наблюдателят успешно е премахнат!" |
||||
label_work_package_details_you_are_here: "Вие сте на раздел %{tab} за %{type} %{subject}." |
||||
label_unwatch: "Спри наблюдение" |
||||
label_unwatch_work_package: "Ненаблюдаван работен пакет" |
||||
label_uploaded_by: "Качено от" |
||||
label_default_queries: "Default views" |
||||
label_starred_queries: "Favorite views" |
||||
label_global_queries: "Public views" |
||||
label_custom_queries: "Private views" |
||||
label_columns: "Колони" |
||||
label_attachments: Файлове |
||||
label_drop_files: Пуснете файлове тук |
||||
label_drop_files_hint: или щракнете, за да добавите файлове |
||||
label_drop_folders_hint: You cannot upload folders as an attachment. Please select single files. |
||||
label_add_attachments: "Add attachments" |
||||
label_formattable_attachment_hint: "Attach and link files by dropping on this field, or pasting from the clipboard." |
||||
label_remove_file: "Изтриване на %{fileName}" |
||||
label_remove_watcher: "Премахване на наблюдателя %{name}" |
||||
label_remove_all_files: Изтриване на всички файлове |
||||
label_add_description: "Добавете на описание за %{file}" |
||||
label_upload_notification: "Uploading files..." |
||||
label_work_package_upload_notification: "Качване на файлове за работа пакет #%{id}: %{subject}" |
||||
label_wp_id_added_by: "#%{id} added by %{author}" |
||||
label_files_to_upload: "Тези файлове ще бъдат качени:" |
||||
label_rejected_files: "Тези файлове не могат да бъдат качени:" |
||||
label_rejected_files_reason: "Тези файлове не могат да бъдат качени, тъй като техният размер е по-голяма от %{maximumFilesize}" |
||||
label_wait: "Моля, изчакайте за конфигурация..." |
||||
label_upload_counter: "%{done} от %{count} файлове са завършени" |
||||
label_validation_error: "Работния пакет не може да бъде съхранен поради следните грешки:" |
||||
label_version_plural: "Версии" |
||||
label_view_has_changed: "This view has unsaved changes. Click to save them." |
||||
help_texts: |
||||
show_modal: 'Show attribute help text entry' |
||||
onboarding: |
||||
buttons: |
||||
skip: 'Skip' |
||||
next: 'Следващо' |
||||
got_it: 'Got it' |
||||
steps: |
||||
help_menu: 'In the <b>Help</b> menu you will find a user guide and additional help resources. <br> Enjoy your work with OpenProject!' |
||||
members: 'Invite new <b>Members</b> to join your project.' |
||||
project_selection: 'Please click on one of the projects with useful demo data to get started. <br> The <b>Demo project</b> suits best for classical project management, while the <b>Scrum project</b> is better for Agile project management.' |
||||
sidebar_arrow: "With the arrow you can navigate back to the project's <b>Main menu</b>." |
||||
welcome: 'Take a three minutes introduction tour to learn the most <b>important features</b>. <br> We recommend completing the steps until the end. You can restart the tour any time.' |
||||
wiki: 'Within the <b>Wiki</b> you can document and share knowledge together with your team.' |
||||
backlogs: |
||||
overview: "Manage your work in the <b>Backlogs</b> view. <br> On the right you have the Product Backlog or a Bug Backlog, on the left you will have the respective sprints. Here you can create <b>epics, user stories, and bugs</b>, prioritize via drag'n'drop and add them to a sprint." |
||||
task_board_arrow: 'To see your <b>Task board</b>, open the Sprint drop-down...' |
||||
task_board_select: '... and select the <b>Task board</b> entry.' |
||||
task_board: "The <b>Task board</b> visualizes the progress for this sprint. Add new tasks or impediments with the + icon next to a user story. Via drag'n'drop you can update the status." |
||||
boards: |
||||
overview: 'Manage your work within an intuitive <b>Boards</b> view.' |
||||
lists: 'You can create multiple lists (columns) within one Board view, e.g. to create a KANBAN board.' |
||||
add: 'Click the + will <b>add a new card</b> to the list within a Board.' |
||||
drag: 'Drag & Drop your cards within a list to re-order, or to another list. A double click will open the details view.' |
||||
wp: |
||||
toggler: "Now let's have a look at the <b>Work package</b> section, which gives you a more detailed view of your work." |
||||
list: 'This is the <b>Work package</b> list with the important work within your project, such as tasks, features, milestones, bugs, and more. <br> You can create or edit a work package directly within this list. To see its details you can double click on a row.' |
||||
full_view: 'Within the <b>Work package details</b> you find all relevant information, such as description, status and priority, activities, dependencies or comments.' |
||||
back_button: 'With the arrow you can navigate back to the work package list.' |
||||
create_button: 'The <b>Create</b> button will add a new work package to your project.' |
||||
timeline_button: 'You can activate the <b>Gantt chart</b> to create a timeline for your project.' |
||||
timeline: 'Here you can edit your project plan. Create new phases, milestones, and add dependencies. All team members can see and update the latest plan at any time.' |
||||
password_confirmation: |
||||
field_description: 'You need to enter your account password to confirm this change.' |
||||
title: 'Confirm your password to continue' |
||||
pagination: |
||||
no_other_page: "You are on the only page." |
||||
pages: |
||||
next: "Forward to the next page" |
||||
previous: "Back to the previous page" |
||||
placeholders: |
||||
default: '-' |
||||
subject: 'Enter subject here' |
||||
selection: 'Моля изберете' |
||||
relation_description: 'Click to add description for this relation' |
||||
project: |
||||
required_outside_context: > |
||||
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated. |
||||
context: 'Project context' |
||||
work_package_belongs_to: 'This work package belongs to project %{projectname}.' |
||||
click_to_switch_context: 'Open this work package in that project.' |
||||
autocompleter: |
||||
label: 'Project autocompletion' |
||||
text_are_you_sure: "Сигурни ли сте?" |
||||
types: |
||||
attribute_groups: |
||||
error_duplicate_group_name: "The name %{group} is used more than once. Group names must be unique." |
||||
error_no_table_configured: "Please configure a table for %{group}." |
||||
reset_title: "Reset form configuration" |
||||
confirm_reset: > |
||||
Warning: Are you sure you want to reset the form configuration? This will reset the attributes to their default group and disable ALL custom fields. |
||||
upgrade_to_ee: "Upgrade to Enterprise Edition" |
||||
upgrade_to_ee_text: "Wow! If you need this feature you are a super pro! Would you mind supporting us OpenSource developers by becoming an Enterprise Edition client?" |
||||
more_information: "More information" |
||||
nevermind: "Nevermind" |
||||
filter_types: |
||||
parent: "being child of" |
||||
precedes: "preceding" |
||||
follows: "following" |
||||
relates: "relating to" |
||||
duplicates: "duplicating" |
||||
duplicated: "дублирано от" |
||||
blocks: "blocking" |
||||
blocked: "блокирано от" |
||||
partof: "being part of" |
||||
includes: "including" |
||||
requires: "requiring" |
||||
required: "required by" |
||||
edit: |
||||
form_configuration: "Конфигуриране на Форма" |
||||
projects: "Проекти" |
||||
settings: "Настройки" |
||||
time_entry: |
||||
project: 'Проект' |
||||
work_package: 'Работен пакет' |
||||
work_package_required: 'Requires selecting a work package first.' |
||||
activity: 'Активност' |
||||
comment: 'Коментар' |
||||
duration: 'Продължителност' |
||||
spent_on: 'Дата' |
||||
hours: 'Часове' |
||||
label: 'Time entry' |
||||
two_factor_authentication: |
||||
label_two_factor_authentication: 'Two-factor authentication' |
||||
watchers: |
||||
label_loading: Зареждане на наблюдаващи... |
||||
label_error_loading: Възникна грешка при зареждане на наблюдатели |
||||
label_search_watchers: Търсене на наблюдатели |
||||
label_add: Добавяне на наблюдатели |
||||
label_discard: Отхвърляне на избора |
||||
typeahead_placeholder: Search for possible watchers |
||||
relation_labels: |
||||
parent: "Горна категория" |
||||
children: "Деца" |
||||
relates: "Свързано с" |
||||
duplicates: "Дубликати" |
||||
duplicated: "Дублирано от" |
||||
blocks: "Блокирания" |
||||
blocked: "Блокирано от" |
||||
precedes: "Предшестващи" |
||||
follows: "Следва" |
||||
includes: "Includes" |
||||
partof: "Part of" |
||||
requires: "Requires" |
||||
required: "Required by" |
||||
relation_type: "relation type" |
||||
relations_hierarchy: |
||||
parent_headline: "Горна категория" |
||||
hierarchy_headline: "Hierarchy" |
||||
children_headline: "Деца" |
||||
relation_buttons: |
||||
set_parent: "Set parent" |
||||
change_parent: "Смяна на главният работен пакет" |
||||
remove_parent: "Remove parent" |
||||
hierarchy_indent: "Indent hierarchy" |
||||
hierarchy_outdent: "Outdent hierarchy" |
||||
group_by_wp_type: "Group by work package type" |
||||
group_by_relation_type: "Group by relation type" |
||||
add_parent: "Add existing parent" |
||||
add_new_child: "Create new child" |
||||
create_new: "Create new" |
||||
add_existing: "Add existing" |
||||
add_existing_child: "Add existing child" |
||||
remove_child: "Remove child" |
||||
add_new_relation: "Create new relation" |
||||
add_existing_relation: "Add existing relation" |
||||
update_description: "Set or update description of this relation" |
||||
toggle_description: "Toggle relation description" |
||||
update_relation: "Click to change the relation type" |
||||
add_follower: "Add follower" |
||||
add_predecessor: "Add predecessor" |
||||
remove: "Премахване на връзка" |
||||
save: "Save relation" |
||||
abort: "Abort" |
||||
relations_autocomplete: |
||||
placeholder: "Type to search" |
||||
parent_placeholder: "Choose new parent or press escape to cancel." |
||||
repositories: |
||||
select_tag: 'Изберете етикет' |
||||
select_branch: 'Изберете клон' |
||||
field_value_enter_prompt: "Въведете стойност за '%{field}'" |
||||
select2: |
||||
input_too_short: |
||||
one: "Моля, въведете още един знак" |
||||
other: "Моля, въведете още {{count}} знаци" |
||||
load_more: "Зареждане на още резултати..." |
||||
no_matches: "Не са намерени съвпадения" |
||||
searching: "Търсене..." |
||||
selection_too_big: |
||||
one: "Можете да изберете само един елемент" |
||||
other: "Можете да изберете само {{limit}} елемента" |
||||
project_menu_details: "Подробности" |
||||
sort: |
||||
sorted_asc: 'Ascending sort applied, ' |
||||
sorted_dsc: 'Descending sort applied, ' |
||||
sorted_no: 'No sort applied, ' |
||||
sorting_disabled: 'sorting is disabled' |
||||
activate_asc: 'activate to apply an ascending sort' |
||||
activate_dsc: 'activate to apply a descending sort' |
||||
activate_no: 'activate to remove the sort' |
||||
text_work_packages_destroy_confirmation: "Are you sure you want to delete the selected work package(s)?" |
||||
text_query_destroy_confirmation: "Are you sure you want to delete the selected view?" |
||||
text_attachment_destroy_confirmation: "Наистина ли искате да изтриете прикачения файл?" |
||||
timelines: |
||||
quarter_label: 'Q%{quarter_number}' |
||||
gantt_chart: 'Gantt chart' |
||||
labels: |
||||
title: 'Label configuration' |
||||
bar: 'Bar labels' |
||||
left: 'Left' |
||||
right: 'Right' |
||||
farRight: 'Far right' |
||||
showNone: '-- No label --' |
||||
description: > |
||||
Select the attributes you want to be shown in the respective positions of the Gantt chart at all times. Note that when hovering an element, its date labels will be shown instead of these attributes. |
||||
button_activate: 'Show Gantt chart' |
||||
button_deactivate: 'Hide Gantt chart' |
||||
cancel: Отказ |
||||
change: "Change in planning" |
||||
due_date: "Finish date" |
||||
empty: "(empty)" |
||||
error: "Възникна грешка." |
||||
errors: |
||||
not_implemented: "The timeline could not be rendered because it uses a feature that is not yet implemented." |
||||
report_comparison: "The timeline could not render the configured comparisons. Please check the appropriate section in the configuration, resetting it can help solve this problem." |
||||
report_epicfail: "The timeline could not be loaded due to an unexpected error." |
||||
report_timeout: "The timeline could not be loaded in a reasonable amount of time." |
||||
filter: |
||||
grouping_other: "Други" |
||||
noneSelection: "(none)" |
||||
name: "Име" |
||||
outline: "Reset Outline" |
||||
outlines: |
||||
aggregation: "Show aggregations only" |
||||
level1: "Expand level 1" |
||||
level2: "Expand level 2" |
||||
level3: "Expand level 3" |
||||
level4: "Expand level 4" |
||||
level5: "Expand level 5" |
||||
all: "Show all" |
||||
project_status: "Статус на проекта" |
||||
really_close_dialog: "Наистина ли искате да затворите диалоговия прозорец и да загубите въведените данни?" |
||||
responsible: "Отговорен" |
||||
save: Запази |
||||
start_date: "Начална дата" |
||||
tooManyProjects: "Намерени са повече от %{count} проекта. Моля, използвайте по-точен филтър!" |
||||
selection_mode: |
||||
notification: 'Click on any highlighted work package to create the relation. Press escape to cancel.' |
||||
zoom: |
||||
in: "Приближаване" |
||||
out: "Отдалечаване" |
||||
auto: "Auto zoom" |
||||
days: "Дни" |
||||
weeks: "Седмици" |
||||
months: "Месеци" |
||||
quarters: "Tримесечие" |
||||
years: "Години" |
||||
slider: "Плъзгач за мащабиране" |
||||
description: > |
||||
Select the initial zoom level that should be shown when autozoom is not available. |
||||
tl_toolbar: |
||||
zooms: "Ниво на мащабиране" |
||||
outlines: "Йерархично ниво" |
||||
upsale: |
||||
ee_only: 'Enterprise Edition only feature' |
||||
wiki_formatting: |
||||
strong: "Главни букви" |
||||
italic: "Наклонени букви" |
||||
underline: "Подчертаване" |
||||
deleted: "Изтрито" |
||||
code: "Вложен код" |
||||
heading1: "Заглавие 1" |
||||
heading2: "Заглавие 2" |
||||
heading3: "Заглавие 3" |
||||
unordered_list: "Неподреден списък" |
||||
ordered_list: "Подреден списък" |
||||
quote: "Цитат" |
||||
unquote: "Махни кавичките" |
||||
preformatted_text: "Предварително форматиран текст" |
||||
wiki_link: "Линк към уики страница" |
||||
image: "Изображение" |
||||
work_packages: |
||||
bulk_actions: |
||||
move: 'Bulk change of project' |
||||
edit: 'Bulk edit' |
||||
copy: 'Bulk copy' |
||||
delete: 'Bulk delete' |
||||
button_clear: "Изчистване" |
||||
comment_added: "Коментарът е добавен успешно." |
||||
comment_send_failed: "Възникна грешка. Коментарът не може да бъде добавен." |
||||
comment_updated: "Коментарът е актуализиран успешно." |
||||
confirm_edit_cancel: "Сигурни ли сте, че искате да откажете промените на работният пакет?" |
||||
description_filter: "Филтър" |
||||
description_enter_text: "Въведи текст" |
||||
description_options_hide: "Скрий опциите" |
||||
description_options_show: "Покажи опциите" |
||||
edit_attribute: "%{attribute} - Редактиране" |
||||
key_value: "%{key}: %{value}" |
||||
label_enable_multi_select: "Разреши множествено избиране" |
||||
label_disable_multi_select: "Спиране на множествено избиране" |
||||
label_filter_add: "Добавяне на филтър" |
||||
label_filter_by_text: "Filter by text" |
||||
label_options: "Опции" |
||||
label_column_multiselect: "Комбинирани падащо меню: изберете с клавишите със стрелки, потвърдете избора с enter, изтриване с backspace" |
||||
message_error_during_bulk_delete: Възникна грешка при опит за изтриване на работни пакети. |
||||
message_successful_bulk_delete: Успешно изтрити работни пакети. |
||||
message_successful_show_in_fullscreen: "Щракнете тук, за да отворите този работен пакет в изглед на цял екран." |
||||
message_view_spent_time: "Show spent time for this work package" |
||||
message_work_package_read_only: "Work package is locked in this status. No attribute other than status can be altered." |
||||
message_work_package_status_blocked: "Work package status is not writable due to closed status and closed version being assigned." |
||||
placeholder_filter_by_text: "Subject, description, comments, ..." |
||||
inline_create: |
||||
title: 'Щракнете тук, за да добавите нов работен пакет към този списък' |
||||
create: |
||||
title: 'Нов работен пакет' |
||||
header: 'New %{type}' |
||||
header_no_type: 'New work package (Type not yet set)' |
||||
header_with_parent: 'New %{type} (Child of %{parent_type} #%{id})' |
||||
button: 'Създаване' |
||||
copy: |
||||
title: 'Copy work package' |
||||
hierarchy: |
||||
show: "Show hierarchy mode" |
||||
hide: "Hide hierarchy mode" |
||||
toggle_button: 'Click to toggle hierarchy mode.' |
||||
leaf: 'Work package leaf at level %{level}.' |
||||
children_collapsed: 'Hierarchy level %{level}, collapsed. Click to show the filtered children' |
||||
children_expanded: 'Hierarchy level %{level}, expanded. Click to collapse the filtered children' |
||||
faulty_query: |
||||
title: Work packages could not be loaded. |
||||
description: Your view is erroneous and could not be processed. |
||||
no_results: |
||||
title: Няма работни пакети за показване. |
||||
description: Или никакви работни пакети не са създадени, или всички са филтрирани. |
||||
limited_results: Only %{count} work packages can be shown in manual sorting mode. Please reduce the results by filtering. |
||||
property_groups: |
||||
details: "Подробности" |
||||
people: "Участници" |
||||
estimatesAndTime: "Разчетите и време" |
||||
other: "Други" |
||||
properties: |
||||
assignee: "Изпълнител" |
||||
author: "Автор" |
||||
createdAt: "Създаден на" |
||||
description: "Описание" |
||||
date: "Дата" |
||||
dueDate: "Finish date" |
||||
estimatedTime: "Очаквано време" |
||||
spentTime: "Отработено време" |
||||
category: "Категория" |
||||
percentageDone: "Процент завършена задача" |
||||
priority: "Приоритет" |
||||
projectName: "Проект" |
||||
responsible: "Отговорен" |
||||
startDate: "Начална дата" |
||||
status: "Състояние" |
||||
subject: "Заглавие" |
||||
title: "Заглавие" |
||||
type: "Тип" |
||||
updatedAt: "Актуализиран на" |
||||
versionName: "Версия" |
||||
version: "Версия" |
||||
default_queries: |
||||
latest_activity: "Latest activity" |
||||
created_by_me: "Created by me" |
||||
assigned_to_me: "Assigned to me" |
||||
recently_created: "Recently created" |
||||
all_open: "All open" |
||||
summary: "Обобщение" |
||||
jump_marks: |
||||
pagination: "Jump to table pagination" |
||||
label_pagination: "Click here to skip over the work packages table and go to pagination" |
||||
content: "Jump to content" |
||||
label_content: "Click here to skip over the menu and go to the content" |
||||
placeholders: |
||||
default: "-" |
||||
formattable: "%{name}: Click to edit..." |
||||
query: |
||||
column_names: "Колони" |
||||
group_by: "Групай резултатите по" |
||||
group: "Групиране по" |
||||
group_by_disabled_by_hierarchy: "Group by is disabled due to the hierarchy mode being active." |
||||
hierarchy_disabled_by_group_by: "Hierarchy mode is disabled due to results being grouped by %{column}." |
||||
sort_ascending: "Cортирай възходящо" |
||||
sort_descending: "Сортирай низходящо" |
||||
move_column_left: "Преместване на колона наляво" |
||||
move_column_right: "Преместете колона надясно" |
||||
hide_column: "Скрий колоната" |
||||
insert_columns: "Вмъкване на колони..." |
||||
filters: "Филтри" |
||||
display_sums: "Показване на суми" |
||||
confirm_edit_cancel: "Are you sure you want to cancel editing the name of this view? Title will be set back to previous value." |
||||
click_to_edit_query_name: "Click to edit title of this view." |
||||
rename_query_placeholder: "Name of this view" |
||||
star_text: "Mark this view as favorite and add to the saved views sidebar on the left." |
||||
public_text: > |
||||
Publish this view, allowing other users to access your view. Users with the 'Manage public views' permission can modify or remove public query. This does not affect the visibility of work package results in that view and depending on their permissions, users may see different results. |
||||
errors: |
||||
unretrievable_query: "Unable to retrieve view from URL" |
||||
not_found: "There is no such view" |
||||
duplicate_query_title: "Name of this view already exists. Change anyway?" |
||||
text_no_results: "No matching views were found." |
||||
table: |
||||
configure_button: 'Configure work package table' |
||||
summary: "Таблица с атрибути от редове и колони на работен пакет." |
||||
text_inline_edit: "Повечето клетки на тази таблица са бутони, които активират инлайн редактиране функционалност на този атрибут." |
||||
text_sort_hint: "С линковете в заглавията на колоните в таблицата можете да сортирате, преподреждате, премахвате и добавяте колони." |
||||
text_select_hint: "Select boxes should be opened with 'ALT' and arrow keys." |
||||
table_configuration: |
||||
button: 'Configure this work package table' |
||||
choose_display_mode: 'Display work packages as' |
||||
modal_title: 'Work package table configuration' |
||||
embedded_tab_disabled: "This configuration tab is not available for the embedded view you're editing." |
||||
default: "default" |
||||
display_settings: 'Display settings' |
||||
default_mode: "Flat list" |
||||
hierarchy_mode: "Hierarchy" |
||||
hierarchy_hint: "All filtered table results will be augmented with their ancestors. Hierarchies can be expanded and collapsed." |
||||
display_sums_hint: "Display sums of all summable attributes in a row below the table results." |
||||
show_timeline_hint: "Show an interactive gantt chart on the right side of the table. You can change its width by dragging the divider between table and gantt chart." |
||||
highlighting: 'Highlighting' |
||||
highlighting_mode: |
||||
description: "Highlight with color" |
||||
none: "No highlighting" |
||||
inline: 'Highlighted attribute(s)' |
||||
inline_all: 'All attributes' |
||||
entire_row_by: 'Entire row by' |
||||
status: 'Състояние' |
||||
priority: 'Приоритет' |
||||
type: 'Тип' |
||||
sorting_mode: |
||||
description: 'Chose the mode to sort your Work packages:' |
||||
automatic: 'Automatic' |
||||
manually: 'Manually' |
||||
warning: 'You will lose your previous sorting when activating the automatic sorting mode.' |
||||
columns_help_text: "Use the input above to add or remove columns to your table view. You can drag and drop the columns to reorder them." |
||||
upsale: |
||||
attribute_highlighting: 'Need certain work packages to stand out from the mass?' |
||||
relation_columns: 'Need to see relations in the work package list?' |
||||
check_out_link: 'Check out the Enterprise Edition.' |
||||
relation_filters: |
||||
first_part: "Show all work packages" |
||||
second_part: "the current work package" |
||||
tabs: |
||||
overview: Общ преглед |
||||
activity: Активност |
||||
relations: Връзки с |
||||
watchers: Наблюдатели |
||||
attachments: Прикачени файлове |
||||
time_relative: |
||||
days: "дни" |
||||
weeks: "седмици" |
||||
months: "месеци" |
||||
toolbar: |
||||
settings: |
||||
configure_view: "Configure view ..." |
||||
columns: "Колони..." |
||||
sort_by: "Сортирай по..." |
||||
group_by: "Групиране по..." |
||||
display_sums: "Показване на суми" |
||||
display_hierarchy: "Display hierarchy" |
||||
hide_hierarchy: "Hide hierarchy" |
||||
hide_sums: "Скрий суми" |
||||
save: "Запази" |
||||
save_as: "Запиши като ..." |
||||
export: "Експортиране ..." |
||||
visibility_settings: "Visibility settings ..." |
||||
page_settings: "Rename view ..." |
||||
delete: "Изтрий" |
||||
filter: "Филтър" |
||||
unselected_title: "Работен пакет" |
||||
search_query_label: "Search saved views" |
||||
search_query_title: "Click to search saved views" |
||||
placeholder_query_title: "Set a title for this view" |
||||
modals: |
||||
label_settings: "Rename view" |
||||
label_name: "Име" |
||||
label_delete_page: "Изтриване на текущата страница" |
||||
button_apply: "Приложи" |
||||
button_save: "Запази" |
||||
button_submit: "Изпрати" |
||||
button_cancel: "Отказ" |
||||
form_submit: |
||||
title: 'Confirm to continue' |
||||
text: 'Are you sure you want to perform this action?' |
||||
destroy_work_package: |
||||
title: "Confirm deletion of %{label}" |
||||
text: "Are you sure you want to delete the following %{label} ?" |
||||
has_children: "The work package has %{childUnits}:" |
||||
confirm_deletion_children: "I acknowledge that ALL descendants of the listed work packages will be recursively removed." |
||||
deletes_children: "All child work packages and their descendants will also be recursively deleted." |
||||
notice_no_results_to_display: "No visible results to display." |
||||
notice_successful_create: "Успешно създаване." |
||||
notice_successful_delete: "Успешно изтриване." |
||||
notice_successful_update: "Успешно обновяване." |
||||
notice_bad_request: "Грешна заявка." |
||||
relations: |
||||
empty: Не съществува връзка |
||||
remove: Премахване на връзка |
||||
inplace: |
||||
button_edit: "%{attribute}: Редактиране" |
||||
button_save: "%{attribute}: Запиши" |
||||
button_cancel: "%{attribute}: отказ" |
||||
button_save_all: "Запази" |
||||
button_cancel_all: "Отказ" |
||||
link_formatting_help: "Помощ за форматиране на текст" |
||||
btn_preview_enable: "Предварителен преглед" |
||||
btn_preview_disable: "Забраняване на преглед" |
||||
null_value_label: "Няма стойност" |
||||
clear_value_label: "-" |
||||
errors: |
||||
required: '%{field} не може да бъде празно' |
||||
number: '%{field} не е валидно число' |
||||
maxlength: '%{field} не може да съдържа повече от %{maxLength} цифри(а)' |
||||
minlength: '%{field} не може да съдържа по-малко от %{minLength} цифри(а)' |
||||
messages_on_field: 'Това поле е невалидно: %{messages}' |
||||
error_could_not_resolve_version_name: "Не можа да открие версия с име" |
||||
error_could_not_resolve_user_name: "Не може да открие потребителско име" |
||||
error_attachment_upload: "File failed to upload: %{error}" |
||||
error_attachment_upload_permission: "You don't have the permission to upload files on this resource." |
||||
units: |
||||
workPackage: |
||||
one: "work package" |
||||
other: "work packages" |
||||
child_work_packages: |
||||
one: "one child work package" |
||||
other: "%{count} work package children" |
||||
hour: |
||||
one: "1 h" |
||||
other: "%{count} h" |
||||
zen_mode: |
||||
button_activate: 'Activate zen mode' |
||||
button_deactivate: 'Deactivate zen mode' |
||||
global_search: |
||||
all_projects: "In all projects" |
||||
search: "Търсене" |
||||
close_search: "Close search" |
||||
current_project: "In this project" |
||||
current_project_and_all_descendants: "In this project + subprojects" |
||||
title: |
||||
all_projects: "all projects" |
||||
project_and_subprojects: "and all subprojects" |
||||
search_for: "Search for" |
||||
views: |
||||
card: 'Cards' |
||||
list: 'Table' |
||||
timeline: 'Gantt' |
@ -0,0 +1,73 @@ |
||||
// -- copyright
|
||||
// OpenProject is an open source project management software.
|
||||
// Copyright (C) 2012-2020 the OpenProject GmbH
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License version 3.
|
||||
//
|
||||
// OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
|
||||
// Copyright (C) 2006-2013 Jean-Philippe Lang
|
||||
// Copyright (C) 2010-2013 the ChiliProject Team
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation; either version 2
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
//
|
||||
// See docs/COPYRIGHT.rdoc for more details.
|
||||
// ++
|
||||
|
||||
import {Component, DebugElement} from "@angular/core"; |
||||
|
||||
import {ComponentFixture, fakeAsync, TestBed, tick} from '@angular/core/testing'; |
||||
import {By} from "@angular/platform-browser"; |
||||
import { I18nService } from 'core-app/modules/common/i18n/i18n.service'; |
||||
import { HomescreenNewFeaturesBlockComponent } from './new-features.component'; |
||||
|
||||
describe('shows edition-specific content', () => { |
||||
let app:HomescreenNewFeaturesBlockComponent; |
||||
let fixture:ComponentFixture<HomescreenNewFeaturesBlockComponent>; |
||||
let element:DebugElement; |
||||
|
||||
beforeEach(() => { |
||||
// noinspection JSIgnoredPromiseFromCall
|
||||
TestBed.configureTestingModule({ |
||||
declarations: [ |
||||
HomescreenNewFeaturesBlockComponent |
||||
], |
||||
providers: [I18nService] |
||||
}).compileComponents(); |
||||
|
||||
|
||||
fixture = TestBed.createComponent(HomescreenNewFeaturesBlockComponent); |
||||
app = fixture.debugElement.componentInstance; |
||||
element = fixture.debugElement.query(By.css('div.widget-box--description p')); |
||||
}); |
||||
|
||||
it('should render bim text for bim edition', fakeAsync(() => { |
||||
app.isStandardEdition = false; |
||||
|
||||
fixture.detectChanges(); |
||||
|
||||
// checking for missing translation key as translations are not loaded in specs
|
||||
expect(element.nativeElement.textContent).toContain(".bim.current_new_feature_html"); |
||||
})); |
||||
|
||||
it('should render standard text for standard edition', fakeAsync(() => { |
||||
app.isStandardEdition = true; |
||||
|
||||
fixture.detectChanges(); |
||||
|
||||
// checking for missing translation key as translations are not loaded in specs
|
||||
expect(element.nativeElement.textContent).toContain(".standard.current_new_feature_html"); |
||||
})); |
||||
}); |
@ -0,0 +1,43 @@ |
||||
<ng-select #ngSelectComponent |
||||
[(ngModel)]="model" |
||||
[items]="availableValues" |
||||
[ngClass]="classes" |
||||
[addTag]="createAllowed" |
||||
[virtualScroll]="true" |
||||
[required]="required" |
||||
[clearable]="!required" |
||||
[disabled]="disabled" |
||||
[typeahead]="typeahead" |
||||
[clearOnBackspace]="false" |
||||
[appendTo]="appendTo" |
||||
[hideSelected]="hideSelected" |
||||
[loading]="finishedLoading | async" |
||||
[id]="id" |
||||
(change)="changeModel($event)" |
||||
(open)="opened()" |
||||
(close)="closed()" |
||||
(keydown)="keyPressed($event)" |
||||
bindLabel="name"> |
||||
<ng-template ng-header-tmp> |
||||
<div class="scrollable-tabs -narrow"> |
||||
<ul class="tabrow"> |
||||
<li [ngClass]="{'selected': mode === 'all'}" |
||||
(click)="setMode('all')"> |
||||
<a href="#" [textContent]="text.all"> |
||||
</a> |
||||
</li> |
||||
<li [ngClass]="{'selected': mode === 'recent'}" |
||||
(click)="setMode('recent')"> |
||||
<a href="#" [textContent]="text.recent"> |
||||
</a> |
||||
</li> |
||||
</ul> |
||||
</div> |
||||
</ng-template> |
||||
<ng-template ng-tag-tmp let-search="searchTerm"> |
||||
<b [textContent]="text.add_new_action"></b>: {{search}} |
||||
</ng-template> |
||||
<ng-template ng-option-tmp let-item="item" let-search="searchTerm"> |
||||
<div [ngOptionHighlight]="search" class="ng-option-label ellipsis">{{ item.name }}</div> |
||||
</ng-template> |
||||
</ng-select> |
@ -0,0 +1,2 @@ |
||||
.ng-dropdown-panel .ng-dropdown-header |
||||
padding-bottom: 0 |
@ -0,0 +1,72 @@ |
||||
// -- copyright
|
||||
// OpenProject is a project management system.
|
||||
// Copyright (C) 2012-2015 the OpenProject Foundation (OPF)
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License version 3.
|
||||
//
|
||||
// OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
|
||||
// Copyright (C) 2006-2013 Jean-Philippe Lang
|
||||
// Copyright (C) 2010-2013 the ChiliProject Team
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation; either version 2
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
//
|
||||
// See doc/COPYRIGHT.rdoc for more details.
|
||||
// ++
|
||||
|
||||
import { |
||||
AfterViewInit, |
||||
Component, |
||||
ViewEncapsulation, |
||||
Output, |
||||
EventEmitter, |
||||
ChangeDetectorRef, |
||||
} from '@angular/core'; |
||||
import {WorkPackageAutocompleterComponent} from "core-app/modules/common/autocomplete/wp-autocompleter.component"; |
||||
import {I18nService} from "core-app/modules/common/i18n/i18n.service"; |
||||
import {CurrentProjectService} from "core-components/projects/current-project.service"; |
||||
import {PathHelperService} from "core-app/modules/common/path-helper/path-helper.service"; |
||||
|
||||
export type TimeEntryWorkPackageAutocompleterMode = 'all'|'recent'; |
||||
|
||||
@Component({ |
||||
templateUrl: './te-work-package-autocompleter.component.html', |
||||
styleUrls: ['./te-work-package-autocompleter.component.sass'], |
||||
selector: 'te-work-package-autocompleter', |
||||
encapsulation: ViewEncapsulation.None |
||||
}) |
||||
export class TimeEntryWorkPackageAutocompleterComponent extends WorkPackageAutocompleterComponent implements AfterViewInit { |
||||
@Output() modeSwitch = new EventEmitter<TimeEntryWorkPackageAutocompleterMode>(); |
||||
|
||||
constructor(readonly I18n:I18nService, |
||||
readonly cdRef:ChangeDetectorRef, |
||||
readonly currentProject:CurrentProjectService, |
||||
readonly pathHelper:PathHelperService) { |
||||
super(I18n, cdRef, currentProject, pathHelper); |
||||
|
||||
this.text['all'] = this.I18n.t('js.label_all'); |
||||
this.text['recent'] = this.I18n.t('js.label_recent'); |
||||
} |
||||
|
||||
public loading:boolean = false; |
||||
public mode:TimeEntryWorkPackageAutocompleterMode = 'all'; |
||||
|
||||
public setMode(value:TimeEntryWorkPackageAutocompleterMode) { |
||||
if (value !== this.mode) { |
||||
this.modeSwitch.emit(value); |
||||
} |
||||
this.mode = value; |
||||
} |
||||
} |
@ -1 +0,0 @@ |
||||
export const dashboardWebsiteUrl = "https://www.openproject.org/collaboration-software-features/dashboards/"; |
@ -1,37 +0,0 @@ |
||||
<div class="op-modal--portal ngdialog-theme-openproject"> |
||||
<div class="op-modal--modal-container confirm-dialog--modal loading-indicator--location" |
||||
data-indicator-name="modal" |
||||
tabindex="0"> |
||||
<div class="op-modal--modal-header"> |
||||
<a class="op-modal--modal-close-button"> |
||||
<i |
||||
class="icon-close" |
||||
(click)="closeMe($event)" |
||||
[attr.title]="text.close"> |
||||
</i> |
||||
</a> |
||||
<h3 class="icon-context icon-log_time" [textContent]="text.title"></h3> |
||||
</div> |
||||
|
||||
<div class="ngdialog-body op-modal--modal-body"> |
||||
<te-form #editForm |
||||
[entry]="entry" |
||||
(modifiedEntry)="setModifiedEntry($event)"> |
||||
</te-form> |
||||
</div> |
||||
|
||||
<div class="op-modal--modal-footer"> |
||||
<button class="button -highlight" |
||||
(click)="createEntry()" |
||||
[textContent]="text.create" |
||||
[attr.title]="text.create"> |
||||
</button> |
||||
|
||||
<button class="button" |
||||
(click)="closeMe($event)" |
||||
[textContent]="text.cancel" |
||||
[attr.title]="text.cancel"> |
||||
</button> |
||||
</div> |
||||
</div> |
||||
</div> |
@ -1,57 +1,29 @@ |
||||
import {Component, ElementRef, Inject, ChangeDetectorRef, ViewChild, ChangeDetectionStrategy} from "@angular/core"; |
||||
import {OpModalComponent} from "app/components/op-modals/op-modal.component"; |
||||
import {OpModalLocalsToken} from "app/components/op-modals/op-modal.service"; |
||||
import {OpModalLocalsMap} from "app/components/op-modals/op-modal.types"; |
||||
import {I18nService} from "core-app/modules/common/i18n/i18n.service"; |
||||
import {Component, ChangeDetectionStrategy} from "@angular/core"; |
||||
import {HalResourceEditingService} from "core-app/modules/fields/edit/services/hal-resource-editing.service"; |
||||
import {TimeEntryResource} from "core-app/modules/hal/resources/time-entry-resource"; |
||||
import {HalResource} from "core-app/modules/hal/resources/hal-resource"; |
||||
import {TimeEntryFormComponent} from "core-app/modules/time_entries/form/form.component"; |
||||
import { TimeEntryBaseModal } from '../shared/modal/base.modal'; |
||||
|
||||
@Component({ |
||||
templateUrl: './create.modal.html', |
||||
styleUrls: ['../edit/edit.modal.sass'], |
||||
templateUrl: '../shared/modal/base.modal.html', |
||||
styleUrls: ['../shared/modal/base.modal.sass'], |
||||
changeDetection: ChangeDetectionStrategy.OnPush, |
||||
providers: [ |
||||
HalResourceEditingService |
||||
] |
||||
}) |
||||
export class TimeEntryCreateModal extends OpModalComponent { |
||||
|
||||
@ViewChild('editForm', { static: true }) editForm:TimeEntryFormComponent; |
||||
|
||||
text = { |
||||
title: this.i18n.t('js.button_log_time'), |
||||
create: this.i18n.t('js.label_create'), |
||||
close: this.i18n.t('js.button_close'), |
||||
cancel: this.i18n.t('js.button_cancel') |
||||
}; |
||||
|
||||
public closeOnEscape = false; |
||||
public closeOnOutsideClick = false; |
||||
|
||||
export class TimeEntryCreateModal extends TimeEntryBaseModal { |
||||
public createdEntry:TimeEntryResource; |
||||
|
||||
constructor(readonly elementRef:ElementRef, |
||||
@Inject(OpModalLocalsToken) readonly locals:OpModalLocalsMap, |
||||
readonly cdRef:ChangeDetectorRef, |
||||
readonly i18n:I18nService, |
||||
readonly halEditing:HalResourceEditingService) { |
||||
super(locals, cdRef, elementRef); |
||||
} |
||||
|
||||
public get entry() { |
||||
return this.locals.entry; |
||||
} |
||||
|
||||
public createEntry() { |
||||
this.editForm.save() |
||||
.then(() => { |
||||
this.service.close(); |
||||
}); |
||||
public get deleteAllowed() { |
||||
return false; |
||||
} |
||||
|
||||
public setModifiedEntry($event:{savedResource:HalResource, isInital:boolean}) { |
||||
this.createdEntry = $event.savedResource as TimeEntryResource; |
||||
} |
||||
|
||||
public get saveText() { |
||||
return this.i18n.t('js.label_create'); |
||||
} |
||||
} |
||||
|
@ -0,0 +1,53 @@ |
||||
import {ElementRef, Inject, ChangeDetectorRef, ViewChild} from "@angular/core"; |
||||
import {OpModalComponent} from "app/components/op-modals/op-modal.component"; |
||||
import {OpModalLocalsToken} from "app/components/op-modals/op-modal.service"; |
||||
import {OpModalLocalsMap} from "app/components/op-modals/op-modal.types"; |
||||
import {I18nService} from "core-app/modules/common/i18n/i18n.service"; |
||||
import {TimeEntryFormComponent} from "core-app/modules/time_entries/form/form.component"; |
||||
import {HalResource} from "core-app/modules/hal/resources/hal-resource"; |
||||
|
||||
export abstract class TimeEntryBaseModal extends OpModalComponent { |
||||
@ViewChild('editForm', { static: true }) editForm:TimeEntryFormComponent; |
||||
|
||||
public text:{ [key:string]:string } = { |
||||
title: this.i18n.t('js.time_entry.label'), |
||||
cancel: this.i18n.t('js.button_cancel'), |
||||
close: this.i18n.t('js.button_close'), |
||||
delete: this.i18n.t('js.button_delete'), |
||||
}; |
||||
|
||||
public closeOnEscape = false; |
||||
public closeOnOutsideClick = false; |
||||
|
||||
constructor(readonly elementRef:ElementRef, |
||||
@Inject(OpModalLocalsToken) readonly locals:OpModalLocalsMap, |
||||
readonly cdRef:ChangeDetectorRef, |
||||
readonly i18n:I18nService) { |
||||
super(locals, cdRef, elementRef); |
||||
} |
||||
|
||||
public abstract setModifiedEntry($event:{savedResource:HalResource, isInital:boolean}):void; |
||||
|
||||
public get entry() { |
||||
return this.locals.entry; |
||||
} |
||||
|
||||
public saveEntry() { |
||||
this.editForm.save() |
||||
.then(() => { |
||||
this.service.close(); |
||||
}); |
||||
} |
||||
|
||||
public get saveText() { |
||||
return this.i18n.t('js.button_save'); |
||||
} |
||||
|
||||
public get saveAllowed() { |
||||
return true; |
||||
} |
||||
|
||||
public get deleteAllowed() { |
||||
return true; |
||||
} |
||||
} |
@ -1,40 +0,0 @@ |
||||
#English strings go here |
||||
bg: |
||||
label_avatar: "Аватар" |
||||
label_avatar_plural: "Аватари" |
||||
label_current_avatar: "Текущ Аватар" |
||||
label_choose_avatar: "Изберете Аватар от файл" |
||||
message_avatar_uploaded: "Аватара е променен успешно." |
||||
error_image_upload: "Грешка при съхранение на образа." |
||||
error_image_size: "Образа е твърде голям." |
||||
button_change_avatar: "Промяна на аватар" |
||||
are_you_sure_delete_avatar: "Сигурни ли сте, че искате да изтриете аватара си?" |
||||
avatar_deleted: "Аватара е изтрит успешно." |
||||
unable_to_delete_avatar: "Аватара не може да бъде изтрит." |
||||
wrong_file_format: "Разрешени формати са jpg, png, gif" |
||||
empty_file_error: "Моля вдигайте валидни образи (jpg, png, gif)" |
||||
avatars: |
||||
label_avatar: "Аватар" |
||||
label_gravatar: 'Граватар' |
||||
label_current_avatar: 'Текущ аватар' |
||||
label_local_avatar: 'Потребителски аватар' |
||||
text_current_avatar: | |
||||
Следващото изображение показва текущия аватар. |
||||
text_upload_instructions: | |
||||
Качете свой собствен персонализиран аватар от 128 на 128 пиксела. По-големите файлове ще бъдат преоразмерени и изрязани, за да съвпадат. |
||||
Визуализация на вашия аватар ще бъде показан преди качването, след като изберете изображение. |
||||
text_change_gravatar_html: 'За да промените или добавите Граватар за вашия пощенски адрес, отидете на %{gravatar_url}.' |
||||
text_your_local_avatar: | |
||||
OpenProject ви позволява да качвате собствен персонализиран аватар. |
||||
text_local_avatar_over_gravatar: | |
||||
Ако зададете такъв, този персонализиран аватар се използва с предимство пред граватара по-горе. |
||||
text_your_current_gravatar: | |
||||
OpenProject използва вашия граватар, ако сте регистрирали такъв, или по подразбиране изображение или икона, ако такава съществува. |
||||
Настоящият граватар е както следва: |
||||
settings: |
||||
enable_gravatars: 'Активиране на потребителски граватари' |
||||
gravatar_default: "Подразбиращо се изображение от Gravatar" |
||||
enable_local_avatars: 'Активиране на потребителски граватари' |
||||
|
||||
|
||||
|
@ -1,15 +0,0 @@ |
||||
#English strings go here |
||||
bg: |
||||
js: |
||||
label_preview: 'Предварителен преглед' |
||||
button_update: 'Обнови' |
||||
avatars: |
||||
label_choose_avatar: "Изберете Аватар от файл" |
||||
uploading_avatar: "Качете вашия аватар." |
||||
text_upload_instructions: | |
||||
Качете свой собствен персонализиран аватар от 128 на 128 пиксела. По-големите файлове ще бъдат преоразмерени и изрязани, за да съвпадат. |
||||
Визуализация на вашия аватар ще бъде показан преди качването, след като изберете изображение. |
||||
error_image_too_large: "Картинката е твърде голяма." |
||||
wrong_file_format: "Разрешени формати са jpg, png, gif" |
||||
empty_file_error: "Моля вдигайте валидни образи (jpg, png, gif)" |
||||
|
@ -1,166 +0,0 @@ |
||||
#-- copyright |
||||
#OpenProject is an open source project management software. |
||||
#Copyright (C) 2012-2020 the OpenProject GmbH |
||||
#This program is free software; you can redistribute it and/or |
||||
#modify it under the terms of the GNU General Public License version 3. |
||||
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: |
||||
#Copyright (C) 2006-2017 Jean-Philippe Lang |
||||
#Copyright (C) 2010-2013 the ChiliProject Team |
||||
#This program is free software; you can redistribute it and/or |
||||
#modify it under the terms of the GNU General Public License |
||||
#as published by the Free Software Foundation; either version 2 |
||||
#of the License, or (at your option) any later version. |
||||
#This program is distributed in the hope that it will be useful, |
||||
#but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
#GNU General Public License for more details. |
||||
#You should have received a copy of the GNU General Public License |
||||
#along with this program; if not, write to the Free Software |
||||
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
||||
#See docs/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
#--- |
||||
bg: |
||||
activerecord: |
||||
attributes: |
||||
work_package: |
||||
position: "Position" |
||||
remaining_hours: "Remaining Hours" |
||||
remaining_time: "Remaining hours" |
||||
story_points: "Story Points" |
||||
backlogs_work_package_type: "Backlog type" |
||||
errors: |
||||
models: |
||||
work_package: |
||||
attributes: |
||||
blocks_ids: |
||||
can_only_contain_work_packages_of_current_sprint: "can only contain IDs of work packages in the current sprint." |
||||
must_block_at_least_one_work_package: "must contain the ID of at least one ticket." |
||||
parent_id: |
||||
type_must_be_one_of_the_following: "Type must be one of the following: %{type_names}." |
||||
sprint: |
||||
cannot_end_before_it_starts: "Sprint cannot end before it starts." |
||||
activemodel: |
||||
errors: |
||||
models: |
||||
work_package: |
||||
attributes: |
||||
fixed_version_id: |
||||
task_version_must_be_the_same_as_story_version: "must be the same as the parent story's version." |
||||
parent_id: |
||||
parent_child_relationship_across_projects: "is invalid because the work package '%{work_package_name}' is a backlog task and therefore cannot have a parent outside of the current project." |
||||
backlogs: |
||||
add_new_story: "New Story" |
||||
any: "any" |
||||
backlog_settings: "Backlogs settings" |
||||
burndown_graph: "Burndown Graph" |
||||
card_paper_size: "Paper size for card printing" |
||||
chart_options: "Chart options" |
||||
close: "Close" |
||||
column_width: "Column width:" |
||||
date: "Day" |
||||
definition_of_done: "Definition of Done" |
||||
generating_chart: "Generating Graph..." |
||||
hours: "Часове" |
||||
impediment: "Impediment" |
||||
label_versions_default_fold_state: "Show versions folded" |
||||
work_package_is_closed: "Work package is done, when" |
||||
label_is_done_status: "Status %{status_name} means done" |
||||
no_burndown_data: "No burndown data available. It is necessary to have the sprint start- and end dates set." |
||||
points: "Points" |
||||
positions_could_not_be_rebuilt: "Positions could not be rebuilt." |
||||
positions_rebuilt_successfully: "Positions rebuilt successfully." |
||||
properties: "Свойства" |
||||
rebuild: "Rebuild" |
||||
rebuild_positions: "Rebuild positions" |
||||
remaining_hours: "Remaining hours" |
||||
remaining_hours_ideal: "Remaining hours (ideal)" |
||||
show_burndown_chart: "Burndown Chart" |
||||
story: "Story" |
||||
story_points: "Story Points" |
||||
story_points_ideal: "Story Points (ideal)" |
||||
task: "Задачата" |
||||
task_color: "Task color" |
||||
unassigned: "Unassigned" |
||||
x_more: "%{count} more..." |
||||
backlogs_active: "active" |
||||
backlogs_any: "any" |
||||
backlogs_card_specification: "Label types for card printing" |
||||
backlogs_inactive: "Project shows no activity" |
||||
backlogs_points_burn_direction: "Points burn up/down" |
||||
backlogs_product_backlog: "Product backlog" |
||||
backlogs_product_backlog_is_empty: "Product backlog is empty" |
||||
backlogs_product_backlog_unsized: "The top of the product backlog has unsized stories" |
||||
backlogs_sizing_inconsistent: "Story sizes vary against their estimates" |
||||
backlogs_sprint_notes_missing: "Closed sprints without retrospective/review notes" |
||||
backlogs_sprint_unestimated: "Closed or active sprints with unestimated stories" |
||||
backlogs_sprint_unsized: "Project has stories on active or recently closed sprints that were not sized" |
||||
backlogs_sprints: "Sprints" |
||||
backlogs_story: "Story" |
||||
backlogs_story_type: "Story types" |
||||
backlogs_task: "Задачата" |
||||
backlogs_task_type: "Task type" |
||||
backlogs_velocity_missing: "No velocity could be calculated for this project" |
||||
backlogs_velocity_varies: "Velocity varies significantly over sprints" |
||||
backlogs_wiki_template: "Template for sprint wiki page" |
||||
backlogs_empty_title: "No versions are defined to be used in backlogs" |
||||
backlogs_empty_action_text: "To get started with backlogs, create a new version and assign it to a backlogs column." |
||||
button_edit_wiki: "Edit wiki page" |
||||
error_intro_plural: "The following errors were encountered:" |
||||
error_intro_singular: "The following error was encountered:" |
||||
error_outro: "Please correct the above errors before submitting again." |
||||
event_sprint_description: "%{summary}: %{url}\n%{description}" |
||||
event_sprint_summary: "%{project}: %{summary}" |
||||
ideal: "ideal" |
||||
inclusion: "is not included in the list" |
||||
label_back_to_project: "Back to project page" |
||||
label_backlog: "Backlog" |
||||
label_backlogs: "Backlogs" |
||||
label_backlogs_unconfigured: "You have not configured Backlogs yet. Please go to %{administration} > %{plugins}, then click on the %{configure} link for this plugin. Once you have set the fields, come back to this page to start using the tool." |
||||
label_blocks_ids: "ИД на блокираните работни пакети" |
||||
label_burndown: "Burndown" |
||||
label_column_in_backlog: "Column in backlog" |
||||
label_hours: "hours" |
||||
label_work_package_hierarchy: "Work package Hierarchy" |
||||
label_master_backlog: "Master Backlog" |
||||
label_not_prioritized: "not prioritized" |
||||
label_points: "points" |
||||
label_points_burn_down: "Down" |
||||
label_points_burn_up: "Up" |
||||
label_product_backlog: "product backlog" |
||||
label_select_all: "Select all" |
||||
label_sprint_backlog: "sprint backlog" |
||||
label_sprint_cards: "Export cards" |
||||
label_sprint_impediments: "Sprint Impediments" |
||||
label_sprint_name: "Sprint \"%{name}\"" |
||||
label_sprint_velocity: "Velocity %{velocity}, based on %{sprints} sprints with an average %{days} days" |
||||
label_stories: "Stories" |
||||
label_stories_tasks: "Stories/Tasks" |
||||
label_task_board: "Task board" |
||||
label_version_setting: "Версии" |
||||
label_version: 'Версия' |
||||
label_webcal: "Webcal Feed" |
||||
label_wiki: "Wiki" |
||||
permission_view_master_backlog: "View master backlog" |
||||
permission_view_taskboards: "View taskboards" |
||||
permission_update_sprints: "Update sprints" |
||||
points_accepted: "points accepted" |
||||
points_committed: "points committed" |
||||
points_resolved: "points resolved" |
||||
points_to_accept: "points not accepted" |
||||
points_to_resolve: "points not resolved" |
||||
project_module_backlogs: "Backlogs" |
||||
rb_label_copy_tasks: "Copy work packages" |
||||
rb_label_copy_tasks_all: "All" |
||||
rb_label_copy_tasks_none: "None" |
||||
rb_label_copy_tasks_open: "Open" |
||||
rb_label_link_to_original: "Include link to original story" |
||||
remaining_hours: "remaining hours" |
||||
required_burn_rate_hours: "required burn rate (hours)" |
||||
required_burn_rate_points: "required burn rate (points)" |
||||
todo_work_package_description: "%{summary}: %{url}\n%{description}" |
||||
todo_work_package_summary: "%{type}: %{summary}" |
||||
version_settings_display_label: "Column in backlog" |
||||
version_settings_display_option_left: "left" |
||||
version_settings_display_option_none: "none" |
||||
version_settings_display_option_right: "right" |
@ -1,27 +0,0 @@ |
||||
#-- copyright |
||||
#OpenProject is an open source project management software. |
||||
#Copyright (C) 2012-2020 the OpenProject GmbH |
||||
#This program is free software; you can redistribute it and/or |
||||
#modify it under the terms of the GNU General Public License version 3. |
||||
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: |
||||
#Copyright (C) 2006-2017 Jean-Philippe Lang |
||||
#Copyright (C) 2010-2013 the ChiliProject Team |
||||
#This program is free software; you can redistribute it and/or |
||||
#modify it under the terms of the GNU General Public License |
||||
#as published by the Free Software Foundation; either version 2 |
||||
#of the License, or (at your option) any later version. |
||||
#This program is distributed in the hope that it will be useful, |
||||
#but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
#GNU General Public License for more details. |
||||
#You should have received a copy of the GNU General Public License |
||||
#along with this program; if not, write to the Free Software |
||||
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
||||
#See docs/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
bg: |
||||
js: |
||||
work_packages: |
||||
properties: |
||||
storyPoints: "Story Points" |
||||
remainingTime: "Remaining Hours" |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue