From 2658d4361e8038d1fed61de7bb2e5347d0a17b48 Mon Sep 17 00:00:00 2001 From: Gusted Date: Fri, 1 Mar 2024 23:19:18 +0100 Subject: [PATCH 001/178] [BUG] Disable CODEOWNERS for forked repositories - Disable the CODEOWNERS feature for forked repositories, as it would otherwise inadvertently request reviewers when for example a pull request is opened against a forked repository to propose changes to an existant pull request in the original repository. - Adds integration test. - Resolves #2525 --- models/issues/pull.go | 8 ++++++++ tests/integration/codeowner_test.go | 27 ++++++++++++++++++++++++--- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/models/issues/pull.go b/models/issues/pull.go index 98d1617380..84a62ddc90 100644 --- a/models/issues/pull.go +++ b/models/issues/pull.go @@ -891,6 +891,14 @@ func PullRequestCodeOwnersReview(ctx context.Context, pull *Issue, pr *PullReque return nil } + if err := pull.LoadRepo(ctx); err != nil { + return err + } + + if pull.Repo.IsFork { + return nil + } + if err := pr.LoadBaseRepo(ctx); err != nil { return err } diff --git a/tests/integration/codeowner_test.go b/tests/integration/codeowner_test.go index e1324782f8..7668755547 100644 --- a/tests/integration/codeowner_test.go +++ b/tests/integration/codeowner_test.go @@ -14,6 +14,7 @@ import ( "time" issues_model "code.gitea.io/gitea/models/issues" + repo_model "code.gitea.io/gitea/models/repo" unit_model "code.gitea.io/gitea/models/unit" "code.gitea.io/gitea/models/unittest" user_model "code.gitea.io/gitea/models/user" @@ -42,9 +43,9 @@ func TestCodeOwner(t *testing.T) { dstPath := t.TempDir() r := fmt.Sprintf("%suser2/%s.git", u.String(), repo.Name) - u, _ = url.Parse(r) - u.User = url.UserPassword("user2", userPassword) - assert.NoError(t, git.CloneWithArgs(context.Background(), nil, u.String(), dstPath, git.CloneRepoOptions{})) + cloneURL, _ := url.Parse(r) + cloneURL.User = url.UserPassword("user2", userPassword) + assert.NoError(t, git.CloneWithArgs(context.Background(), nil, cloneURL.String(), dstPath, git.CloneRepoOptions{})) t.Run("Normal", func(t *testing.T) { defer tests.PrintCurrentTest(t)() @@ -77,6 +78,26 @@ func TestCodeOwner(t *testing.T) { unittest.AssertExistsIf(t, true, &issues_model.Review{IssueID: pr.IssueID, Type: issues_model.ReviewTypeRequest, ReviewerID: 5}) }) + t.Run("Forked repository", func(t *testing.T) { + defer tests.PrintCurrentTest(t)() + + session := loginUser(t, "user1") + testRepoFork(t, session, user2.Name, repo.Name, "user1", "repo1") + + repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerName: "user1", Name: "repo1"}) + + r := fmt.Sprintf("%suser1/repo1.git", u.String()) + remoteURL, _ := url.Parse(r) + remoteURL.User = url.UserPassword("user2", userPassword) + doGitAddRemote(dstPath, "forked", remoteURL)(t) + + err := git.NewCommand(git.DefaultContext, "push", "forked", "HEAD:refs/for/main", "-o", "topic=codeowner-forked").Run(&git.RunOpts{Dir: dstPath}) + assert.NoError(t, err) + + pr := unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{BaseRepoID: repo.ID, HeadBranch: "user2/codeowner-forked"}) + unittest.AssertExistsIf(t, false, &issues_model.Review{IssueID: pr.IssueID, Type: issues_model.ReviewTypeRequest, ReviewerID: 5}) + }) + t.Run("Out of date", func(t *testing.T) { defer tests.PrintCurrentTest(t)() From 41b4884085347a24b0f9e3993b2e75a37c29e3ef Mon Sep 17 00:00:00 2001 From: Codeberg Translate Date: Mon, 4 Mar 2024 01:58:49 +0000 Subject: [PATCH 002/178] [I18N] Translations update from Weblate (#2521) Translations update from [Weblate](https://translate.codeberg.org) for [Forgejo/forgejo](https://translate.codeberg.org/projects/forgejo/forgejo/). Current translation status: ![Weblate translation status](https://translate.codeberg.org/widget/forgejo/forgejo/horizontal-auto.svg) Co-authored-by: 0ko <0ko@users.noreply.translate.codeberg.org> Co-authored-by: TheAwiteb Co-authored-by: mondstern Co-authored-by: flactwin Co-authored-by: Gusted Co-authored-by: Salif Mehmed Co-authored-by: Fjuro Co-authored-by: Wuzzy Co-authored-by: fnetX Co-authored-by: zenobit Co-authored-by: Dirk Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/2521 Co-authored-by: Codeberg Translate Co-committed-by: Codeberg Translate --- options/locale/locale_ar.ini | 17 +- options/locale/locale_be.ini | 19 ++ options/locale/locale_bg.ini | 320 +++++++++++++++++++++++++++--- options/locale/locale_cs-CZ.ini | 337 +++++++++++++++++++++++--------- options/locale/locale_de-DE.ini | 286 ++++++++++++++------------- options/locale/locale_nl-NL.ini | 13 +- options/locale/locale_ru-RU.ini | 102 +++++----- options/locale/locale_sl.ini | 129 +++++++++++- 8 files changed, 897 insertions(+), 326 deletions(-) create mode 100644 options/locale/locale_be.ini diff --git a/options/locale/locale_ar.ini b/options/locale/locale_ar.ini index 7f0f9791c7..c60ed5c42c 100644 --- a/options/locale/locale_ar.ini +++ b/options/locale/locale_ar.ini @@ -64,7 +64,7 @@ copy_url = انسخ الرابط admin_panel = إدارة الموقع copy_error = فشل النسخ new_mirror = مرآة جديدة -re_type = أكّد كلمة المرور الجديدة +re_type = تأكيد كلمة المرور webauthn_unsupported_browser = متصفحك لا يدعم ويب آوثن حالياً. copy = انسخ enabled = مُفَعَّل @@ -210,8 +210,8 @@ admin_email = عنوان البريد الإلكتروني install_btn_confirm = تثبت فورجيو secret_key_failed = لم يتم توليد مفتاح سري: %v save_config_failed = فشل في حفظ الإعداد: %s -sqlite3_not_available = هذا الأصدار من فورجيو لا يدعم SQLite3. من فضلك قم بتحميل الاصدار الملفي الرسمي من %s (ليس اصدار 'gobuild'). -test_git_failed = لم يتمكن من أختبار أمر جِت: %v +sqlite3_not_available = هذا الإصدار من فورجيو لا يدعم SQLite3. من فضلك قم بتنزيل الإصدار الرسمي من %s (ليس إصدار 'gobuild'). +test_git_failed = يتعذر اختبار أمر جِت: %v confirm_password = أكّد كلمة المرور invalid_admin_setting = إعداد حساب المدير غير صالح: %v invalid_log_root_path = مسار السجل غير صالح: %v @@ -1375,6 +1375,7 @@ network_error = خطأ في الشبكة invalid_csrf = طلب سيئ: رمز CSRF غير صالح occurred = حدث خطأ missing_csrf = طلب سيئ: لا يوجد رمز CSRF +server_internal = خطأ داخلي في الخادم [startpage] install = سهلة التثبيت @@ -1492,6 +1493,7 @@ openid_signin_desc = أدخل مسار الـOpenID الخاص بك. مثلاً: openid_register_desc = مسار الـOpenID المختار مجهول. اربطه مع حساب جديد هنا. remember_me = تذكر هذا الجهاز remember_me.compromised = رمز الاحتفاظ بتسجيل الدخول لم يعد صالحا، مما قد يعني اختراق الحساب. نرجو مراجعة حسابك لرؤية أي نشاط غير مألوف. +authorization_failed_desc = فشل التفويض لأننا اكتشفنا طلبًا غير صالح. يرجى الاتصال بمشرف التطبيق الذي حاولت ترخيصه. [packages] rpm.repository.multiple_groups = هذه الحزمة متوفرة في مجموعات متعددة. @@ -1656,7 +1658,7 @@ config.default_enable_timetracking = فعّل تتبع الوقت مبدئيا config.default_allow_only_contributors_to_track_time = اسمح للمشتركين في المستودع موحدهم بتتبع الوقت [form] -username_error_no_dots = ` يُمكن أن يحتوي فقط على أرقام "0-9 "، أبجدية "A-Z" ،"a-z"، شرطة "-"، وخط أسفل "_" ولا يمكن أن تبدأ أو تنتهي بغير الأبجدية الرقمية، كما يحظر تتالي رموز غير أبجدية رقمية.` +username_error_no_dots = ` يُمكنه أن يحتوي على حروف إنجليزية وأرقام وشرطة ("-") وشرطة سفلية ("_") فقط. ويمكنه ان يبدأ وينتهي بحرف او برقم.` Password = كلمة المرور admin_cannot_delete_self = لا يمكنك أن تحذف نفسك عندما تكون مدير من فضلك ازيل امتيازاتك الإدارية اولا. enterred_invalid_repo_name = اسم المستودع الذي أدخلته خطأ. @@ -1684,8 +1686,8 @@ username_password_incorrect = اسم المستخدم أو كلمة المرور org_still_own_repo = "لدى هذه المنظمة مستودع واحد أو أكثر؛ احذفهم أو انقل ملكيتهم أولا." enterred_invalid_org_name = اسم المنظمة التي أدخلته خطأ. lang_select_error = اختر لغة من القائمة. -alpha_dash_error = ` لا يجب أن يحتوي إلا على الحروف الإنجليزية والأرقام والشرطة ('-') والشرطة السفلية ('_').` -alpha_dash_dot_error = ` لا يجب أن يحتوي إلا على الحروف الإنجليزية والأرقام والشرطة ('-') والشرطة السفلية ('_') والنقطة ('.').` +alpha_dash_error = ` لا يجب أن يحتوي إلا على الحروف الإنجليزية والأرقام والشرطة ("-") والشرطة السفلية ("_").` +alpha_dash_dot_error = ` لا يجب أن يحتوي إلا على الحروف الإنجليزية والأرقام والشرطة ("-") والشرطة السفلية ("_") والنقطة (".").` repo_name_been_taken = اسم المستودع مستعمل بالفعل. Email = البريد الإلكتروني auth_failed = فشل الاستيثاق: %v @@ -1733,6 +1735,9 @@ git_ref_name_error = `يجب أن يكون اسمًا مرجعيًا جيدًا include_error = ` يجب أن يحتوي على سلسلة فرعية "%s".` size_error = `يجب أن يكون بالحجم %s.' glob_pattern_error = `النمط الشامل غير صالح: %s.` +CommitChoice = إختيار الإداع +regex_pattern_error = ` نمط التعبير النمطي غير صالح: %s.` +username_error = ` يُمكنه أن يحتوي على حروف إنجليزية وأرقام وشرطة ("-") وشرطة سفلية ("_") و نقطة (".") فقط. ويمكنه ان يبدأ وينتهي بحرف او برقم.` [home] filter = تصفيات أخرى diff --git a/options/locale/locale_be.ini b/options/locale/locale_be.ini new file mode 100644 index 0000000000..f9d8e738c3 --- /dev/null +++ b/options/locale/locale_be.ini @@ -0,0 +1,19 @@ + + + +[common] +dashboard = Панэль кіравання +explore = Агляд +help = Дапамога +logo = Лагатып +sign_in = Увайсці +sign_in_or = або +sign_out = Выйсці +sign_up = Зарэгістравацца +link_account = Звязаць Уліковы запіс +register = Рэгістрацыя +version = Версія +powered_by = Працуе на ℅s +page = Старонка +home = Галоўная Старонка +sign_in_with_provider = Увайсці з %s \ No newline at end of file diff --git a/options/locale/locale_bg.ini b/options/locale/locale_bg.ini index de2c40c174..3eca60f551 100644 --- a/options/locale/locale_bg.ini +++ b/options/locale/locale_bg.ini @@ -128,6 +128,7 @@ profile_desc = Контролирайте как вашият профил се permission_write = Четене и Писане twofa_disable = Изключване на двуфакторното удостоверяване twofa_enroll = Включване на двуфакторно удостоверяване +ssh_key_name_used = Вече съществува SSH ключ със същото име във вашия акаунт. [packages] container.labels.value = Стойност @@ -147,6 +148,9 @@ keywords = Ключови думи details.author = Автор about = Относно този пакет settings.delete.success = Пакетът бе изтрит. +settings.delete = Изтриване на пакета +container.details.platform = Платформа +settings.delete.error = Неуспешно изтриване на пакет. [tool] hours = %d часа @@ -243,7 +247,7 @@ email = Адрес на ел. поща issues = Задачи retry = Повторен опит remove = Премахване -admin_panel = Администриране на сайта +admin_panel = Управление на сайта account_settings = Настройки на акаунта powered_by = Осъществено от %s pull_requests = Заявки за сливане @@ -451,15 +455,15 @@ activity.period.quarterly = 3 месеца activity.period.semiyearly = 6 месеца activity.title.user_1 = %d потребител activity.title.user_n = %d потребители -activity.title.prs_n = %d Заявки за сливане +activity.title.prs_n = %d заявки за сливане activity.merged_prs_count_1 = Слята заявка за сливане activity.merged_prs_count_n = Слети заявки за сливане -activity.active_issues_count_1 = %d Активна задача -activity.active_issues_count_n = %d Активни задачи +activity.active_issues_count_1 = %d активна задача +activity.active_issues_count_n = %d активни задачи activity.closed_issues_count_1 = Затворена задача activity.closed_issues_count_n = Затворени задачи -activity.title.issues_1 = %d Задача -activity.title.issues_n = %d Задачи +activity.title.issues_1 = %d задача +activity.title.issues_n = %d задачи wiki.pages = Страници activity.git_stats_author_1 = %d автор activity.git_stats_and_deletions = и @@ -467,14 +471,14 @@ project_board = Проекти wiki.save_page = Запазване на страницата activity.git_stats_author_n = %d автори wiki.delete_page_button = Изтриване на страницата -activity.title.prs_1 = %d Заявка за сливане -activity.active_prs_count_n = %d Активни заявки за сливане +activity.title.prs_1 = %d заявка за сливане +activity.active_prs_count_n = %d активни заявки за сливане activity.period.filter_label = Период: activity.period.daily = 1 ден activity.period.halfweekly = 3 дни activity.period.weekly = 1 седмица activity.period.yearly = 1 година -activity.active_prs_count_1 = %d Активна заявка за сливане +activity.active_prs_count_1 = %d активна заявка за сливане wiki.page_title = Заглавие на страницата wiki.page_content = Съдържание на страницата wiki.filter_page = Филтриране на страница @@ -613,7 +617,7 @@ issues.filter_milestone_all = Всички етапи issues.filter_milestone_open = Отворени етапи issues.filter_milestone_none = Без етапи issues.filter_project = Проект -issues.num_participants = %d Участващи +issues.num_participants = %d участващи issues.filter_assignee = Изпълнител issues.filter_milestone_closed = Затворени етапи issues.filter_assginee_no_select = Всички изпълнители @@ -626,8 +630,8 @@ activity.opened_prs_label = Предложена activity.title.issues_closed_from = %s затворена от %s activity.closed_issue_label = Затворена activity.new_issue_label = Отворена -activity.title.releases_1 = %d Издание -activity.title.releases_n = %d Издания +activity.title.releases_1 = %d издание +activity.title.releases_n = %d издания milestones.completeness = %d%% Завършен activity.title.prs_opened_by = %s предложена от %s issues.action_milestone_no_select = Без етап @@ -686,18 +690,18 @@ more_operations = Още операции download_archive = Изтегляне на хранилището branch = Клон tree = Дърво -branches = Клонове -tags = Тагове -tag = Таг -filter_branch_and_tag = Филтриране на клон или таг +branches = Клони +tags = Маркери +tag = Маркер +filter_branch_and_tag = Филтриране на клон или маркер symbolic_link = Символна връзка executable_file = Изпълним файл blame = Авторство editor.patch = Прилагане на кръпка editor.new_patch = Нова кръпка signing.wont_sign.not_signed_in = Не сте влезли. -settings.tags = Тагове -release.tags = Тагове +settings.tags = Маркери +release.tags = Маркери star_guest_user = Влезте, за отбелязване на това хранилище със звезда. download_bundle = Изтегляне на BUNDLE desc.private = Частно @@ -746,17 +750,196 @@ issues.label_modify = Редактиране на етикета issues.due_date_added = добави крайния срок %s %s issues.due_date_remove = премахна крайния срок %s %s release.new_release = Ново издание -release.tag_helper_existing = Съществуващ таг. -release.tag_name = Име на тага -issues.no_ref = Няма указан Клон/Таг +release.tag_helper_existing = Съществуващ маркер. +release.tag_name = Име на маркера +issues.no_ref = Няма указан клон/маркер issues.lock.reason = Причина за заключването pulls.create = Създаване на заявка за сливане issues.label.filter_sort.reverse_by_size = Най-голям размер issues.unlock = Отключване на обсъждането issues.due_date_form_add = Добавяне на краен срок -release.save_draft = Запазване като чернова -release.add_tag = Създаване само на таг +release.save_draft = Запазване на чернова +release.add_tag = Създаване само на маркер release.publish = Публикуване на издание +file_view_source = Преглед на изходния код +diff.parent = родител +issues.unlock_comment = отключи това обсъждане %s +release.edit_subheader = Изданията ви позволяват да управлявате версиите на проекта. +branch.already_exists = Вече съществува клон на име "%s". +contributors.contribution_type.deletions = Изтривания +contributors.contribution_type.additions = Добавяния +diff.browse_source = Разглеждане на изходния код +file_view_rendered = Преглед на визуализация +issues.lock_with_reason = заключи като %s и ограничи обсъждането до сътрудници %s +milestones.new_subheader = Етапите ви помагат да управлявате задачите и да проследявате напредъка им. +release.edit = редактиране +activity.published_release_label = Публикувано +activity.navbar.contributors = Допринесли +pulls.recently_pushed_new_branches = Изтласкахте в клона %[1]s %[2]s +branch.branch_name_conflict = Името на клон "%s" е в конфликт с вече съществуващия клон "%s". +all_branches = Всички клонове +file_raw = Директно +file_history = История +file_permalink = Постоянна връзка +projects.edit_subheader = Проектите ви позволяват да управлявате задачите и да проследявате напредъка. +release.compare = Сравняване +released_this = публикува това +file_too_large = Файлът е твърде голям, за да бъде показан. +commits = Подавания +commit = Подаване +editor.commit_changes = Подаване на промените +editor.add_tmpl = Добавяне на "<име на файла>" +editor.add = Добавяне на %s +editor.delete = Изтриване на %s +editor.update = Обновяване на %s +editor.commit_message_desc = Добавете опционално разширено описание… +commit_graph.monochrome = Моно +commit.contained_in = Това подаване се съдържа в: +editor.new_branch_name_desc = Име на новия клон… +editor.propose_file_change = Предлагане на промяна на файла +editor.create_new_branch = Създаване на нов клон за това подаване и започване на заявка за сливане. +editor.create_new_branch_np = Създаване на нов клон за това подаване. +editor.filename_is_invalid = Името на файла е невалидно: "%s". +editor.commit_directly_to_this_branch = Подаване директно към клона %s. +editor.branch_already_exists = Клонът "%s" вече съществува в това хранилище. +editor.file_already_exists = Файл с име "%s" вече съществува в това хранилище. +editor.commit_empty_file_header = Подаване на празен файл +editor.commit_empty_file_text = Файлът, който сте на път да подадете, е празен. Продължаване? +editor.fail_to_update_file_summary = Съобщение за грешка: +editor.fail_to_update_file = Неуспешно обновяване/създаване на файл "%s". +editor.add_subdir = Добавяне на директория… +commits.commits = Подавания +commits.find = Търсене +commits.search_all = Всички клони +commits.search = Потърсете подавания… +commit.operations = Операции +issues.deleted_milestone = `(изтрит)` +issues.deleted_project = `(изтрит)` +milestones.edit_subheader = Етапите ви позволяват да управлявате задачите и да проследявате напредъка. +activity.navbar.recent_commits = Скорошни подавания +activity.git_stats_deletion_n = %d изтривания +activity.git_stats_addition_n = %d добавяния +release.draft = Чернова +release.detail = Подробности за изданието +releases.desc = Проследявайте версиите на проекта и изтеглянията. +release.ahead.target = в %s след това издание +release.prerelease = Предварително издание +release.target = Цел +release.new_subheader = Изданията ви позволяват да управлявате версиите на проекта. +release.tag_helper = Изберете съществуващ маркер или създайте нов маркер. +release.tag_helper_new = Нов маркер. Този маркер ще бъде създаден от целта. +release.message = Опишете това издание +release.prerelease_desc = Отбелязване като предварително издание +release.delete_release = Изтриване на изданието +release.delete_tag = Изтриване на маркера +release.edit_release = Обновяване на изданието +diff.committed_by = подадено от +release.downloads = Изтегляния +issues.sign_in_require_desc = Влезте за да се присъедините към това обсъждане. +activity.git_stats_push_to_all_branches = към всички клони. +release.deletion_tag_success = Маркерът е изтрит. +release.cancel = Отказ +release.deletion = Изтриване на изданието +release.download_count = Изтегляния: %s +release.tag_name_invalid = Името на маркера не е валидно. +diff.stats_desc = %d променени файла с %d добавяния и %d изтривания +release.tag_name_already_exist = Вече съществува издание с това име на маркер. +branch.branch_already_exists = Клонът "%s" вече съществува в това хранилище. +diff.download_patch = Изтегляне на файл-кръпка +diff.show_diff_stats = Показване на статистика +diff.commit = подаване +diff.download_diff = Изтегляне на файл-разлики +diff.whitespace_show_everything = Показване на всички промени +diff.show_split_view = Разделен изглед +diff.show_unified_view = Обединен изглед +issues.review.self.approval = Не можете да одобрите собствената си заявка за сливане. +fork_repo = Разклоняване на хранилището +pulls.merged = Слети +issues.push_commits_n = добави %d подавания %s +pulls.num_conflicting_files_n = %d конфликтни файла +issues.push_commit_1 = добави %d подаване %s +fork_visibility_helper = Видимостта на разклонено хранилище не може да бъде променена. +language_other = Други +stars_remove_warning = Това ще премахне всички звезди от това хранилище. +tree_path_not_found_tag = Пътят %[1]s не съществува в маркер %[2]s +tree_path_not_found_commit = Пътят %[1]s не съществува в подаване %[2]s +tree_path_not_found_branch = Пътят %[1]s не съществува в клон %[2]s +transfer.accept = Приемане на прехвърлянето +transfer.reject = Отхвърляне на прехвърлянето +archive.issue.nocomment = Това хранилище е архивирано. Не можете да коментирате в задачите. +forked_from = разклонено от +issues.delete_branch_at = `изтри клон %s %s` +pulls.has_viewed_file = Прегледано +pulls.viewed_files_label = %[1]d / %[2]d прегледани файла +pulls.approve_count_n = %d одобрения +activity.git_stats_commit_1 = %d подаване +activity.git_stats_deletion_1 = %d изтриване +diff.review.approve = Одобряване +diff.review.comment = Коментиране +issues.stop_tracking = Спиране на таймера +issues.stop_tracking_history = `спря работа %s` +issues.cancel_tracking = Отхвърляне +issues.add_time = Ръчно добавяне на време +issues.start_tracking_history = `започна работа %s` +issues.start_tracking_short = Пускане на таймера +issues.review.approve = одобри тези промени %s +pulls.tab_conversation = Обсъждане +pulls.close = Затваряне на заявката за сливане +issues.add_time_short = Добавяне на време +issues.add_time_hours = Часове +issues.add_time_minutes = Минути +issues.add_time_cancel = Отказ +pulls.tab_commits = Подавания +pulls.tab_files = Променени файлове +pulls.approve_count_1 = %d одобрение +pulls.can_auto_merge_desc = Тази заявка за сливане може да бъде слята автоматично. +pulls.num_conflicting_files_1 = %d конфликтен файл +activity.git_stats_commit_n = %d подавания +settings.event_issues = Задачи +branch.delete_head = Изтриване +branch.delete = Изтриване на клона "%s" +branch.delete_html = Изтриване на клона +tag.create_success = Маркерът "%s" е създаден. +branch.new_branch_from = Създаване на нов клон от "%s" +branch.new_branch = Създаване на нов клон +branch.confirm_rename_branch = Преименуване на клона +branch.create_from = от "%s" +settings.add_team_duplicate = Екипът вече разполага с това хранилище +settings.slack_domain = Домейн +editor.directory_is_a_file = Името на директорията "%s" вече се използва като име на файл в това хранилище. +editor.filename_is_a_directory = Името на файла "%s" вече се използва като име на директория в това хранилище. +editor.file_editing_no_longer_exists = Файлът, който се редактира, "%s", вече не съществува в това хранилище. +editor.file_deleting_no_longer_exists = Файлът, който се изтрива, "%s", вече не съществува в това хранилище. +editor.unable_to_upload_files = Неуспешно качване на файлове в "%s" с грешка: %v +settings.web_hook_name_slack = Slack +settings.web_hook_name_discord = Discord +settings.web_hook_name_telegram = Telegram +settings.web_hook_name_matrix = Matrix +settings.web_hook_name_gogs = Gogs +settings.web_hook_name_feishu_or_larksuite = Feishu / Lark Suite +settings.web_hook_name_feishu = Feishu +settings.web_hook_name_larksuite = Lark Suite +settings.web_hook_name_wechatwork = WeCom (Wechat Work) +settings.web_hook_name_packagist = Packagist +diff.file_byte_size = Размер +branch.create_success = Клонът "%s" е създаден. +branch.deletion_success = Клонът "%s" е изтрит. +branch.deletion_failed = Неуспешно изтриване на клон "%s". +branch.rename_branch_to = Преименуване от "%s" на: +settings.web_hook_name_msteams = Microsoft Teams +settings.web_hook_name_dingtalk = DingTalk +issues.error_removing_due_date = Неуспешно премахване на крайния срок. +branch.renamed = Клонът %s е преименуван на %s. +settings.teams = Екипи +settings.add_team = Добавяне на екип +settings.web_hook_name_gitea = Gitea +settings.web_hook_name_forgejo = Forgejo +release.tag_already_exist = Вече съществува маркер с това име. +branch.name = Име на клона +settings.rename_branch = Преименуване на клона +branch.restore_failed = Неуспешно възстановяване на клон "%s". +branch.download = Изтегляне на клона "%s" +branch.rename = Преименуване на клона "%s" [modal] confirm = Потвърждаване @@ -834,10 +1017,23 @@ follow_blocked_user = Не можете да следвате тази орга settings.delete_prompt = Организацията ще бъде премахната завинаги. Това НЕ МОЖЕ да бъде отменено! settings.labels_desc = Добавете етикети, които могат да се използват за задачи за всички хранилища в тази организация. teams.none_access = Без достъп -teams.members.none = Няма участници в този екип. +teams.members.none = Няма членове в този екип. repo_updated = Обновено teams.delete_team_success = Екипът е изтрит. teams.search_repo_placeholder = Потърсете хранилище… +teams.delete_team_title = Изтриване на екипа +teams.add_team_member = Добавяне на член на екипа +teams.read_access_helper = Членовете могат да преглеждат и клонират хранилищата на екипа. +teams.invite.description = Моля, щракнете върху бутона по-долу, за да се присъедините към екипа. +teams.invite.title = Поканени сте да се присъедините към екип %s в организация %s. +team_permission_desc = Разрешение +members.public_helper = да е скрит +teams.members = Членове на екипа +teams.delete_team = Изтриване на екипа +members.owner = Притежател +members.member_role = Роля на участника: +members.member = Участник +members.private_helper = да е видим [install] admin_password = Парола @@ -896,9 +1092,10 @@ register_notify = Добре дошли във Forgejo issue.action.new = @%[1]s създаде #%[2]d. issue.action.review = @%[1]s коментира в тази заявка за сливане. issue.action.reopen = @%[1]s отвори наново #%[2]d. +issue.action.approve = @%[1]s одобри тази заявка за сливане. [user] -joined_on = Присъединен на %s +joined_on = Присъединени на %s user_bio = Биография repositories = Хранилища activity = Публична дейност @@ -977,6 +1174,42 @@ users.deletion_success = Потребителският акаунт бе изт last_page = Последна config.test_email_placeholder = Ел. поща (напр. test@example.com) users.cannot_delete_self = Не можете да изтриете себе си +repos.owner = Притежател +auths.domain = Домейн +auths.host = Хост +auths.port = Порт +auths.type = Тип +config.ssh_config = SSH Конфигурация +monitor.stats = Статистика +monitor.queue = Опашка: %s +config = Конфигурация +config.mailer_user = Потребител +config.enable_captcha = Включване на CAPTCHA +repos.size = Размер +auths.enabled = Включено +config.git_config = Git Конфигурация +config.mailer_protocol = Протокол +users.bot = Бот +config.db_path = Път +monitor.queues = Опашки +config.server_config = Сървърна конфигурация +packages.size = Размер +settings = Админ. настройки +users = Потребителски акаунти +emails.duplicate_active = Този адрес на ел. поща вече е активен за друг потребител. +config.app_ver = Версия на Forgejo +config.custom_conf = Път на конфигурационния файл +config.git_version = Версия на Git +config.lfs_config = LFS Конфигурация +config.db_ssl_mode = SSL +users.admin = Админ +auths.name = Име +repos.issues = Задачи +packages.owner = Притежател +packages.creator = Създател +packages.type = Тип +orgs.teams = Екипи +orgs.members = Участници [error] not_found = Целта не може да бъде намерена. @@ -1006,6 +1239,10 @@ team_not_exist = Екипът не съществува. TeamName = Име на екипа email_error = ` не е валиден адрес на ел. поща.` email_invalid = Адресът на ел. поща е невалиден. +SSHTitle = Име на SSH ключ +repo_name_been_taken = Името на хранилището вече е използвано. +team_name_been_taken = Името на екипа вече е заето. +org_name_been_taken = Името на организацията вече е заето. [action] close_issue = `затвори задача %[3]s#%[2]s` @@ -1024,9 +1261,13 @@ comment_pull = `коментира в заявка за сливане %[3]s#%[2]s` auto_merge_pull_request = `сля автоматично заявка за сливане %[3]s#%[2]s` watched_repo = започна да наблюдава %[2]s -delete_tag = изтри таг %[2]s от %[3]s +delete_tag = изтри маркер %[2]s от %[3]s delete_branch = изтри клон %[2]s от %[3]s create_branch = създаде клон %[3]s на %[4]s +publish_release = `публикува издание "%[4]s" на %[3]s` +push_tag = изтласка маркер %[3]s към %[4]s +approve_pull_request = `одобри %[3]s#%[2]s` +reject_pull_request = `предложи промени за %[3]s#%[2]s` [auth] login_openid = OpenID @@ -1080,6 +1321,7 @@ read = Прочетени watching = Наблюдавани no_unread = Няма непрочетени известия. mark_all_as_read = Отбелязване на всички като прочетени +pin = Закачване на известието [explore] code_search_results = Резултати от търсенето на "%s" @@ -1099,6 +1341,18 @@ runners.version = Версия variables = Променливи runners.labels = Етикети actions = Действия +variables.none = Все още няма променливи. +variables.creation.failed = Неуспешно добавяне на променлива. +variables.update.failed = Неуспешно редактиране на променлива. +variables.creation.success = Променливата "%s" е добавена. +variables.deletion.success = Променливата е премахната. +variables.edit = Редактиране на променливата +variables.deletion = Премахване на променливата +variables.update.success = Променливата е редактирана. +variables.creation = Добавяне на променлива +variables.deletion.failed = Неуспешно премахване на променлива. +runners.task_list.repository = Хранилище +runners.description = Описание [heatmap] less = По-малко @@ -1116,4 +1370,16 @@ submodule = Подмодул [dropzone] -default_message = Пуснете файлове тук или щракнете, за качване. \ No newline at end of file +default_message = Пуснете файлове тук или щракнете, за качване. +remove_file = Премахване на файла +file_too_big = Размерът на файла ({{filesize}} MB) надвишава максималния размер от ({{maxFilesize}} MB). +invalid_input_type = Не можете да качвате файлове от този тип. + +[graphs] +component_loading_failed = Неуспешно зареждане на %s +contributors.what = приноси +recent_commits.what = скорошни подавания +component_loading = Зареждане на %s... + +[projects] +type-1.display_name = Индивидуален проект \ No newline at end of file diff --git a/options/locale/locale_cs-CZ.ini b/options/locale/locale_cs-CZ.ini index fdb91f987f..be798000f5 100644 --- a/options/locale/locale_cs-CZ.ini +++ b/options/locale/locale_cs-CZ.ini @@ -18,7 +18,7 @@ template=Šablona language=Jazyk notifications=Oznámení active_stopwatch=Aktivní sledování času -tracked_time_summary=Shrnutí sledovaného času na základě filtrů v seznamu úkolů +tracked_time_summary=Shrnutí sledovaného času na základě filtrů v seznamu problémů create_new=Vytvořit… user_profile_and_more=Profily a nastavení… signed_in_as=Přihlášen jako @@ -31,7 +31,7 @@ username=Uživatelské jméno email=E-mailová adresa password=Heslo access_token=Přístupový token -re_type=Potvrdit heslo +re_type=Potvrzení hesla captcha=CAPTCHA twofa=Dvoufaktorové ověřování twofa_scratch=Dvoufaktorový pomocný kód @@ -142,6 +142,8 @@ confirm_delete_selected=Potvrdit odstranění všech vybraných položek? name=Název value=Hodnota sign_in_with_provider = Přihlásit se přes %s +confirm_delete_artifact = Opravdu chcete odstranit artefakt „%s“? +toggle_menu = Přepnout nabídku [aria] navbar=Navigační lišta @@ -182,13 +184,14 @@ missing_csrf=Špatný požadavek: Neexistuje CSRF token invalid_csrf=Špatný požadavek: Neplatný CSRF token not_found=Cíl nebyl nalezen. network_error=Chyba sítě +server_internal = Interní chyba serveru [startpage] app_desc=Snadno přístupný vlastní Git install=Jednoduchá na instalaci install_desc=Jednoduše spusťte jako binární program pro vaši platformu, nasaďte jej pomocí Docker, nebo jej stáhněte jako balíček. platform=Multiplatformní -platform_desc=Forgejo běží všude, kde Go může kompilovat: Windows, macOS, Linux, ARM, atd. Vyberte si ten, který milujete! +platform_desc=Forgejo běží na všech platformách, na které může kompilovat jazyk Go: Windows, macOS, Linux, ARM, atd. Výběr je opravdu velký! lightweight=Lehká lightweight_desc=Forgejo má minimální požadavky a může běžet na Raspberry Pi. Šetřete energii vašeho stroje! license=Open Source @@ -278,13 +281,13 @@ admin_password=Heslo confirm_password=Potvrdit heslo admin_email=E-mailová adresa install_btn_confirm=Nainstalovat Forgejo -test_git_failed=Chyba při testu příkazu 'git': %v -sqlite3_not_available=Tato verze Forgejo nepodporuje SQLite3. Stáhněte si oficiální binární verzi od %s (nikoli verzi „gobuild“). +test_git_failed=Chyba při testu příkazu „git“: %v +sqlite3_not_available=Tato verze Forgejo nepodporuje SQLite3. Stáhněte si oficiální binární verzi z %s (nikoli verzi „gobuild“). invalid_db_setting=Nastavení databáze je neplatné: %v invalid_db_table=Databázová tabulka „%s“ je neplatná: %v invalid_repo_path=Kořenový adresář repozitářů není správný: %v invalid_app_data_path=Cesta k datům aplikace je neplatná: %v -run_user_not_match=`"Run as" uživatelské jméno není aktuální uživatelské jméno: %s -> %s` +run_user_not_match=Uživatelské jméno v poli „Spustit jako“ není aktuální uživatelské jméno: %s -> %s internal_token_failed=Nepodařilo se vytvořit interní token: %v secret_key_failed=Nepodařilo se vytvořit tajný klíč: %v save_config_failed=Uložení konfigurace se nezdařilo: %v @@ -297,7 +300,7 @@ default_allow_create_organization_popup=Povolit novým uživatelským účtům v default_enable_timetracking=Povolit sledování času ve výchozím nastavení default_enable_timetracking_popup=Povolí sledování času pro nové repozitáře. no_reply_address=Skrytá e-mailová doména -no_reply_address_helper=Název domény pro uživatele se skrytou e-mailovou adresou. Příklad: Pokud je název skryté e-mailové domény nastaven na „noreply.example.org“, uživatelské jméno „joe“ bude zaznamenáno v Gitu jako „joe@noreply.example.org“. +no_reply_address_helper=Název domény pro uživatele se skrytou e-mailovou adresou. Příklad: pokud je název skryté e-mailové domény nastaven na „noreply.example.org“, uživatelské jméno „joe“ bude zaznamenáno v Gitu jako „joe@noreply.example.org“. password_algorithm=Hash algoritmus hesla invalid_password_algorithm=Neplatný algoritmus hash hesla password_algorithm_helper=Nastavte algoritmus hashování hesla. Algoritmy mají odlišné požadavky a sílu. Algoritmus argon2 je poměrně bezpečný, ale používá spoustu paměti a může být nevhodný pro malé systémy. @@ -305,6 +308,9 @@ enable_update_checker=Povolit kontrolu aktualizací enable_update_checker_helper=Kontroluje vydání nových verzí pravidelně připojením ke gitea.io. env_config_keys=Konfigurace prostředí env_config_keys_prompt=Následující proměnné prostředí budou také použity pro váš konfigurační soubor: +enable_update_checker_helper_forgejo = Pravidelně kontroluje nové verze Forgejo kontrolou DNS TXT záznamu na adrese release.forgejo.org. +allow_dots_in_usernames = Povolit uživatelům používat tečky ve svých uživatelských jménech. Neovlivní stávající účty. +smtp_from_invalid = Adresa v poli „Poslat e-mail jako“ je neplatná [home] uname_holder=Uživatelské jméno nebo e-mailová adresa @@ -425,11 +431,15 @@ authorization_failed_desc=Autorizace selhala, protože jsme detekovali neplatný sspi_auth_failed=SSPI autentizace selhala password_pwned=Heslo, které jste zvolili, je na seznamu odcizených hesel, která byla dříve odhalena při narušení veřejných dat. Zkuste to prosím znovu s jiným heslem. password_pwned_err=Nelze dokončit požadavek na HaveIBeenPwned +change_unconfirmed_email = Pokud jste při registraci zadali nesprávnou e-mailovou adresu, můžete ji změnit níže. Potvrzovací e-mail bude místo toho odeslán na novou adresu. +change_unconfirmed_email_error = Nepodařilo se změnit e-mailovou adresu: %v +change_unconfirmed_email_summary = Změna e-mailové adresy, na kterou bude odeslán aktivační e-mail. +last_admin = Nemůžete odebrat posledního administrátora. Vždy musí existovat alespoň jeden administrátor. [mail] view_it_on=Zobrazit na %s reply=nebo přímo odpovědět na tento e-mail -link_not_working_do_paste=Nefunguje? Zkuste jej zkopírovat a vložit do svého prohlížeče. +link_not_working_do_paste=Odkaz nefunguje? Zkuste jej zkopírovat a vložit do adresního řádku svého prohlížeče. hi_user_x=Ahoj %s, activate_account=Prosíme, aktivujte si váš účet @@ -444,12 +454,12 @@ activate_email.text=Pro aktivaci vašeho účtu do %s klikněte na násle register_notify=Vítejte v Forgejo register_notify.title=%[1]s vítejte v %[2]s register_notify.text_1=toto je váš potvrzovací e-mail pro %s! -register_notify.text_2=Nyní se můžete přihlásit přes uživatelské jméno: %s. -register_notify.text_3=Pokud pro vás byl vytvořen tento účet, nejprve nastavte své heslo. +register_notify.text_2=Do svého účtu se můžete přihlásit svým uživatelským jménem: %s +register_notify.text_3=Pokud vám tento účet vytvořil někdo jiný, musíte si nejprve nastavit své heslo. reset_password=Obnovit váš účet -reset_password.title=%s, požádal jste o obnovení vašeho účtu -reset_password.text=Klikněte prosím na následující odkaz pro obnovení vašeho účtu v rámci %s: +reset_password.title=Uživateli %s, obdrželi jsme žádost o obnovu vašeho účtu +reset_password.text=Pokud jste to byli vy, klikněte na následující odkaz pro obnovení vašeho účtu do %s: register_success=Registrace byla úspěšná @@ -491,6 +501,9 @@ team_invite.subject=%[1]s vás pozval/a, abyste se připojili k organizaci %[2]s team_invite.text_1=%[1]s vás pozval/a do týmu %[2]s v organizaci %[3]s. team_invite.text_2=Pro připojení k týmu klikněte na následující odkaz: team_invite.text_3=Poznámka: Tato pozvánka byla určena pro %[1]s. Pokud jste neočekávali tuto pozvánku, můžete tento e-mail ignorovat. +admin.new_user.user_info = Informace o uživateli +admin.new_user.text = Klikněte sem pro správu tohoto uživatele z administrátorského panelu. +admin.new_user.subject = Právě se zaregistroval nový uživatel %s [modal] yes=Ano @@ -523,8 +536,8 @@ SSPISeparatorReplacement=Oddělovač SSPIDefaultLanguage=Výchozí jazyk require_error=` nemůže být prázdný.` -alpha_dash_error=` by měl obsahovat pouze alfanumerické znaky, pomlčku („-“) a podtržítka („_“). ` -alpha_dash_dot_error=` by měl obsahovat pouze alfanumerické znaky, pomlčku („-“), podtržítka („_“) nebo tečku („.“). ` +alpha_dash_error=` by měl obsahovat pouze alfanumerické znaky, pomlčky („-“) a podtržítka („_“). ` +alpha_dash_dot_error=` by měl obsahovat pouze alfanumerické znaky, pomlčky („-“), podtržítka („_“) nebo tečky („.“). ` git_ref_name_error=` musí být správný název odkazu Git.` size_error=` musí být minimálně velikosti %s.` min_size_error=` musí obsahovat nejméně %s znaků.` @@ -534,7 +547,7 @@ url_error=`„%s“ není platná adresa URL.` include_error=` musí obsahovat substring „%s“.` glob_pattern_error=`zástupný vzor je neplatný: %s.` regex_pattern_error=` regex vzor je neplatný: %s.` -username_error=` může obsahovat pouze alfanumerické znaky („0-9“, „a-z“, „A-Z“), pomlčku („-“), podtržítka („_“) a tečka („.“). Nemůže začínat nebo končit nealfanumerickými znaky a po sobě jdoucí nealfanumerické znaky jsou také zakázány.` +username_error=` může obsahovat pouze alfanumerické znaky („0-9“, „a-z“, „A-Z“), pomlčky („-“), podtržítka („_“) a tečky („.“). Nemůže začínat nebo končit nealfanumerickými znaky. Jsou také zakázány po sobě jdoucí nealfanumerické znaky.` invalid_group_team_map_error=` mapování je neplatné: %s` unknown_error=Neznámá chyba: captcha_incorrect=CAPTCHA kód není správný. @@ -570,7 +583,7 @@ enterred_invalid_owner_name=Nové jméno vlastníka není správné. enterred_invalid_password=Zadané heslo není správné. user_not_exist=Tento uživatel neexistuje. team_not_exist=Tento tým neexistuje. -last_org_owner=Nemůžete odstranit posledního uživatele z týmu „vlastníci“. Musí existovat alespoň jeden vlastník pro organizaci. +last_org_owner=Nemůžete odebrat posledního uživatele z týmu „vlastníci“. Organizace musí obsahovat alespoň jednoho vlastníka. cannot_add_org_to_team=Organizace nemůže být přidána jako člen týmu. duplicate_invite_to_team=Uživatel byl již pozván jako člen týmu. organization_leave_success=Úspěšně jste opustili organizaci %s. @@ -579,16 +592,18 @@ invalid_ssh_key=Nelze ověřit váš SSH klíč: %s invalid_gpg_key=Nelze ověřit váš GPG klíč: %s invalid_ssh_principal=Neplatný SSH Principal certifikát: %s must_use_public_key=Zadaný klíč je soukromý klíč. Nenahrávejte svůj soukromý klíč nikde. Místo toho použijte váš veřejný klíč. -unable_verify_ssh_key=Nelze ověřit váš SSH klíč. +unable_verify_ssh_key=Nepodařilo se ověřit klíč SSH, zkontrolujte, zda neobsahuje chyby. auth_failed=Ověření selhalo: %v -still_own_repo=Váš účet vlastní jeden nebo více repozitářů. Nejprve je smažte nebo převeďte. +still_own_repo=Váš účet vlastní jeden nebo více repozitářů. Nejprve je odstraňte nebo přesuňte. still_has_org=Váš účet je členem jedné nebo více organizací. Nejdříve je musíte opustit. still_own_packages=Váš účet vlastní jeden nebo více balíčků. Nejprve je musíte odstranit. -org_still_own_repo=Organizace stále vlastní jeden nebo více repozitářů. Nejdříve je smažte nebo převeďte. -org_still_own_packages=Organizace stále vlastní jeden nebo více balíčků. Nejdříve je smažte. +org_still_own_repo=Organizace stále vlastní jeden nebo více repozitářů. Nejdříve je odstraňte nebo přesuňte. +org_still_own_packages=Organizace stále vlastní jeden nebo více balíčků. Nejdříve je odstraňte. target_branch_not_exist=Cílová větev neexistuje. +admin_cannot_delete_self = Nemůžete odstranit sami sebe, když jste administrátorem. Nejprve prosím odeberte svá práva administrátora. +username_error_no_dots = ` může obsahovat pouze alfanumerické znaky („0-9“, „a-z“, „A-Z“), pomlčky („-“) a podtržítka („_“). Nemůže začínat nebo končit nealfanumerickými znaky. Jsou také zakázány po sobě jdoucí nealfanumerické znaky.` [user] @@ -615,6 +630,14 @@ settings=Uživatelská nastavení form.name_reserved=Uživatelské jméno „%s“ je rezervováno. form.name_pattern_not_allowed=Vzor „%s“ není povolen v uživatelském jméně. form.name_chars_not_allowed=Uživatelské jméno „%s“ obsahuje neplatné znaky. +block_user = Zablokovat uživatele +block_user.detail = Pokud zablokujete tohoto uživatele, budou provedeny i další akce. Například: +block_user.detail_1 = Tento uživatel vás nebude moci sledovat. +block_user.detail_2 = Tento uživatel nebude moci interagovat s vašimi repozitáři, vytvářet problémy a komentáře. +block_user.detail_3 = Tento uživatel vás nebude moci přidat jako spolupracovníka a naopak. +follow_blocked_user = Tohoto uživatele nemůžete sledovat, protože jste si jej zablokovali nebo si on zablokoval vás. +block = Zablokovat +unblock = Odblokovat [settings] profile=Profil @@ -658,7 +681,7 @@ language=Jazyk ui=Motiv vzhledu hidden_comment_types=Skryté typy komentářů hidden_comment_types_description=Zde zkontrolované typy komentářů nebudou zobrazeny na stránkách problémů. Zaškrtnutí „Štítek“ například odstraní všechny komentáře „ přidal/odstranil