mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-11-12 21:44:22 +08:00
feat(i18n): default to English, localize runtime text and add Russian (#52)
This commit is contained in:
@@ -0,0 +1,286 @@
|
||||
// Copyright 2026 Arctel.net
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// Package i18n translates built-in server text at presentation boundaries.
|
||||
// Runtime diagnostics and stored task text remain English.
|
||||
package i18n
|
||||
|
||||
import (
|
||||
"embed"
|
||||
"encoding/json"
|
||||
"io/fs"
|
||||
"path"
|
||||
"regexp"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
"unicode"
|
||||
)
|
||||
|
||||
//go:embed locales/*.json
|
||||
var catalogFiles embed.FS
|
||||
|
||||
// DefaultLocale is the source language used for API clients without a preference.
|
||||
const DefaultLocale = "en"
|
||||
|
||||
type textPattern struct {
|
||||
id string
|
||||
match *regexp.Regexp
|
||||
prefix string
|
||||
suffix string
|
||||
score int
|
||||
}
|
||||
|
||||
type catalog struct {
|
||||
locales map[string]map[string]string
|
||||
exact map[string]string
|
||||
patterns []textPattern
|
||||
}
|
||||
|
||||
var (
|
||||
printfVerb = regexp.MustCompile(`%(?:\[[0-9]+\])?[-+# 0]*(?:[0-9]+|\*)?(?:\.(?:[0-9]+|\*))?[a-zA-Z%]`)
|
||||
builtIn = loadCatalog()
|
||||
)
|
||||
|
||||
func loadCatalog() catalog {
|
||||
result := catalog{locales: make(map[string]map[string]string), exact: make(map[string]string)}
|
||||
files, err := fs.Glob(catalogFiles, "locales/*.json")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
for _, file := range files {
|
||||
data, readErr := catalogFiles.ReadFile(file)
|
||||
if readErr != nil {
|
||||
panic(readErr)
|
||||
}
|
||||
var messages map[string]string
|
||||
if decodeErr := json.Unmarshal(data, &messages); decodeErr != nil {
|
||||
panic(decodeErr)
|
||||
}
|
||||
locale := strings.TrimSuffix(path.Base(file), ".json")
|
||||
result.locales[locale] = messages
|
||||
}
|
||||
locales := make([]string, 0, len(result.locales))
|
||||
for locale := range result.locales {
|
||||
locales = append(locales, locale)
|
||||
}
|
||||
sort.Strings(locales)
|
||||
for _, locale := range locales {
|
||||
messages := result.locales[locale]
|
||||
ids := make([]string, 0, len(messages))
|
||||
for id := range messages {
|
||||
ids = append(ids, id)
|
||||
}
|
||||
sort.Strings(ids)
|
||||
for _, id := range ids {
|
||||
text := messages[id]
|
||||
if _, exists := result.exact[text]; !exists {
|
||||
result.exact[text] = id
|
||||
}
|
||||
if pattern, ok := compilePattern(id, text); ok {
|
||||
result.patterns = append(result.patterns, pattern)
|
||||
}
|
||||
}
|
||||
}
|
||||
// Go errors use a lowercase initial. Recognize the earlier capitalized
|
||||
// English spelling too when displaying existing task errors and logs.
|
||||
english := result.locales[DefaultLocale]
|
||||
ids := make([]string, 0, len(english))
|
||||
for id := range english {
|
||||
ids = append(ids, id)
|
||||
}
|
||||
sort.Strings(ids)
|
||||
for _, id := range ids {
|
||||
text := english[id]
|
||||
if text == "" || text[0] < 'a' || text[0] > 'z' {
|
||||
continue
|
||||
}
|
||||
legacy := strings.ToUpper(text[:1]) + text[1:]
|
||||
if _, exists := result.exact[legacy]; exists {
|
||||
continue
|
||||
}
|
||||
result.exact[legacy] = id
|
||||
if pattern, ok := compilePattern(id, legacy); ok {
|
||||
result.patterns = append(result.patterns, pattern)
|
||||
}
|
||||
}
|
||||
sort.SliceStable(result.patterns, func(left, right int) bool {
|
||||
return result.patterns[left].score > result.patterns[right].score
|
||||
})
|
||||
return result
|
||||
}
|
||||
|
||||
func splitFormat(format string) ([]string, bool) {
|
||||
indices := printfVerb.FindAllStringIndex(format, -1)
|
||||
if len(indices) == 0 {
|
||||
// Some existing boundaries append an external error to a literal prefix.
|
||||
if strings.HasSuffix(format, ": ") {
|
||||
return []string{format, ""}, true
|
||||
}
|
||||
return nil, false
|
||||
}
|
||||
parts := []string{}
|
||||
start := 0
|
||||
for _, index := range indices {
|
||||
if format[index[0]:index[1]] == "%%" {
|
||||
continue
|
||||
}
|
||||
parts = append(parts, strings.ReplaceAll(format[start:index[0]], "%%", "%"))
|
||||
start = index[1]
|
||||
}
|
||||
if len(parts) == 0 {
|
||||
return nil, false
|
||||
}
|
||||
parts = append(parts, strings.ReplaceAll(format[start:], "%%", "%"))
|
||||
return parts, true
|
||||
}
|
||||
|
||||
func compilePattern(id, format string) (textPattern, bool) {
|
||||
parts, ok := splitFormat(format)
|
||||
if !ok {
|
||||
return textPattern{}, false
|
||||
}
|
||||
score := 0
|
||||
var pattern strings.Builder
|
||||
pattern.WriteString("(?s)^")
|
||||
for index, part := range parts {
|
||||
score += len(part)
|
||||
if index > 0 {
|
||||
pattern.WriteString("(.*?)")
|
||||
}
|
||||
pattern.WriteString(regexp.QuoteMeta(part))
|
||||
}
|
||||
pattern.WriteString("$")
|
||||
if score == 0 {
|
||||
return textPattern{}, false
|
||||
}
|
||||
return textPattern{id: id, match: regexp.MustCompile(pattern.String()), prefix: parts[0], suffix: parts[len(parts)-1], score: score}, true
|
||||
}
|
||||
|
||||
// ResolveLocale honors a supported locale cookie, then Accept-Language, then English.
|
||||
func ResolveLocale(cookie, acceptLanguage string) string {
|
||||
if locale, ok := supportedLocale(cookie); ok {
|
||||
return locale
|
||||
}
|
||||
type preference struct {
|
||||
locale string
|
||||
weight float64
|
||||
}
|
||||
preferences := make([]preference, 0)
|
||||
for _, item := range strings.Split(acceptLanguage, ",") {
|
||||
fields := strings.Split(item, ";")
|
||||
locale, ok := supportedLocale(fields[0])
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
weight := 1.0
|
||||
for _, field := range fields[1:] {
|
||||
if value, found := strings.CutPrefix(strings.TrimSpace(field), "q="); found {
|
||||
parsed, err := strconv.ParseFloat(value, 64)
|
||||
if err != nil || parsed < 0 || parsed > 1 {
|
||||
weight = 0
|
||||
} else {
|
||||
weight = parsed
|
||||
}
|
||||
}
|
||||
}
|
||||
if weight > 0 {
|
||||
preferences = append(preferences, preference{locale: locale, weight: weight})
|
||||
}
|
||||
}
|
||||
sort.SliceStable(preferences, func(left, right int) bool {
|
||||
return preferences[left].weight > preferences[right].weight
|
||||
})
|
||||
if len(preferences) > 0 {
|
||||
return preferences[0].locale
|
||||
}
|
||||
return DefaultLocale
|
||||
}
|
||||
|
||||
func supportedLocale(value string) (string, bool) {
|
||||
value = strings.ToLower(strings.ReplaceAll(strings.TrimSpace(value), "_", "-"))
|
||||
for locale := range builtIn.locales {
|
||||
if strings.EqualFold(locale, value) {
|
||||
return locale, true
|
||||
}
|
||||
}
|
||||
base, _, _ := strings.Cut(value, "-")
|
||||
if base == "zh" {
|
||||
_, ok := builtIn.locales["zh-CN"]
|
||||
return "zh-CN", ok
|
||||
}
|
||||
_, ok := builtIn.locales[base]
|
||||
return base, ok
|
||||
}
|
||||
|
||||
// Translate renders known system text without modifying interpolated values.
|
||||
// Both English and historical translated templates are recognized. Unknown text
|
||||
// is returned unchanged; this function must only be used for system-owned fields.
|
||||
func Translate(locale, text string) string {
|
||||
// Authentication responses include stable control prefixes consumed by the
|
||||
// login UI. Translate their human-readable suffix, preserving the protocol.
|
||||
for _, prefix := range []string{"smtp_invalid:", "need_email_code:"} {
|
||||
if suffix, ok := strings.CutPrefix(text, prefix); ok {
|
||||
return prefix + translate(locale, suffix)
|
||||
}
|
||||
}
|
||||
return translate(locale, text)
|
||||
}
|
||||
|
||||
func translate(locale, text string) string {
|
||||
messages, ok := builtIn.locales[locale]
|
||||
if !ok {
|
||||
messages = builtIn.locales[DefaultLocale]
|
||||
}
|
||||
if id, found := builtIn.exact[text]; found {
|
||||
if translated, exists := messages[id]; exists {
|
||||
return translated
|
||||
}
|
||||
return text
|
||||
}
|
||||
// English diagnostics are already in the source language. Avoid scanning the
|
||||
// legacy catalog for ordinary English log lines.
|
||||
if locale == DefaultLocale && !strings.ContainsFunc(text, func(r rune) bool { return unicode.Is(unicode.Han, r) }) {
|
||||
return text
|
||||
}
|
||||
for _, pattern := range builtIn.patterns {
|
||||
if !strings.HasPrefix(text, pattern.prefix) || !strings.HasSuffix(text, pattern.suffix) {
|
||||
continue
|
||||
}
|
||||
matches := pattern.match.FindStringSubmatch(text)
|
||||
if len(matches) == 0 {
|
||||
continue
|
||||
}
|
||||
translated, found := messages[pattern.id]
|
||||
if !found {
|
||||
return text
|
||||
}
|
||||
parts, valid := splitFormat(translated)
|
||||
if !valid || len(parts) != len(matches) {
|
||||
return text
|
||||
}
|
||||
var output strings.Builder
|
||||
for index, part := range parts {
|
||||
if index > 0 {
|
||||
output.WriteString(matches[index])
|
||||
}
|
||||
output.WriteString(part)
|
||||
}
|
||||
return output.String()
|
||||
}
|
||||
return text
|
||||
}
|
||||
|
||||
// TranslateLog preserves timestamps and unknown legacy lines while translating
|
||||
// the known system template on each line. Stored log contents are never rewritten.
|
||||
func TranslateLog(locale, text string) string {
|
||||
lines := strings.Split(text, "\n")
|
||||
for index, line := range lines {
|
||||
prefix := ""
|
||||
if len(line) >= len("[00:00:00] ") && line[0] == '[' && line[9] == ']' && line[10] == ' ' {
|
||||
prefix, line = line[:11], line[11:]
|
||||
}
|
||||
lines[index] = prefix + Translate(locale, line)
|
||||
}
|
||||
return strings.Join(lines, "\n")
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
// Copyright 2026 Arctel.net
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package i18n
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"regexp"
|
||||
"sort"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestResolveLocale(t *testing.T) {
|
||||
for _, tc := range []struct{ cookie, header, want string }{
|
||||
{"en", "zh-CN", "en"},
|
||||
{"zh-CN", "en", "zh-CN"},
|
||||
{"invalid", "en;q=0.4,zh-CN;q=0.9", "zh-CN"},
|
||||
{"", "ru-RU,en-US;q=0.8", "ru"},
|
||||
{"ru", "en", "ru"},
|
||||
{"ru_RU", "en", "ru"},
|
||||
{"", "ru;q=0,en;q=0.5", "en"},
|
||||
{"", "zh-TW", "zh-CN"},
|
||||
{"", "zh;q=0,en;q=0.5", "en"},
|
||||
{"", "zh;q=invalid", "en"},
|
||||
{"zh-invalid-prefix", "", "zh-CN"},
|
||||
{"zhbad", "", "en"},
|
||||
{"", "", "en"},
|
||||
} {
|
||||
t.Run(tc.cookie+"/"+tc.header, func(t *testing.T) {
|
||||
if got := ResolveLocale(tc.cookie, tc.header); got != tc.want {
|
||||
t.Fatalf("got %q, want %q", got, tc.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestTranslatePreservesArgumentsAndUnknownText(t *testing.T) {
|
||||
for _, tc := range []struct{ locale, source, want string }{
|
||||
{"zh-CN", "Scanning certificates due for renewal", "开始扫描待续期证书"},
|
||||
{"ru", "Administrator login", "Вход администратора"},
|
||||
{"ru", "invalid target log database: custom-value", "Недопустимая целевая база журналов: custom-value"},
|
||||
{"en", "Вход администратора", "Administrator login"},
|
||||
{"ru", "Unknown custom message", "Unknown custom message"},
|
||||
{"en", "开始扫描待续期证书", "Scanning certificates due for renewal"},
|
||||
{"en", "目标日志库不合法: 用户数据", "invalid target log database: 用户数据"},
|
||||
{"zh-CN", "invalid target log database: 用户数据", "目标日志库不合法: 用户数据"},
|
||||
{"en", "自定义名称,不是系统消息", "自定义名称,不是系统消息"},
|
||||
{"zh-CN", "An unknown third-party error", "An unknown third-party error"},
|
||||
{"unknown", "开始扫描待续期证书", "Scanning certificates due for renewal"},
|
||||
{"en", "smtp_invalid:该账号未绑定邮箱,使用临时码登录", "smtp_invalid:This account has no email address; use a temporary code to sign in"},
|
||||
{"zh-CN", "smtp_invalid:This account has no email address; use a temporary code to sign in", "smtp_invalid:该账号未绑定邮箱,使用临时码登录"},
|
||||
{"zh-CN", "need_email_code:60", "need_email_code:60"},
|
||||
} {
|
||||
t.Run(tc.locale+"/"+tc.source, func(t *testing.T) {
|
||||
if got := Translate(tc.locale, tc.source); got != tc.want {
|
||||
t.Fatalf("got %q, want %q", got, tc.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
legacy := "[12:34:56] 开始扫描待续期证书\n[12:34:57] 自定义日志\n"
|
||||
want := "[12:34:56] Scanning certificates due for renewal\n[12:34:57] 自定义日志\n"
|
||||
if got := TranslateLog("en", legacy); got != want {
|
||||
t.Fatalf("got %q, want %q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTranslateRecognizesHistoricalEnglishErrorCase(t *testing.T) {
|
||||
for _, source := range []string{
|
||||
"invalid target log database: custom-value",
|
||||
"Invalid target log database: custom-value",
|
||||
} {
|
||||
if got, want := Translate("zh-CN", source), "目标日志库不合法: custom-value"; got != want {
|
||||
t.Errorf("Translate(%q, %q) = %q, want %q", "zh-CN", source, got, want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestCatalogParityAndFormats(t *testing.T) {
|
||||
variables := regexp.MustCompile(`\{\{[^{}]+\}\}`)
|
||||
payloadVariables := regexp.MustCompile(`\$[\pL_][\pL\pN_]*(?:\.[\pL_][\pL\pN_]*)*`)
|
||||
english := builtIn.locales[DefaultLocale]
|
||||
for locale, messages := range builtIn.locales {
|
||||
if len(messages) != len(english) {
|
||||
t.Fatalf("%s has %d messages, want %d", locale, len(messages), len(english))
|
||||
}
|
||||
for id, source := range english {
|
||||
translated, ok := messages[id]
|
||||
if !ok || translated == "" {
|
||||
t.Errorf("%s is missing %s", locale, id)
|
||||
}
|
||||
if !reflect.DeepEqual(printfVerb.FindAllString(source, -1), printfVerb.FindAllString(translated, -1)) {
|
||||
t.Errorf("%s %s changes formatting verbs", locale, id)
|
||||
}
|
||||
sourceVariables := variables.FindAllString(source, -1)
|
||||
translatedVariables := variables.FindAllString(translated, -1)
|
||||
sort.Strings(sourceVariables)
|
||||
sort.Strings(translatedVariables)
|
||||
if !reflect.DeepEqual(sourceVariables, translatedVariables) {
|
||||
t.Errorf("%s %s changes template variables", locale, id)
|
||||
}
|
||||
sourcePayload := payloadVariables.FindAllString(source, -1)
|
||||
translatedPayload := payloadVariables.FindAllString(translated, -1)
|
||||
sort.Strings(sourcePayload)
|
||||
sort.Strings(translatedPayload)
|
||||
if !reflect.DeepEqual(sourcePayload, translatedPayload) {
|
||||
t.Errorf("%s %s changes payload variables", locale, id)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestTranslateLegacyTaskLog(t *testing.T) {
|
||||
source := "[系统] 任务已成功入队,等待调度执行 (队列: %s, 最大重试次数: %d)"
|
||||
got := Translate("en", fmt.Sprintf(source, "custom-中文", 3))
|
||||
want := "[System] Task enqueued; waiting for execution (queue: custom-中文, maximum retries: 3)"
|
||||
if got != want {
|
||||
t.Fatalf("got %q, want %q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNotificationPublicErrorsHaveTranslations(t *testing.T) {
|
||||
for _, source := range []string{
|
||||
"this notification event is already configured",
|
||||
"cannot enable event without any push channels configured",
|
||||
"custom template is not a valid JSON format",
|
||||
"unsupported task type",
|
||||
"channel name already exists",
|
||||
"channel name is required",
|
||||
"channel name can only contain letters, numbers, and underscores",
|
||||
"request URL/address is required",
|
||||
"request URL must use HTTPS protocol for security reasons",
|
||||
"payload schema (request body) is required",
|
||||
"payload schema must be a valid JSON format",
|
||||
"telegram bot token is required",
|
||||
} {
|
||||
for _, locale := range []string{"ru", "zh-CN"} {
|
||||
if got := Translate(locale, source); got == source || got == "" {
|
||||
t.Errorf("Translate(%q, %q) = %q, want a localized public error", locale, source, got)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidationMessagesPreserveAcceptedSyntax(t *testing.T) {
|
||||
contracts := map[string][]string{
|
||||
"s_must_be_a_duration_with_a_unit_b97fceb4": {"30m", "5s"},
|
||||
"match_mode_for_node_s_must_be_and_65944b17": {"and", "or"},
|
||||
"pow_algorithm_for_node_s_must_be_fast_97989167": {"fast", "slow"},
|
||||
"s_must_be_true_or_false_3a8153ff": {"true", "false"},
|
||||
"geolocation_provider_must_be_disabled_mmdb_ip_api_08bc0f62": {"disabled", "mmdb", "ip-api", "geojs", "ipinfo"},
|
||||
"s_must_be_disabled_mmdb_ip_api_geojs_deba53da": {"disabled", "mmdb", "ip-api", "geojs", "ipinfo"},
|
||||
"image_quality_must_be_low_medium_or_high_3d699272": {"low", "medium", "high"},
|
||||
"webp_compression_quality_must_be_low_medium_or_866b5127": {"low", "medium", "high"},
|
||||
}
|
||||
for locale, messages := range builtIn.locales {
|
||||
for key, tokens := range contracts {
|
||||
for _, token := range tokens {
|
||||
if !strings.Contains(messages[key], token) {
|
||||
t.Errorf("%s %s message %q is missing accepted syntax %q", locale, key, messages[key], token)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,990 @@
|
||||
{
|
||||
"a_file_in_the_pages_deployment_archive_exceeds_bf65ffe2": "a file in the Pages deployment archive exceeds the size limit",
|
||||
"a_new_github_release_deployment_archive_is_available_3ba1aeff": "A new GitHub Release deployment archive is available",
|
||||
"a_node_ip_is_required_when_ip_locking_2fe806d7": "A node IP is required when IP locking is enabled",
|
||||
"a_pages_deployment_source_task_is_already_running_2c10973f": "a Pages deployment source task is already running",
|
||||
"a_preview_release_cannot_be_selected_for_a_b0318833": "a preview release cannot be selected for a stable update",
|
||||
"account_binding_id_must_not_be_empty_84f24a4e": "account binding ID must not be empty",
|
||||
"account_is_disabled_da6e1fd3": "account is disabled",
|
||||
"activate_atomically_switching_github_release_deployment_80feec83": "[activate] Atomically switching GitHub Release deployment",
|
||||
"activate_atomically_switching_production_deployment_80300199": "[activate] Atomically switching production deployment",
|
||||
"activate_source_configuration_or_ownership_changed_deployment_was_e21f8288": "[activate] Source configuration or ownership changed; deployment was not switched",
|
||||
"administrator_accounts_cannot_be_deleted_f3ae74a2": "administrator accounts cannot be deleted",
|
||||
"administrator_accounts_cannot_be_disabled_d3eef776": "administrator accounts cannot be disabled",
|
||||
"administrator_login_c454c61e": "Administrator login",
|
||||
"administrator_login_notification_227c9f47": "Administrator login notification",
|
||||
"administrator_privileges_cannot_be_revoked_from_the_currently_75858bcb": "administrator privileges cannot be revoked from the currently signed-in user",
|
||||
"administrator_user_username_signed_in_at_time_from_a2edfba5": "Administrator {{user.username}} signed in at {{time}} from IP {{ip}}.",
|
||||
"agent_token_and_discovery_token_must_not_both_ca76bf69": "agent_token and discovery_token must not both be empty",
|
||||
"agent_token_is_empty_and_discovery_token_is_0349f2b6": "agent_token is empty and discovery_token is not configured",
|
||||
"all_objects_have_been_migrated_93287840": "All objects have been migrated",
|
||||
"already_running_the_latest_version_6e865701": "already running the latest version",
|
||||
"an_asset_in_the_same_release_was_replaced_2878205a": "An asset in the same release was replaced; confirmation is required",
|
||||
"an_asset_in_the_same_release_was_replaced_40e8d33a": "an asset in the same release was replaced; refresh and confirm the current version",
|
||||
"an_update_is_already_in_progress_d5dae3bf": "an update is already in progress",
|
||||
"another_storage_migration_task_is_already_running_937fbb49": "another storage migration task is already running",
|
||||
"api_base_url_optional_e966f73e": "API base URL (optional)",
|
||||
"api_reverse_proxy_backend_must_be_a_valid_4c68d5b8": "API reverse proxy backend must be a valid HTTP/HTTPS URL",
|
||||
"api_reverse_proxy_match_path_must_start_with_662f1449": "API reverse proxy match path must start with '/'",
|
||||
"archive_contains_an_invalid_path_s_0f89f375": "archive contains an invalid path: %s",
|
||||
"archive_path_escapes_the_destination_s_c6d68c24": "archive path escapes the destination: %s",
|
||||
"archives_8f10dc14": "Archives",
|
||||
"asynchronous_task_task_name_id_task_id_completed_128e1c5d": "Asynchronous task {{task_name}} (ID: {{task_id}}) completed. Status: {{task_status}}; duration: {{task_duration}} ms.",
|
||||
"audio_296c632e": "Audio",
|
||||
"authentication_source_id_must_not_be_empty_87431a43": "authentication source ID must not be empty",
|
||||
"authentication_source_is_disabled_7a948dfa": "Authentication source is disabled",
|
||||
"authentication_source_must_not_be_empty_8c3909a8": "authentication source must not be empty",
|
||||
"authentication_source_name_may_only_contain_letters_digits_71129406": "authentication source name may only contain letters, digits, hyphens and underscores, and must start with a letter or digit",
|
||||
"authentication_source_name_must_not_be_empty_f85c91bb": "authentication source name must not be empty",
|
||||
"authentication_source_type_must_be_oidc_3d9726ab": "authentication source type must be oidc",
|
||||
"automatic_binary_replacement_is_not_supported_on_this_ef024e23": "automatic binary replacement is not supported on this platform",
|
||||
"automatic_ip_group_configuration_must_be_a_json_535c4571": "automatic IP group configuration must be a JSON object",
|
||||
"automatic_notification_triggered_when_an_asynchronous_task_finishes_b0349623": "Automatic notification triggered when an asynchronous task finishes",
|
||||
"automatic_rules_completed_matched_d_ips_currently_active_a2f333b5": "Automatic rules completed; matched %d IPs, currently active %d IPs",
|
||||
"automatic_ssl_renewal_failed_v_b3366eb5": "Automatic SSL renewal failed: %v",
|
||||
"automatic_ssl_renewal_task_completed_b95fcc39": "Automatic SSL renewal task completed",
|
||||
"automatic_updates_will_be_available_in_a_later_d19f8d56": "Automatic updates will be available in a later stage and must remain disabled for now",
|
||||
"available_variables_title_description_content_url_to_example_5b046232": "Available variables: $title, $description, $content, $url, $to. Example: {\"text\": \"$content\"}",
|
||||
"backend_url_is_required_when_the_api_reverse_8563c33e": "backend URL is required when the API reverse proxy is enabled",
|
||||
"batch_completed_last_id_d_generated_d_hits_c7365ae6": "Batch completed, last ID: %d, generated: %d, hits: %d, failed: %d",
|
||||
"block_response_body_for_node_s_must_not_8df3d52b": "block response body for node %s must not exceed %d bytes",
|
||||
"block_status_code_for_node_s_must_be_3708ab21": "block status code for node %s must be between 400 and 599",
|
||||
"bot_access_token_issued_by_botfather_ef54847f": "Bot access token issued by BotFather",
|
||||
"bot_token_7ed368ad": "Bot token",
|
||||
"both_latitude_and_longitude_are_required_451abfe8": "Both latitude and longitude are required",
|
||||
"bucket_minutes_must_be_5_10_15_30_838c287d": "bucket_minutes must be 5, 10, 15, 30 or 60",
|
||||
"bucket_started_at_must_be_an_rfc3339_timestamp_2d909e88": "bucket_started_at must be an RFC3339 timestamp",
|
||||
"built_in_template_identifiers_cannot_be_changed_4e094f31": "Built-in template identifiers cannot be changed",
|
||||
"built_in_templates_cannot_be_deleted_dd8af484": "built-in templates cannot be deleted",
|
||||
"cannot_be_retried_93537915": "cannot be retried",
|
||||
"cannot_convert_configuration_s_value_s_to_a_30f99a83": "cannot convert configuration %s value '%s' to a boolean: %w",
|
||||
"cannot_convert_configuration_s_value_s_to_a_d601455b": "cannot convert configuration %s value '%s' to a decimal: %w",
|
||||
"cannot_convert_configuration_s_value_s_to_an_bea99a42": "cannot convert configuration %s value '%s' to an integer: %w",
|
||||
"captcha_verification_failed_missing_verification_credential_2b70bfd8": "CAPTCHA verification failed: missing verification credential",
|
||||
"captcha_verification_failed_or_expired_please_try_again_83606d54": "CAPTCHA verification failed or expired; please try again",
|
||||
"certificate_directory_must_not_be_empty_71b05ede": "certificate directory must not be empty",
|
||||
"certificate_file_path_must_not_be_empty_9fb64a51": "certificate file path must not be empty",
|
||||
"certificate_id_48409532": "Certificate ID",
|
||||
"certificate_id_must_be_nonzero_742f9d12": "certificate ID must be nonzero",
|
||||
"certificate_issuance_failed_v_c18caa92": "Certificate issuance failed: %v",
|
||||
"certificate_s_id_d_is_not_acme_managed_0703919b": "Certificate %s (ID=%d) is not ACME-managed and cannot be renewed automatically (provider: %s)",
|
||||
"certificate_s_is_not_acme_managed_and_cannot_e4d6469f": "certificate %s is not ACME-managed and cannot be renewed automatically",
|
||||
"certificate_s_renewed_successfully_5ddb1448": "Certificate %s renewed successfully",
|
||||
"channel_test_notification_2a7a7219": "Channel test notification",
|
||||
"check_checking_github_release_repo_s_asset_s_9f927192": "[check] Checking GitHub Release: repo=%s asset=%s",
|
||||
"check_existing_files_89d94c02": "Check existing files",
|
||||
"check_github_provider_backoff_source_id_d_status_9b362b41": "[check] GitHub provider backoff: source_id=%d status=%d retry_at=%s",
|
||||
"check_or_synchronize_a_pages_project_deployment_source_bdfc6949": "Check or synchronize a Pages project deployment source",
|
||||
"check_source_is_running_another_task_skipping_source_ca7ae2fd": "[check] Source is running another task; skipping: source_id=%d",
|
||||
"checking_cloudflare_group_primary_and_standby_node_status_e2df040e": "Checking Cloudflare group primary and standby node status",
|
||||
"cleaned_up_d_task_execution_logs_d_high_2352273f": "Cleaned up %d task execution logs (%d high-frequency, %d low-frequency)",
|
||||
"cleaning_up_expired_logs_using_log_database_retention_c4163ab0": "Cleaning up expired logs using log database retention and separate short metric retention...",
|
||||
"cleaning_up_notification_audit_history_retaining_the_last_6074bdfe": "Cleaning up notification audit history; retaining the last 7 days...",
|
||||
"cleaning_up_task_execution_logs_retaining_3_days_5f4a5eb2": "Cleaning up task execution logs: retaining 3 days for high-frequency tasks and 30 days for low-frequency tasks...",
|
||||
"cleanup_compensating_unreferenced_deployment_archive_records_eb828b5c": "[cleanup] Compensating unreferenced deployment archive records",
|
||||
"cleanup_completed_fce56fa2": "Cleanup completed",
|
||||
"cleanup_orphan_candidates_d_compensated_d_referenced_d_21a3822b": "[cleanup] orphan candidates=%d, compensated=%d, referenced=%d, lease busy=%d, invalid markers=%d, skipped=%d, failed=%d",
|
||||
"clickhouse_is_disabled_migration_to_clickhouse_is_unavailable_7bbf52f9": "ClickHouse is disabled; migration to ClickHouse is unavailable",
|
||||
"client_id_and_client_secret_are_required_before_b1904682": "client ID and Client Secret are required before enabling an authentication source",
|
||||
"cloudflare_api_request_failed_8fbea766": "Cloudflare API request failed",
|
||||
"cloudflare_api_request_failed_w_1f530c09": "cloudflare API request failed: %w",
|
||||
"cloudflare_api_retry_limit_exceeded_7e3673cc": "cloudflare API retry limit exceeded",
|
||||
"cloudflare_api_token_is_inactive_4a0ca3bf": "cloudflare API token is inactive",
|
||||
"cloudflare_dns_synchronization_failed_08371454": "Cloudflare DNS synchronization failed",
|
||||
"cloudflare_domain_synchronization_8b6eca62": "Cloudflare domain synchronization",
|
||||
"cloudflare_domain_synchronization_succeeded_b3b55a0a": "Cloudflare domain synchronization succeeded",
|
||||
"cloudflare_domain_synchronization_succeeded_s_s_proxied_v_5b0eed54": "Cloudflare domain synchronization succeeded: %s -> %s (proxied=%v)",
|
||||
"cloudflare_group_synchronization_d98bfd8f": "Cloudflare group synchronization",
|
||||
"cloudflare_node_failover_check_57f894bc": "Cloudflare node failover check",
|
||||
"cloudflare_node_failover_check_completed_switched_d_groups_1dd7476d": "Cloudflare node failover check completed; switched %d groups",
|
||||
"cloudflare_node_failover_check_failed_error_v_52840d43": "Cloudflare node failover check failed: error=%v",
|
||||
"cloudflare_node_synchronization_ed5311ec": "Cloudflare node synchronization",
|
||||
"cloudflare_resource_was_not_found_8194db78": "Cloudflare resource was not found",
|
||||
"cloudflare_s_synchronization_completed_s_d_domains_3d341ca3": "Cloudflare %s synchronization completed: %s, %d domains",
|
||||
"cloudflare_s_synchronization_completed_s_has_no_domain_302881ff": "Cloudflare %s synchronization completed: %s has no domain members",
|
||||
"cloudflare_s_synchronization_completed_s_s_d_domains_6aa7c0fd": "Cloudflare %s synchronization completed: %s -> %s, %d domains",
|
||||
"compensate_orphaned_archives_recover_expired_leases_and_check_dd5bf0ee": "Clean up orphaned archives, recover expired source leases, and check GitHub sources tracking the latest release for updates",
|
||||
"complete_https_endpoint_url_for_example_https_api_321a9514": "Complete HTTPS endpoint URL, for example https://api.example.com/webhook",
|
||||
"complete_json_configuration_of_the_target_storage_backend_2a07e361": "Complete JSON configuration of the target storage backend",
|
||||
"config_must_not_be_empty_a3a68460": "config must not be empty",
|
||||
"configuration_contains_an_additional_json_value_b7e289fa": "configuration contains an additional JSON value",
|
||||
"configuration_key_already_exists_6d757a67": "configuration key already exists",
|
||||
"configuration_key_must_not_be_empty_e5cb19c0": "Configuration key must not be empty",
|
||||
"configuration_must_not_be_null_32b5f98f": "configuration must not be null",
|
||||
"configuration_path_is_not_initialized_6d59fe3e": "configuration path is not initialized",
|
||||
"configuration_value_must_not_be_empty_20e379d9": "Configuration value must not be empty",
|
||||
"configure_telegram_bot_notifications_9bffc349": "Configure Telegram bot notifications.",
|
||||
"configured_cloudflare_api_token_is_invalid_0453f265": "configured Cloudflare API token is invalid",
|
||||
"connecting_to_smtp_server_s_d_username_s_0186b04e": "Connecting to SMTP server: %s:%d, username: %s",
|
||||
"content_of_the_email_to_send_77c2373e": "Content of the email to send",
|
||||
"copied_d_access_logs_through_id_d_d6f86229": "Copied %d access logs (through id=%d)",
|
||||
"copied_d_user_access_logs_through_id_d_f80f625f": "Copied %d user access logs (through id=%d)",
|
||||
"copied_s_d_records_through_id_d_ee8dd5f7": "Copied %s: %d records (through id=%d)",
|
||||
"copy_log_data_and_switch_the_log_database_0576d9c2": "Copy log data and switch the log database on success; log writes are paused during migration",
|
||||
"copy_the_webhook_url_from_the_feishu_group_d0638f81": "Copy the webhook URL from the Feishu group bot settings",
|
||||
"current_migration_batch_completed_progress_d_d_42eb3c40": "Current migration batch completed. Progress: %d/%d",
|
||||
"current_password_is_incorrect_36d208b0": "current password is incorrect",
|
||||
"current_storage_has_no_objects_to_migrate_active_533b6b0a": "Current storage has no objects to migrate; active storage switched to %s",
|
||||
"custom_card_json_template_optional_be356c13": "Custom card JSON template (optional)",
|
||||
"custom_notification_channel_f6ac176a": "Custom notification channel",
|
||||
"custom_user_agent_pattern_in_node_s_must_1ae42a76": "custom User-Agent pattern in node %s must not be empty",
|
||||
"custom_user_agent_pattern_in_node_s_must_3372446d": "custom User-Agent pattern in node %s must not exceed %d bytes",
|
||||
"d_d_domain_record_no_longer_exists_removing_397ee9a8": "[%d/%d] Domain record no longer exists; removing orphaned member: member_id=%d zone_domain_id=%d",
|
||||
"d_d_failed_domain_s_member_id_d_6e126949": "[%d/%d] Failed: domain=%s member_id=%d error=%v",
|
||||
"d_d_failed_to_remove_orphaned_member_member_7b0a42ab": "[%d/%d] Failed to remove orphaned member: member_id=%d error=%v",
|
||||
"d_d_succeeded_domain_s_2eb31693": "[%d/%d] Succeeded: domain=%s",
|
||||
"d_d_synchronizing_domain_s_member_id_d_593b8a8a": "[%d/%d] Synchronizing domain %s (member_id=%d proxied=%v)",
|
||||
"d_days_4a67fe38": "%d days",
|
||||
"d_hours_e7b10e79": "%d hours",
|
||||
"d_minutes_2bc2266f": "%d minutes",
|
||||
"d_seconds_26064316": "%d seconds",
|
||||
"database_is_not_initialized_0ab7ea2d": "Database is not initialized",
|
||||
"database_update_updating_file_path_s_s_35e484ff": "[Database update] Updating file path: %s -> %s",
|
||||
"days_5ab7e0f9": " days ",
|
||||
"default_chat_id_optional_a982d25a": "Default chat ID (optional)",
|
||||
"default_recipient_chat_id_used_when_the_notification_248a34c6": "Default recipient chat ID, used when the notification event has no targets",
|
||||
"deleted_d_notification_history_records_cutoff_s_ca03970f": "Deleted %d notification history records (cutoff: %s)",
|
||||
"deleted_successfully_5223f91b": "Deleted successfully",
|
||||
"deliver_notifications_through_a_feishu_group_bot_webhook_c851f7b2": "Deliver notifications through a Feishu group bot webhook.",
|
||||
"deployment_archive_at_the_url_exceeds_the_size_51b0e2ec": "Deployment archive at the URL exceeds the size limit",
|
||||
"deployment_source_saved_but_the_initial_check_could_a4d74ed9": "Deployment source saved, but the initial check could not be enqueued; run a manual check later",
|
||||
"destination_email_address_bb129242": "Destination email address",
|
||||
"development_builds_do_not_support_automatic_updates_bb3a2946": "development builds do not support automatic updates",
|
||||
"discovery_registration_response_is_missing_node_id_or_4823814c": "discovery registration response is missing node_id or agent_token",
|
||||
"dispatch_automatic_update_dispatched_source_id_d_execution_72ffca53": "[dispatch] Automatic update dispatched: source_id=%d execution_id=%s revision=%s",
|
||||
"dispatch_system_notifications_asynchronously_across_multiple_channels_0c5c685b": "Dispatch system notifications asynchronously across multiple channels",
|
||||
"dns_account_parameters_are_incomplete_fbcb0fad": "DNS account parameters are incomplete",
|
||||
"documents_2687ccdb": "Documents",
|
||||
"domain_already_exists_a59a13de": "domain already exists",
|
||||
"domain_does_not_belong_to_this_zone_bb1bc93f": "domain does not belong to this zone",
|
||||
"domain_is_bound_to_a_proxy_route_remove_ad0a62b7": "domain is bound to a proxy route; remove the binding first",
|
||||
"domain_name_must_not_be_empty_60a8eab8": "domain name must not be empty",
|
||||
"domain_synchronization_failed_domain_s_member_id_d_31ec4ac5": "Domain synchronization failed: domain=%s member_id=%d error=%v",
|
||||
"domain_synchronization_failed_member_id_d_error_v_36d3d285": "Domain synchronization failed: member_id=%d error=%v",
|
||||
"domain_synchronization_succeeded_domain_s_desired_target_s_18cedff2": "Domain synchronization succeeded: domain=%s desired_target=%s proxied=%v group=%s target_mode=%s",
|
||||
"domain_synchronization_succeeded_member_id_d_2906410a": "Domain synchronization succeeded: member_id=%d",
|
||||
"domain_was_not_found_e3b18d21": "Domain was not found",
|
||||
"download_downloading_github_release_asset_repo_s_asset_f3760632": "[download] Downloading GitHub Release asset: repo=%s asset=%s",
|
||||
"download_fetching_remote_deployment_archive_9c58137d": "[download] Fetching remote deployment archive",
|
||||
"duplicate_edge_id_s_59427f0d": "duplicate edge ID %s",
|
||||
"duplicate_node_id_s_6f7764f9": "duplicate node ID %s",
|
||||
"edge_id_must_not_be_empty_049cfbf2": "edge ID must not be empty",
|
||||
"edge_s_references_missing_source_node_s_b14a641b": "edge %s references missing source node %s",
|
||||
"edge_s_references_missing_target_node_s_f38f63a4": "edge %s references missing target node %s",
|
||||
"edge_s_source_port_s_is_not_valid_445c7518": "edge %s source port %s is not valid for node %s",
|
||||
"email_address_is_already_registered_ca59e824": "email address is already registered",
|
||||
"email_address_is_already_registered_f861225c": "email address is already registered",
|
||||
"email_address_must_not_be_empty_28e55875": "email address must not be empty",
|
||||
"email_address_must_not_be_empty_2e477cb1": "email address must not be empty",
|
||||
"email_address_or_verification_code_is_missing_2b477d98": "email address or verification code is missing",
|
||||
"email_body_db38bae9": "Email body",
|
||||
"email_notification_channel_70b4e93c": "Email notification channel",
|
||||
"email_notifications_use_the_global_smtp_settings_no_9b002fd1": "Email notifications use the global SMTP settings; no server configuration is required here.",
|
||||
"email_sent_successfully_to_38e67ca0": "Email sent successfully to: ",
|
||||
"email_subject_98a8f04e": "Email subject",
|
||||
"enter_a_cloudflare_api_token_00262e30": "enter a Cloudflare API token",
|
||||
"enter_a_valid_json_request_body_template_variables_34eba3ef": "Enter a valid JSON request body; template variables are supported",
|
||||
"enter_the_certificate_id_f0f6ff01": "Enter the certificate ID",
|
||||
"enter_the_cloudflare_target_group_id_830db5d3": "Enter the Cloudflare target group ID",
|
||||
"enter_the_cloudflare_target_member_id_4a062db8": "Enter the Cloudflare target member ID",
|
||||
"enter_the_complete_request_url_using_https_08ac14d8": "Enter the complete request URL using HTTPS",
|
||||
"enter_the_deployment_archive_download_url_2fe91a17": "enter the deployment archive download URL",
|
||||
"enter_the_email_body_html_is_supported_ca9985b5": "Enter the email body (HTML is supported)",
|
||||
"enter_the_email_subject_852e1d02": "Enter the email subject",
|
||||
"enter_the_secret_if_signature_verification_is_enabled_fd5f494e": "Enter the secret if signature verification is enabled for the bot",
|
||||
"enter_the_telegram_bot_token_dcc672a5": "Enter the Telegram bot token",
|
||||
"enter_username_e4435775": "Enter username: ",
|
||||
"error_user_s_was_not_found_81b9b991": "Error: user '%s' was not found\n",
|
||||
"event_key_2f70299f": "Event key",
|
||||
"executor_is_not_configured_5d41479d": "Executor is not configured",
|
||||
"existing_files_were_found_use_the_storage_migration_e099a954": "existing files were found; use the storage migration task to switch storage backends",
|
||||
"expression_in_automatic_rule_d_must_not_be_f696189a": "expression in automatic rule %d must not be empty",
|
||||
"external_account_binding_information_is_incomplete_180d928a": "external account binding information is incomplete",
|
||||
"extracted_executable_exceeds_the_size_limit_9461c1e6": "extracted executable exceeds the size limit",
|
||||
"extracted_pages_deployment_exceeds_the_size_limit_4cbef66f": "extracted Pages deployment exceeds the size limit",
|
||||
"failed_to_back_up_current_executable_w_3addff1b": "failed to back up current executable: %w",
|
||||
"failed_to_bind_parameters_5c410c6f": "Failed to bind parameters",
|
||||
"failed_to_bind_parameters_provide_a_valid_array_b77c7672": "Failed to bind parameters; provide a valid array of file IDs",
|
||||
"failed_to_check_existing_files_w_a851b86d": "failed to check existing files: %w",
|
||||
"failed_to_clean_up_expired_logs_v_e8791024": "Failed to clean up expired logs: %v",
|
||||
"failed_to_clean_up_github_release_temporary_file_00bf359d": "failed to clean up GitHub Release temporary file",
|
||||
"failed_to_clean_up_remote_source_temporary_file_d721acd8": "Failed to clean up remote source temporary file",
|
||||
"failed_to_clean_up_task_execution_logs_v_376be8e5": "Failed to clean up task execution logs: %v",
|
||||
"failed_to_clean_up_upload_id_d_v_cf2710b1": "Failed to clean up upload [ID:%d]: %v",
|
||||
"failed_to_clear_target_access_logs_w_9ff48e23": "failed to clear target access logs: %w",
|
||||
"failed_to_clear_target_user_access_logs_w_d7c2ad8c": "failed to clear target user access logs: %w",
|
||||
"failed_to_close_update_archive_w_0a42c60e": "failed to close update archive: %w",
|
||||
"failed_to_compile_waf_rule_s_w_4392b9dc": "failed to compile WAF rule %s: %w",
|
||||
"failed_to_copy_s_w_b0890ed6": "failed to copy %s: %w",
|
||||
"failed_to_count_active_uploads_v_eccd0ce3": "Failed to count active uploads: %v",
|
||||
"failed_to_count_notification_history_for_cleanup_v_87bcd35d": "Failed to count notification history for cleanup: %v",
|
||||
"failed_to_count_tokens_please_try_again_later_d6be07bb": "failed to count tokens; please try again later",
|
||||
"failed_to_create_retry_execution_record_w_250258f4": "failed to create retry execution record: %w",
|
||||
"failed_to_create_task_execution_record_w_7bafae3b": "failed to create task execution record: %w",
|
||||
"failed_to_create_token_please_try_again_later_268e7466": "failed to create token; please try again later",
|
||||
"failed_to_create_update_archive_w_0e1ae531": "failed to create update archive: %w",
|
||||
"failed_to_create_update_directory_w_f3414e06": "failed to create update directory: %w",
|
||||
"failed_to_create_update_download_request_w_ca826654": "failed to create update download request: %w",
|
||||
"failed_to_create_update_request_92de6fa7": "failed to create update request",
|
||||
"failed_to_create_user_fe2017cc": "Failed to create user",
|
||||
"failed_to_delete_cloudflare_dns_record_905df10a": "failed to delete Cloudflare DNS record",
|
||||
"failed_to_delete_file_485d2b67": "Failed to delete file",
|
||||
"failed_to_delete_notification_history_v_4308a791": "Failed to delete notification history: %v",
|
||||
"failed_to_delete_schedule_82d7ea83": "Failed to delete schedule",
|
||||
"failed_to_delete_token_please_try_again_later_8a65e358": "failed to delete token; please try again later",
|
||||
"failed_to_delete_user_7cf04bd0": "Failed to delete user",
|
||||
"failed_to_dispatch_task_40f01141": "Failed to dispatch task",
|
||||
"failed_to_download_deployment_archive_from_url_ece95602": "Failed to download deployment archive from URL",
|
||||
"failed_to_download_github_release_asset_445f42e6": "failed to download GitHub Release asset",
|
||||
"failed_to_download_subscription_w_73516643": "failed to download subscription: %w",
|
||||
"failed_to_download_update_asset_http_d_8bfeec63": "failed to download update asset: HTTP %d",
|
||||
"failed_to_download_update_asset_w_15a3a529": "failed to download update asset: %w",
|
||||
"failed_to_drain_log_write_queue_w_a0166ebc": "failed to drain log write queue: %w",
|
||||
"failed_to_encrypt_password_v_92ab4495": "Failed to encrypt password: %v\n",
|
||||
"failed_to_enqueue_pages_deployment_source_task_821d3915": "failed to enqueue Pages deployment source task",
|
||||
"failed_to_enqueue_retry_task_w_2c39873e": "failed to enqueue retry task: %w",
|
||||
"failed_to_enqueue_retry_v_5d869929": "Failed to enqueue retry: %v",
|
||||
"failed_to_enqueue_task_v_a7c1aed2": "Failed to enqueue task: %v",
|
||||
"failed_to_enqueue_task_w_9e65a379": "failed to enqueue task: %w",
|
||||
"failed_to_enqueue_verification_email_task_please_try_ac66b52f": "failed to enqueue verification email task; please try again",
|
||||
"failed_to_execute_automatic_rule_w_2271cde6": "failed to execute automatic rule: %w",
|
||||
"failed_to_extract_update_asset_w_692981b3": "failed to extract update asset: %w",
|
||||
"failed_to_fetch_upstream_version_e19bb5de": "Failed to fetch upstream version",
|
||||
"failed_to_generate_random_password_v_f0fea5b7": "Failed to generate random password: %v\n",
|
||||
"failed_to_generate_token_c78757e3": "failed to generate token",
|
||||
"failed_to_generate_verification_code_please_try_again_d83752a4": "failed to generate verification code; please try again",
|
||||
"failed_to_get_certificate_record_id_d_v_6d59f24e": "Failed to get certificate record ID=%d: %v",
|
||||
"failed_to_get_certificate_record_w_214148cd": "failed to get certificate record: %w",
|
||||
"failed_to_get_latest_version_w_fca8b7de": "failed to get latest version: %w",
|
||||
"failed_to_get_log_database_status_da58b757": "Failed to get log database status",
|
||||
"failed_to_get_preview_version_w_d61ed476": "failed to get preview version: %w",
|
||||
"failed_to_get_specified_version_w_63e83abe": "failed to get specified version: %w",
|
||||
"failed_to_get_token_list_please_try_again_96e34095": "failed to get token list; please try again later",
|
||||
"failed_to_get_user_list_27ad5285": "Failed to get user list",
|
||||
"failed_to_initialize_log_database_configuration_w_adfaefb2": "failed to initialize log database configuration: %w",
|
||||
"failed_to_initialize_log_storage_20fdb546": "Failed to initialize log storage",
|
||||
"failed_to_initialize_system_options_783dd4ca": "Failed to initialize system options",
|
||||
"failed_to_initialize_test_storage_instance_w_e45afe79": "failed to initialize test storage instance: %w",
|
||||
"failed_to_list_s_members_name_s_id_fa26680a": "Failed to list %s members: name=%s id=%d error=%v",
|
||||
"failed_to_load_active_node_group_s_active_4064ae7a": "Failed to load active node: group=%s active_node_id=%d error=%v",
|
||||
"failed_to_load_group_group_id_d_error_af85458e": "Failed to load group: group_id=%d error=%v",
|
||||
"failed_to_load_member_context_member_id_d_5dba6ac0": "Failed to load member context: member_id=%d error=%v",
|
||||
"failed_to_load_node_node_id_d_error_e404b970": "Failed to load node: node_id=%d error=%v",
|
||||
"failed_to_locate_current_executable_w_8e100f0b": "failed to locate current executable: %w",
|
||||
"failed_to_migrate_zone_d_conflicts_w_fd8934cb": "failed to migrate zone (%d conflicts): %w",
|
||||
"failed_to_open_file_756f4b8e": "Failed to open file",
|
||||
"failed_to_parse_current_storage_configuration_w_6eb179f7": "failed to parse current storage configuration: %w",
|
||||
"failed_to_parse_directory_display_configuration_w_b45c310f": "failed to parse directory display configuration: %w",
|
||||
"failed_to_parse_email_parameters_v_2d5f065f": "Failed to parse email parameters: %v",
|
||||
"failed_to_parse_email_parameters_w_0af9b984": "failed to parse email parameters: %w",
|
||||
"failed_to_parse_image_cache_warmup_parameters_w_80cc27e9": "failed to parse image cache warmup parameters: %w",
|
||||
"failed_to_parse_json_subscription_w_7171f213": "failed to parse JSON subscription: %w",
|
||||
"failed_to_parse_notification_parameters_v_7c7c0d1a": "Failed to parse notification parameters: %v",
|
||||
"failed_to_parse_parameters_w_d098976c": "failed to parse parameters: %w",
|
||||
"failed_to_parse_preview_version_information_8c63f444": "failed to parse preview version information",
|
||||
"failed_to_parse_target_storage_configuration_w_dedc816a": "failed to parse target storage configuration: %w",
|
||||
"failed_to_parse_version_information_9f1ec272": "failed to parse version information",
|
||||
"failed_to_precreate_target_postgresql_partitions_w_97bd4df9": "failed to precreate target PostgreSQL partitions: %w",
|
||||
"failed_to_process_file_9a1e91ff": "Failed to process file",
|
||||
"failed_to_process_image_id_d_v_f89e5f9a": "Failed to process image [ID:%d]: %v",
|
||||
"failed_to_query_access_trends_740f8684": "Failed to query access trends: ",
|
||||
"failed_to_query_active_users_d78284d9": "Failed to query active users: ",
|
||||
"failed_to_query_browser_distribution_483ef559": "Failed to query browser distribution: ",
|
||||
"failed_to_query_file_count_b2b5322f": "Failed to query file count",
|
||||
"failed_to_query_file_list_a50606c2": "Failed to query file list",
|
||||
"failed_to_query_file_record_f2d055b2": "Failed to query file record",
|
||||
"failed_to_query_image_upload_records_v_72a8a849": "Failed to query image upload records: %v",
|
||||
"failed_to_query_images_for_cache_warmup_w_daee6ed8": "failed to query images for cache warmup: %w",
|
||||
"failed_to_query_unused_uploads_v_4b22bf86": "Failed to query unused uploads: %v",
|
||||
"failed_to_query_unused_uploads_w_915f2d8f": "failed to query unused uploads: %w",
|
||||
"failed_to_query_user_information_w_612e6300": "failed to query user information: %w",
|
||||
"failed_to_query_user_v_31dc6f02": "Failed to query user: %v\n",
|
||||
"failed_to_read_aggregate_statistics_v_1fafe12a": "Failed to read aggregate statistics: %v",
|
||||
"failed_to_read_log_database_configuration_w_8d46eff5": "failed to read log database configuration: %w",
|
||||
"failed_to_read_log_database_v_f6136632": "Failed to read log database: %v",
|
||||
"failed_to_read_log_database_w_0502e3ef": "failed to read log database: %w",
|
||||
"failed_to_read_source_access_log_time_range_d9667403": "failed to read source access log time range: %w",
|
||||
"failed_to_read_source_user_access_log_time_691f3bb2": "failed to read source user access log time range: %w",
|
||||
"failed_to_read_subscription_content_w_e3665864": "failed to read subscription content: %w",
|
||||
"failed_to_read_username_v_f5ab6d40": "Failed to read username: %v\n",
|
||||
"failed_to_rebuild_file_storage_statistics_v_3a12ad55": "Failed to rebuild file storage statistics: %v",
|
||||
"failed_to_remove_previous_backup_w_9f9ce6cb": "failed to remove previous backup: %w",
|
||||
"failed_to_render_verification_email_template_w_6191557f": "failed to render verification email template: %w",
|
||||
"failed_to_replace_current_executable_w_a286fcde": "failed to replace current executable: %w",
|
||||
"failed_to_reset_password_v_628117ce": "Failed to reset password: %v\n",
|
||||
"failed_to_resolve_current_executable_path_w_fd2316e8": "failed to resolve current executable path: %w",
|
||||
"failed_to_resolve_github_release_request_target_4f4e6fdc": "failed to resolve GitHub Release request target",
|
||||
"failed_to_retrieve_file_records_fd17cc6c": "Failed to retrieve file records",
|
||||
"failed_to_retry_task_147b8518": "Failed to retry task",
|
||||
"failed_to_revoke_access_token_please_try_again_d969614c": "failed to revoke access token; please try again later",
|
||||
"failed_to_rotate_token_please_try_again_later_59dc9b53": "failed to rotate token; please try again later",
|
||||
"failed_to_save_file_66b12cc8": "failed to save file",
|
||||
"failed_to_save_schedule_ceb33e03": "Failed to save schedule",
|
||||
"failed_to_save_upload_record_e5b8160e": "Failed to save upload record",
|
||||
"failed_to_send_email_v_36c06c07": "Failed to send email: %v",
|
||||
"failed_to_send_email_w_b705989e": "failed to send email: %w",
|
||||
"failed_to_send_notification_title_s_v_360fc6f5": "Failed to send notification (title: %s): %v",
|
||||
"failed_to_serialize_storage_configuration_w_f9ccaed4": "failed to serialize storage configuration: %w",
|
||||
"failed_to_set_executable_permissions_w_42a54b5d": "failed to set executable permissions: %w",
|
||||
"failed_to_update_file_record_dabd703b": "Failed to update file record",
|
||||
"failed_to_update_last_login_time_please_try_97d1603d": "Failed to update last login time; please try again later",
|
||||
"failed_to_update_password_please_try_again_later_fb9d6cde": "failed to update password; please try again later",
|
||||
"failed_to_update_user_information_b39e7d62": "Failed to update user information",
|
||||
"failed_to_update_user_status_6fdd94ea": "Failed to update user status",
|
||||
"failed_to_validate_storage_parameters_w_4193c860": "failed to validate storage parameters: %w",
|
||||
"failed_to_validate_target_storage_parameters_w_103ef6e7": "failed to validate target storage parameters: %w",
|
||||
"failed_to_write_notification_audit_history_v_b1891968": "Failed to write notification audit history: %v",
|
||||
"failed_to_write_target_access_logs_batch_d_47059872": "failed to write target access logs (batch %d): %w",
|
||||
"failed_to_write_target_user_access_logs_batch_9571e74b": "failed to write target user access logs (batch %d): %w",
|
||||
"failed_to_write_update_archive_w_c5f4d1ca": "failed to write update archive: %w",
|
||||
"feishu_group_bot_de2e961b": "Feishu group bot",
|
||||
"fetched_migration_batch_requested_size_d_actual_objects_b53f700f": "Fetched migration batch; requested size: %d, actual objects: %d",
|
||||
"file_content_does_not_match_its_extension_and_7033268f": "File content does not match its extension and may be unsafe",
|
||||
"file_record_was_not_found_a4f4b1ab": "File record was not found",
|
||||
"file_size_must_not_exceed_32_mb_9fef6c20": "File size must not exceed 32 MB",
|
||||
"file_storage_backend_and_connection_configuration_json_2ee5f58c": "File storage backend and connection configuration (JSON)",
|
||||
"file_storage_statistics_rebuilt_d_active_records_d_4576eca3": "File storage statistics rebuilt: %d active records, %d files, %d bytes total",
|
||||
"file_validation_failed_076673fd": "File validation failed",
|
||||
"file_was_not_found_b5877462": "File was not found",
|
||||
"fold_minutes_must_be_3_or_5_740e118a": "fold_minutes must be 3 or 5",
|
||||
"for_example_100123456789_or_channel_name_8e18bf43": "For example -100123456789 or @channel_name",
|
||||
"found_d_uploads_to_clean_up_in_this_a86fa63c": "Found %d uploads to clean up in this batch",
|
||||
"geoip_lookup_is_disabled_ed78d892": "GeoIP lookup is disabled",
|
||||
"geolocation_provider_must_be_disabled_mmdb_ip_api_08bc0f62": "geolocation provider must be disabled, mmdb, ip-api, geojs or ipinfo",
|
||||
"github_latest_check_interval_must_be_between_5_2470787a": "GitHub latest check interval must be between 5 and 1440 minutes",
|
||||
"github_release_asset_digest_is_invalid_or_verification_7baba33c": "GitHub Release asset digest is invalid or verification failed",
|
||||
"github_release_asset_digest_verification_failed_98f540bd": "GitHub Release asset digest verification failed",
|
||||
"github_release_asset_exceeds_the_size_limit_33eb67f0": "GitHub Release asset exceeds the size limit",
|
||||
"github_release_asset_is_empty_5a6a9b0a": "GitHub Release asset is empty",
|
||||
"github_release_asset_name_must_be_a_safe_ee1a4e4e": "GitHub Release asset name must be a safe filename",
|
||||
"github_release_asset_redirect_limit_exceeded_da3dd30b": "GitHub Release asset redirect limit exceeded",
|
||||
"github_release_check_completed_947726e7": "GitHub Release check completed",
|
||||
"github_release_check_completed_content_is_unchanged_dbcf8dc0": "GitHub Release check completed; content is unchanged",
|
||||
"github_release_request_failed_e37d72ea": "GitHub Release request failed",
|
||||
"github_release_request_target_is_not_a_public_80de5fc7": "GitHub Release request target is not a public address",
|
||||
"github_release_sources_must_not_include_remote_url_84826183": "GitHub Release sources must not include remote URL configuration",
|
||||
"github_returned_an_unexpected_status_s_30454efa": "GitHub returned an unexpected status: %s",
|
||||
"global_rule_group_03239b06": "Global rule group",
|
||||
"global_waf_rule_cannot_be_deleted_031e6c8d": "global WAF rule cannot be deleted",
|
||||
"global_waf_rule_groups_do_not_require_manual_5cc46cb1": "global WAF rule groups do not require manual binding",
|
||||
"group_399ee693": "group",
|
||||
"group_id_4acad7d2": "Group ID",
|
||||
"group_id_must_be_nonzero_caa5a675": "group ID must be nonzero",
|
||||
"group_name_must_not_be_empty_7b33c238": "group name must not be empty",
|
||||
"group_primary_key_in_the_of_cf_pointing_34d94c54": "Group primary key in the of_cf_pointing_groups table",
|
||||
"historical_authentication_source_299cdda4": "Historical authentication source",
|
||||
"hours_f8af2637": " hours ",
|
||||
"https_api_base_url_defaults_to_https_api_84cf7d41": "HTTPS API base URL; defaults to https://api.telegram.org",
|
||||
"id_of_the_tls_certificate_to_renew_2e6077c7": "ID of the TLS certificate to renew",
|
||||
"id_token_verification_failed_21582415": "ID token verification failed",
|
||||
"if_specified_this_must_be_valid_feishu_card_1541edd3": "If specified, this must be valid Feishu card JSON",
|
||||
"image_cache_warmup_completed_processed_d_generated_d_9553c957": "Image cache warmup completed; processed %d, generated %d, hits %d, failed %d",
|
||||
"image_cache_warmup_parameters_must_not_be_empty_59ff5906": "image cache warmup parameters must not be empty",
|
||||
"image_quality_0ab5629b": "Image quality",
|
||||
"image_quality_must_be_low_medium_or_high_3d699272": "image quality must be low, medium or high",
|
||||
"images_d24c10d3": "Images",
|
||||
"incorrect_username_or_password_a9a6a83a": "Incorrect username or password",
|
||||
"ingest_saving_github_release_deployment_archive_04bc7ee9": "[ingest] Saving GitHub Release deployment archive",
|
||||
"ingest_saving_managed_deployment_archive_ab0eb22f": "[ingest] Saving managed deployment archive",
|
||||
"initialize_test_e2279a66": "Initialize test",
|
||||
"internal_server_error_03654907": "Internal server error",
|
||||
"internal_server_error_cc540d22": "Internal server error",
|
||||
"internal_system_error_2216034c": "Internal system error",
|
||||
"invalid_access_mode_parameter_f4f87024": "Invalid access_mode parameter",
|
||||
"invalid_account_binding_id_47be930f": "Invalid account binding ID",
|
||||
"invalid_authentication_source_id_8d95b39c": "invalid authentication source ID",
|
||||
"invalid_cache_rules_for_route_s_0b419f3f": "invalid cache rules for route %s",
|
||||
"invalid_certificate_pem_content_82644642": "invalid certificate PEM content",
|
||||
"invalid_cloudflare_connection_source_0f6d01bb": "invalid Cloudflare connection source",
|
||||
"invalid_cloudflare_failover_check_parameters_w_ef353c9b": "invalid Cloudflare failover check parameters: %w",
|
||||
"invalid_cloudflare_group_synchronization_parameters_w_545b7a80": "invalid Cloudflare group synchronization parameters: %w",
|
||||
"invalid_cloudflare_member_synchronization_parameters_w_43aa2390": "invalid Cloudflare member synchronization parameters: %w",
|
||||
"invalid_cloudflare_node_synchronization_parameters_3f4794f4": "invalid Cloudflare node synchronization parameters",
|
||||
"invalid_configuration_for_node_s_w_86c7c706": "invalid configuration for node %s: %w",
|
||||
"invalid_configuration_snapshot_format_6ecb7b3c": "invalid configuration snapshot format",
|
||||
"invalid_cron_expression_df504099": "Invalid Cron expression",
|
||||
"invalid_cursor_parameter_315ceadf": "Invalid cursor parameter",
|
||||
"invalid_custom_request_headers_for_route_s_705aeb8a": "invalid custom request headers for route %s",
|
||||
"invalid_custom_user_agent_pattern_in_node_s_6a73d813": "invalid custom User-Agent pattern in node %s: %s",
|
||||
"invalid_deployment_archive_url_only_http_and_https_23d257c7": "invalid deployment archive URL; only HTTP and HTTPS are supported",
|
||||
"invalid_discovery_token_980df46c": "invalid discovery token",
|
||||
"invalid_dns_record_value_check_the_domain_name_eb1b034a": "invalid DNS record value; check the domain name or IP address",
|
||||
"invalid_domain_name_format_614e6afb": "invalid domain name format",
|
||||
"invalid_email_address_format_4e992d96": "invalid email address format",
|
||||
"invalid_expression_in_automatic_rule_s_w_a9ea3421": "invalid expression in automatic rule %s: %w",
|
||||
"invalid_file_id_619affa0": "Invalid file ID",
|
||||
"invalid_github_release_asset_digest_format_3e38c702": "invalid GitHub Release asset digest format",
|
||||
"invalid_github_release_metadata_response_190ecf90": "invalid GitHub Release metadata response",
|
||||
"invalid_github_release_request_parameters_4ceabd70": "invalid GitHub Release request parameters",
|
||||
"invalid_github_release_selection_mode_d644ae98": "invalid GitHub Release selection mode",
|
||||
"invalid_github_repository_url_use_https_github_com_4a255a79": "invalid GitHub repository URL; use https://github.com/{owner}/{repo}",
|
||||
"invalid_graph_data_for_waf_rule_s_w_529ff00b": "invalid graph data for WAF rule %s: %w",
|
||||
"invalid_graph_for_waf_rule_s_w_8a87d07b": "invalid graph for WAF rule %s: %w",
|
||||
"invalid_historical_version_snapshot_format_0424b7b0": "invalid historical version snapshot format",
|
||||
"invalid_id_c0d026c8": "Invalid ID",
|
||||
"invalid_id_value_s_2be5b057": "Invalid ID value: %s",
|
||||
"invalid_image_cache_warmup_parameters_v_94273376": "Invalid image cache warmup parameters: %v",
|
||||
"invalid_image_cache_warmup_parameters_w_285d734c": "invalid image cache warmup parameters: %w",
|
||||
"invalid_ip_address_format_c6084aa5": "invalid IP address format",
|
||||
"invalid_ip_address_format_f988e58e": "invalid IP address format",
|
||||
"invalid_ip_group_type_2c9b1982": "invalid IP group type",
|
||||
"invalid_ip_match_configuration_in_active_waf_rule_9acb007b": "invalid IP match configuration in active WAF rule %d, node %s: %w",
|
||||
"invalid_json_format_w_be1f4f8e": "invalid JSON format: %w",
|
||||
"invalid_login_request_f39483be": "Invalid login request",
|
||||
"invalid_lookback_format_use_a_duration_such_as_63f37246": "invalid lookback format; use a duration such as 60m or 1h",
|
||||
"invalid_lookback_minutes_w_d9589ae4": "invalid lookback_minutes: %w",
|
||||
"invalid_metadata_json_format_59d64290": "Invalid metadata JSON format",
|
||||
"invalid_node_ip_address_format_6101324f": "Invalid node IP address format",
|
||||
"invalid_origin_address_format_0f1c1a36": "invalid origin address format",
|
||||
"invalid_pages_configuration_for_route_s_active_pages_8a53c746": "invalid Pages configuration for route %s: active Pages deployment does not match",
|
||||
"invalid_pages_configuration_for_route_s_active_pages_bc33eb91": "invalid Pages configuration for route %s: active Pages deployment was not found",
|
||||
"invalid_pages_configuration_for_route_s_no_pages_f8128192": "invalid Pages configuration for route %s: no Pages project is bound",
|
||||
"invalid_pages_configuration_for_route_s_pages_deployment_296fe10f": "invalid Pages configuration for route %s: Pages deployment checksum is missing",
|
||||
"invalid_pages_configuration_for_route_s_pages_module_52fe9ed1": "invalid Pages configuration for route %s: Pages module is unavailable",
|
||||
"invalid_pages_configuration_for_route_s_pages_project_10fdf9a7": "invalid Pages configuration for route %s: Pages project is disabled",
|
||||
"invalid_pages_configuration_for_route_s_pages_project_146a248a": "invalid Pages configuration for route %s: Pages project has no active deployment",
|
||||
"invalid_pages_configuration_for_route_s_pages_project_b6dacd48": "invalid Pages configuration for route %s: Pages project was not found",
|
||||
"invalid_pages_configuration_for_route_s_w_e055a8aa": "invalid Pages configuration for route %s: %w",
|
||||
"invalid_pages_configuration_missing_pages_project_id_644ff7ea": "invalid Pages configuration: missing pages_project_id",
|
||||
"invalid_pages_deployment_source_task_parameters_329e38dc": "invalid Pages deployment source task parameters",
|
||||
"invalid_pages_entry_file_w_dd997325": "invalid Pages entry file: %w",
|
||||
"invalid_pages_root_directory_w_288d75ab": "invalid Pages root directory: %w",
|
||||
"invalid_pages_route_configuration_6e3033f8": "invalid Pages route configuration",
|
||||
"invalid_parameters_68abb8d5": "invalid parameters",
|
||||
"invalid_parameters_889c2534": "invalid parameters",
|
||||
"invalid_port_format_301a25e5": "invalid port format",
|
||||
"invalid_release_asset_size_d_71275aec": "invalid release asset size: %d",
|
||||
"invalid_remote_archive_url_use_http_https_without_cec74305": "invalid remote archive URL; use HTTP/HTTPS without user information or fragments",
|
||||
"invalid_remote_source_archive_size_limit_ed9a749a": "Invalid remote source archive size limit",
|
||||
"invalid_request_rate_use_a_rate_such_as_7d899f0e": "invalid request rate; use a rate such as 10r/s or 100r/m, or -1 to disable",
|
||||
"invalid_rule_graph_w_51b132a5": "invalid rule graph: %w",
|
||||
"invalid_s_format_use_512k_1m_or_a_7ae562cc": "invalid %s format; use 512k, 1m or a number, or leave empty to disable",
|
||||
"invalid_s_format_use_a_rate_such_as_285ef3fc": "invalid %s format; use a rate such as 10r/s or 100r/m, or leave empty to disable",
|
||||
"invalid_schedule_id_5439796e": "Invalid schedule ID",
|
||||
"invalid_since_timestamp_rfc3339_is_required_e4d815e5": "invalid since timestamp; RFC3339 is required",
|
||||
"invalid_smtp_configuration_use_a_temporary_code_to_707c19c2": "Invalid SMTP configuration; use a temporary code to sign in",
|
||||
"invalid_spa_fallback_path_65e9fab1": "invalid SPA fallback path",
|
||||
"invalid_status_code_range_s_ea6a6bba": "invalid status code range: %s",
|
||||
"invalid_status_code_s_5fcf3c49": "invalid status code: %s",
|
||||
"invalid_subscription_url_5e4fd4ef": "invalid subscription URL",
|
||||
"invalid_target_log_database_s_f49a2783": "invalid target log database: %s",
|
||||
"invalid_task_execution_id_6a0914c6": "Invalid task execution ID",
|
||||
"invalid_task_type_42c573e7": "Invalid task type",
|
||||
"invalid_time_range_205ddcad": "Invalid time range",
|
||||
"invalid_time_range_select_24h_7d_or_30d_7315b848": "invalid time range; select 24h, 7d or 30d",
|
||||
"invalid_token_id_6493bfb3": "Invalid token ID",
|
||||
"invalid_until_timestamp_rfc3339_is_required_ff8c418e": "invalid until timestamp; RFC3339 is required",
|
||||
"invalid_upload_id_5af291c3": "Invalid upload ID",
|
||||
"invalid_upstream_configuration_for_route_s_868edc8c": "invalid upstream configuration for route %s",
|
||||
"invalid_upstream_repository_url_1865af39": "invalid upstream repository URL",
|
||||
"invalid_upstream_version_response_fa50f23a": "Invalid upstream version response",
|
||||
"invalid_version_identifier_31e5ed95": "Invalid version identifier",
|
||||
"ip_address_must_not_be_empty_4272c9f3": "IP address must not be empty",
|
||||
"ip_group_d_was_not_found_7b101cd1": "IP group %d was not found",
|
||||
"ip_group_is_referenced_by_waf_rules_remove_bd6b2cb2": "IP group is referenced by WAF rules; remove the references first",
|
||||
"ip_group_name_must_not_be_empty_56680071": "IP group name must not be empty",
|
||||
"ip_group_was_not_found_21fa23de": "IP group was not found",
|
||||
"ip_must_not_be_empty_fe4591d4": "ip must not be empty",
|
||||
"json_mapping_rule_q_did_not_match_any_feb34054": "JSON mapping rule %q did not match any content",
|
||||
"latitude_must_be_between_90_and_90_0b929ed3": "Latitude must be between -90 and 90",
|
||||
"leave_empty_to_use_the_built_in_interactive_1817bda4": "Leave empty to use the built-in interactive card",
|
||||
"less_than_d_minutes_since_the_last_synchronization_7e3c8aac": "Less than %d minutes since the last synchronization; skipping execution",
|
||||
"log_cleanup_completed_access_log_retention_d_days_c0f19eea": "Log cleanup completed: access log retention %d days, metric retention %d days, deleted %d records",
|
||||
"log_database_configuration_is_empty_2cf975c3": "log database configuration is empty",
|
||||
"log_database_switched_from_s_to_s_32746f98": "Log database switched from %s to %s",
|
||||
"log_database_switched_to_s_writes_resumed_66f1d3fc": "Log database switched to %s; writes resumed",
|
||||
"log_storage_is_disabled_access_logs_cannot_be_4f3d313d": "Log storage is disabled; access logs cannot be retrieved",
|
||||
"log_storage_is_disabled_analytics_are_unavailable_2633ef1d": "Log storage is disabled; analytics are unavailable",
|
||||
"longitude_must_be_between_180_and_180_3b3f5968": "Longitude must be between -180 and 180",
|
||||
"lookback_must_be_a_whole_number_of_minutes_bd7a069b": "lookback must be a whole number of minutes",
|
||||
"lookback_window_must_not_exceed_s_ec8227f8": "lookback window must not exceed %s",
|
||||
"lua_directory_must_not_be_empty_73c45ce8": "lua directory must not be empty",
|
||||
"lua_file_path_must_not_be_empty_ad5ec475": "lua file path must not be empty",
|
||||
"main_configuration_path_must_not_be_empty_4257a895": "main configuration path must not be empty",
|
||||
"match_mode_for_node_s_must_be_and_65944b17": "match mode for node %s must be and or or",
|
||||
"match_path_is_required_when_the_api_reverse_8b41181e": "match path is required when the API reverse proxy is enabled",
|
||||
"maximum_number_of_access_tokens_reached_3c769ae3": "Maximum number of access tokens reached",
|
||||
"maximum_retry_8bf02f4c": "Maximum retry",
|
||||
"maximum_retry_count_d_reached_d961828b": "Maximum retry count %d reached",
|
||||
"maximum_retry_count_reached_122b9d92": "Maximum retry count reached",
|
||||
"member_id_a4c4a726": "Member ID",
|
||||
"member_id_must_be_nonzero_dbec6bb1": "member ID must be nonzero",
|
||||
"member_primary_key_in_the_of_cf_pointing_95a864b8": "Member primary key in the of_cf_pointing_members table",
|
||||
"migrate_file_storage_f03b672a": "Migrate file storage",
|
||||
"migrate_files_from_active_storage_to_the_target_89752f95": "Migrate files from active storage to the target backend; files remain read-only during migration",
|
||||
"migration_skipped_identical_file_already_exists_in_target_729b4c99": "[Migration skipped] Identical file already exists in target storage: %s",
|
||||
"migration_started_reading_file_from_source_storage_s_001c53d6": "[Migration started] Reading file from source storage: %s",
|
||||
"migration_succeeded_file_migration_completed_s_9c0b6a24": "[Migration succeeded] File migration completed: %s",
|
||||
"migration_target_postgres_for_a_postgresql_primary_sqlite_a542bb6f": "Migration target: postgres for a PostgreSQL primary, sqlite for a SQLite primary, or clickhouse",
|
||||
"minutes_c5e1cb2c": " minutes ",
|
||||
"missing_agent_token_ad736eb5": "missing agent token",
|
||||
"missing_certificate_file_eb3adf78": "Missing certificate file",
|
||||
"missing_discovery_token_038af7e9": "missing discovery token",
|
||||
"missing_pages_deployment_archive_0e2feedd": "missing Pages deployment archive",
|
||||
"missing_private_key_file_5b2ce6fe": "Missing private key file",
|
||||
"missing_release_version_identifier_179171c9": "missing release version identifier",
|
||||
"mmdb_update_interval_must_be_greater_than_0_7b371ae5": "mmdb_update_interval must be greater than 0",
|
||||
"monitor_scope_must_be_all_or_selected_sites_956be94b": "monitor scope must be all or selected sites",
|
||||
"months_15e40097": " months ",
|
||||
"multiple_cloudflare_dns_records_have_the_same_name_0487505e": "multiple Cloudflare DNS records have the same name; remove the duplicates manually first",
|
||||
"must_be_an_integer_dfd6c0ce": "must be an integer",
|
||||
"new_password_generated_randomly_if_omitted_acbf0a56": "New password; generated randomly if omitted",
|
||||
"new_password_must_contain_at_least_8_characters_16160d33": "New password must contain at least 8 characters",
|
||||
"new_password_s_c7c43a90": "New password: %s\n",
|
||||
"no_active_configuration_version_60f8a99b": "no active configuration version",
|
||||
"no_available_authentication_source_is_configured_326f6438": "no available authentication source is configured",
|
||||
"no_certificate_is_configured_for_route_s_83ba5214": "no certificate is configured for route %s",
|
||||
"no_cloudflare_connection_is_configured_6ff882c7": "no Cloudflare connection is configured",
|
||||
"no_compatible_release_was_found_4d9a5ae5": "no compatible release was found",
|
||||
"no_enabled_rules_are_available_to_publish_8dc1e2c9": "no enabled rules are available to publish",
|
||||
"no_expired_logs_require_cleanup_access_log_retention_c72c5317": "No expired logs require cleanup (access log retention: %d days; metric retention: %d days)",
|
||||
"no_github_release_asset_matches_the_configuration_8c8ac16a": "no GitHub Release asset matches the configuration",
|
||||
"no_ip_addresses_or_ranges_were_parsed_from_1fcb1209": "no IP addresses or ranges were parsed from the JSON subscription",
|
||||
"no_ip_geolocation_result_was_returned_6cb0600f": "no IP geolocation result was returned",
|
||||
"no_members_selected_dd913716": "no members selected",
|
||||
"no_notification_history_requires_cleanup_cutoff_s_a2893d9b": "No notification history requires cleanup (cutoff: %s)",
|
||||
"no_preview_release_is_currently_available_558f10ae": "no preview release is currently available",
|
||||
"no_release_asset_was_found_for_the_current_a2eb352a": "no release asset was found for the current platform",
|
||||
"no_unique_cloudflare_zone_found_for_s_c20b7e4b": "no unique Cloudflare zone found for %s",
|
||||
"no_valid_file_records_were_found_to_archive_89022def": "No valid file records were found to archive",
|
||||
"node_2410d860": "node",
|
||||
"node_id_must_not_be_empty_51a5de58": "node ID must not be empty",
|
||||
"node_id_must_not_be_empty_5aa87f2e": "node_id must not be empty",
|
||||
"node_identifier_conflict_please_try_again_8e2acef7": "node identifier conflict; please try again",
|
||||
"node_ip_must_not_be_empty_f589f59a": "node_ip must not be empty",
|
||||
"node_ip_must_not_exceed_64_characters_86cbe000": "Node IP must not exceed 64 characters",
|
||||
"node_is_offline_or_the_synchronization_command_could_c560bf64": "node is offline or the synchronization command could not be sent over WebSocket",
|
||||
"node_location_name_must_not_exceed_128_characters_87961927": "Node location name must not exceed 128 characters",
|
||||
"node_name_must_not_be_empty_03dc8468": "node name must not be empty",
|
||||
"node_name_must_not_be_empty_c7c245c4": "node_name must not be empty",
|
||||
"node_s_cannot_validate_ip_group_d_37bca244": "node %s cannot validate IP group %d",
|
||||
"node_s_contains_invalid_browser_tag_s_66a80660": "node %s contains invalid browser tag %s",
|
||||
"node_s_contains_invalid_cidr_s_3cf57f3e": "node %s contains invalid CIDR %s",
|
||||
"node_s_contains_invalid_country_code_s_c3a43e69": "node %s contains invalid country code %s",
|
||||
"node_s_contains_invalid_ip_s_0c3bdf3f": "node %s contains invalid IP %s",
|
||||
"node_s_contains_invalid_operating_system_tag_s_5f6a6ddd": "node %s contains invalid operating system tag %s",
|
||||
"node_s_contains_invalid_region_code_s_736f6724": "node %s contains invalid region code %s",
|
||||
"node_s_failed_to_validate_ip_group_d_ce8c1581": "node %s failed to validate IP group %d: %w",
|
||||
"node_s_has_no_path_to_a_terminal_8286bb22": "node %s has no path to a terminal node",
|
||||
"node_s_has_unknown_type_s_f090b1d7": "node %s has unknown type %s",
|
||||
"node_s_is_not_reachable_from_the_start_5eacc4af": "node %s is not reachable from the start node",
|
||||
"node_s_must_have_at_least_one_incoming_7c8aac64": "node %s must have at least one incoming edge",
|
||||
"node_s_must_not_contain_more_than_d_404db8ac": "node %s must not contain more than %d custom User-Agent patterns",
|
||||
"node_s_output_s_is_connected_to_multiple_05e9cddf": "node %s output %s is connected to multiple targets",
|
||||
"node_s_output_s_is_not_connected_6de47feb": "node %s output %s is not connected",
|
||||
"node_s_references_an_invalid_ip_group_id_27bdf145": "node %s references an invalid IP group ID",
|
||||
"node_s_references_missing_ip_group_d_40d3c647": "node %s references missing IP group %d",
|
||||
"node_s_requires_at_least_one_pattern_when_480bade2": "node %s requires at least one pattern when custom User-Agent blocking is enabled",
|
||||
"node_was_not_found_7b451929": "node was not found",
|
||||
"nonce_mismatch_possible_replay_attack_8b3e6356": "nonce mismatch; possible replay attack",
|
||||
"none_484d5561": "None",
|
||||
"not_found_4e51b67d": "not found",
|
||||
"not_signed_in_c1f65837": "Not signed in",
|
||||
"notification_channel_test_245d0001": "Notification channel test",
|
||||
"notification_failed_v_263fc07a": "Notification failed: %v",
|
||||
"notification_sent_s_s_e52650c7": "Notification sent: [%s] -> %s",
|
||||
"notification_sent_title_s_content_summary_s_097becda": "Notification sent (title: %s, content summary: %s)",
|
||||
"observability_replay_minutes_must_be_greater_than_0_fc964575": "observability_replay_minutes must be greater than 0",
|
||||
"oidc_authentication_sources_require_a_discovery_url_566d40ba": "OIDC authentication sources require a Discovery URL",
|
||||
"only_administrators_can_create_tokens_with_administrator_privileges_b2e4ad01": "Only administrators can create tokens with administrator privileges",
|
||||
"only_automatic_and_subscription_ip_groups_support_synchronization_b7d7995c": "only automatic and subscription IP groups support synchronization",
|
||||
"only_failed_tasks_464688af": "Only failed tasks",
|
||||
"only_failed_tasks_can_be_retried_279c69a0": "Only failed tasks can be retried",
|
||||
"only_failed_tasks_can_be_retried_current_status_9346f42a": "only failed tasks can be retried; current status: %s",
|
||||
"only_jpg_png_and_webp_images_are_supported_c7c3c323": "only JPG, PNG and WEBP images are supported",
|
||||
"openflare_automatic_ssl_renewal_cf123a50": "OpenFlare automatic SSL renewal",
|
||||
"openflare_pages_deployment_source_operation_866f0285": "OpenFlare Pages deployment source operation",
|
||||
"openflare_pages_deployment_source_scan_6932f24c": "OpenFlare Pages deployment source scan",
|
||||
"openflare_single_certificate_ssl_renewal_a531316e": "OpenFlare single-certificate SSL renewal",
|
||||
"openflare_uptime_kuma_synchronization_b2168d61": "OpenFlare Uptime Kuma synchronization",
|
||||
"openflare_waf_ip_group_synchronization_f7213a53": "OpenFlare WAF IP group synchronization",
|
||||
"openresty_observability_port_must_be_between_1_and_69074f9c": "openresty_observability_port must be between 1 and 65535",
|
||||
"openrestymainconfigtemplate_must_not_be_empty_3ac2d43c": "OpenRestyMainConfigTemplate must not be empty",
|
||||
"openrestymainconfigtemplate_must_retain_placeholder_s_cfc00d9c": "OpenRestyMainConfigTemplate must retain placeholder %s",
|
||||
"operation_not_authorized_invalid_agent_token_307a5b9a": "Operation not authorized: invalid agent token",
|
||||
"operation_not_authorized_invalid_registration_token_a1264630": "Operation not authorized: invalid registration token",
|
||||
"operation_not_authorized_invalid_tunnel_token_641a1499": "Operation not authorized: invalid tunnel token",
|
||||
"operation_not_permitted_286a8d3f": "Operation not permitted",
|
||||
"origin_address_already_exists_0013db55": "origin address already exists",
|
||||
"origin_address_is_missing_a_port_7b7c2ebf": "origin address is missing a port",
|
||||
"origin_address_must_not_be_empty_f49f8b30": "origin address must not be empty",
|
||||
"origin_path_must_not_contain_a_protocol_8e0af122": "origin path must not contain a protocol",
|
||||
"origin_path_must_start_with_or_4bf64d2c": "origin path must start with / or ?",
|
||||
"origin_protocol_must_be_http_or_https_ab499f2a": "origin protocol must be http or https",
|
||||
"origin_was_not_found_0752eb2d": "Origin was not found",
|
||||
"other_d2909f16": "Other",
|
||||
"pages_archives_support_zip_tar_gz_tar_xz_83bca097": "pages archives support zip, tar.gz, tar.xz, tar.bz2, tar and 7z formats only",
|
||||
"pages_deployment_archive_hash_is_missing_4d740a0d": "pages deployment archive hash is missing",
|
||||
"pages_deployment_archive_is_not_a_valid_compressed_9b2cefd1": "pages deployment archive is not a valid compressed archive",
|
||||
"pages_deployment_archive_is_not_a_valid_zip_0dd602e6": "Pages deployment archive is not a valid ZIP file",
|
||||
"pages_deployment_archive_must_be_a_zip_file_ab5b4552": "Pages deployment archive must be a .zip file",
|
||||
"pages_deployment_archive_must_not_be_empty_ff4d94e4": "pages deployment archive must not be empty",
|
||||
"pages_deployment_archive_must_not_exceed_d_mib_3c1a0b6a": "pages deployment archive must not exceed %d MiB",
|
||||
"pages_deployment_archive_path_is_empty_87435085": "Pages deployment archive path is empty",
|
||||
"pages_deployment_archive_upload_record_was_not_found_9990e33d": "pages deployment archive upload record was not found",
|
||||
"pages_deployment_archive_upload_type_mismatch_s_cd5886f7": "pages deployment archive upload type mismatch: %s",
|
||||
"pages_deployment_archive_was_not_found_w_39714023": "pages deployment archive was not found: %w",
|
||||
"pages_deployment_does_not_belong_to_this_project_374852db": "pages deployment does not belong to this project",
|
||||
"pages_deployment_is_not_included_in_the_active_26b4dcae": "pages deployment is not included in the active configuration",
|
||||
"pages_deployment_must_not_contain_more_than_d_80d2f448": "pages deployment must not contain more than %d files",
|
||||
"pages_deployment_source_configuration_changed_task_skipped_ed018def": "Pages deployment source configuration changed; task skipped",
|
||||
"pages_deployment_source_operation_failed_please_try_again_19363b45": "Pages deployment source operation failed; please try again later",
|
||||
"pages_deployment_source_synchronization_failed_86c51b71": "pages deployment source synchronization failed",
|
||||
"pages_deployment_source_synchronized_and_published_successfully_0bf1e5dd": "Pages deployment source synchronized and published successfully",
|
||||
"pages_deployment_source_task_ownership_is_no_longer_35aa212a": "pages deployment source task ownership is no longer valid",
|
||||
"pages_deployment_source_was_not_found_c9af468e": "pages deployment source was not found",
|
||||
"pages_deployment_was_not_found_e90bdf07": "pages deployment was not found",
|
||||
"pages_entry_file_must_not_exceed_512_characters_3e7fb206": "pages entry file must not exceed 512 characters",
|
||||
"pages_project_has_no_active_deployment_6d7971f7": "pages project has no active deployment",
|
||||
"pages_project_is_disabled_98847c64": "pages project is disabled",
|
||||
"pages_project_is_referenced_by_rules_and_cannot_416af718": "pages project is referenced by rules and cannot be deleted",
|
||||
"pages_project_name_must_not_be_empty_717063ef": "pages project name must not be empty",
|
||||
"pages_project_or_deployment_is_empty_ddcf5875": "pages project or deployment is empty",
|
||||
"pages_project_slug_already_exists_b7c6e058": "pages project slug already exists",
|
||||
"pages_project_slug_may_only_contain_lowercase_letters_56675232": "pages project slug may only contain lowercase letters, digits and hyphens",
|
||||
"pages_project_was_not_found_b6f46c90": "pages project was not found",
|
||||
"pages_root_directory_must_not_exceed_512_characters_29d92328": "pages root directory must not exceed 512 characters",
|
||||
"pages_source_content_is_unchanged_existing_deployment_reactivated_1441d50c": "Pages source content is unchanged; existing deployment reactivated",
|
||||
"pages_source_scan_completed_recovered_d_leases_compensated_de889c15": "Pages source scan completed: recovered %d leases, compensated %d orphan records, checked %d sources, dispatched %d automatic updates, backlog %d",
|
||||
"parse_fbff7b50": "Parse",
|
||||
"parse_task_parameters_w_21ea4f33": "parse task parameters: %w",
|
||||
"password_changed_successfully_c5299b82": "Password changed successfully",
|
||||
"password_encryption_failed_please_try_again_ef84e8d4": "password encryption failed; please try again",
|
||||
"password_login_is_disabled_by_the_administrator_54c5d88a": "Password login is disabled by the administrator",
|
||||
"password_must_contain_at_least_8_characters_ab81f8d4": "password must contain at least 8 characters",
|
||||
"password_reset_successfully_bf63ac4e": "Password reset successfully",
|
||||
"periodically_remove_unused_uploads_historical_notifications_and_expired_68ae5d13": "Periodically remove unused uploads, historical notifications and expired task execution logs",
|
||||
"pg_dump_is_unavailable_install_the_postgresql_client_759ad5ae": "pg_dump is unavailable; install the PostgreSQL client tools on the server",
|
||||
"please_sign_in_first_48144f96": "Please sign in first",
|
||||
"port_must_not_be_empty_e53d74a2": "port must not be empty",
|
||||
"postgresql_is_disabled_and_sqlite_is_the_primary_3234d0c2": "PostgreSQL is disabled and SQLite is the primary database; migration to PostgreSQL is unavailable",
|
||||
"postgresql_is_the_primary_database_sqlite_cannot_be_4d638671": "PostgreSQL is the primary database; SQLite cannot be selected for log storage",
|
||||
"pow_algorithm_for_node_s_must_be_fast_97989167": "PoW algorithm for node %s must be fast or slow",
|
||||
"pow_challenge_ttl_for_node_s_must_be_87482278": "PoW challenge TTL for node %s must be at least 30 seconds",
|
||||
"pow_difficulty_for_node_s_must_be_between_4eaec0b8": "PoW difficulty for node %s must be between 1 and 16",
|
||||
"pow_session_ttl_for_node_s_must_be_98ed3573": "PoW session TTL for node %s must be at least 60 seconds",
|
||||
"precreated_target_postgresql_partitions_from_s_to_s_0bc5358f": "Precreated target PostgreSQL partitions from %s to %s",
|
||||
"preparing_group_synchronization_group_s_id_d_enabled_9d8361f3": "Preparing group synchronization: group=%s id=%d enabled=%v target=%s default_proxied=%v",
|
||||
"preparing_node_synchronization_node_s_id_d_ip_61c8f04a": "Preparing node synchronization: node=%s id=%d ip=%s",
|
||||
"preparing_to_issue_or_renew_a_certificate_for_18326882": "Preparing to issue or renew a certificate for domains [%s]",
|
||||
"preparing_to_send_email_to_s_subject_s_1f6fad47": "Preparing to send email to: %s, subject: %s",
|
||||
"previous_pages_deployment_source_task_lease_expired_4de3ac84": "Previous Pages deployment source task lease expired",
|
||||
"primary_and_standby_nodes_must_be_different_7f96a264": "primary and standby nodes must be different",
|
||||
"provide_the_remote_deployment_archive_url_887e4ef2": "provide the remote deployment archive URL",
|
||||
"querying_next_migration_batch_migrated_d_d_c481c987": "Querying next migration batch; migrated: %d/%d",
|
||||
"rebuild_file_storage_statistics_fe52d825": "Rebuild file storage statistics",
|
||||
"rebuild_w_upload_stats_from_active_w_uploads_08023859": "Rebuild w_upload_stats from active w_uploads records, including totals, types, categories and trends",
|
||||
"rebuilding_file_storage_statistics_active_records_d_60a4199b": "Rebuilding file storage statistics; active records: %d",
|
||||
"receiving_this_message_confirms_that_the_notification_channel_79c41407": "Receiving this message confirms that the notification channel connectivity test succeeded.",
|
||||
"recipient_b013dc37": "Recipient",
|
||||
"recipient_email_to_88e59c15": "Recipient email (To)",
|
||||
"record_was_not_found_e4ba0386": "Record was not found",
|
||||
"recover_recovered_expired_source_lease_source_id_d_c4a7c01f": "[recover] Recovered expired source lease: source_id=%d",
|
||||
"registration_failed_please_try_again_later_a4807a5d": "registration failed; please try again later",
|
||||
"registration_is_disabled_by_the_administrator_420d53e6": "Registration is disabled by the administrator",
|
||||
"remote_addr_must_not_be_empty_ba45da61": "remote_addr must not be empty",
|
||||
"remote_source_redirect_limit_exceeded_3fdd16bf": "Remote source redirect limit exceeded",
|
||||
"remote_url_sources_do_not_support_update_checks_1ecca79c": "remote URL sources do not support update checks; use Sync now",
|
||||
"remote_url_sources_must_not_include_github_or_48c0b153": "remote URL sources must not include GitHub or automatic update configuration",
|
||||
"renew_a_single_specified_acme_certificate_a27fd4e1": "Renew a single specified ACME certificate",
|
||||
"renewal_certificate_data_saved_9d25aae9": "[Renewal] Certificate data saved",
|
||||
"renewal_certificate_issued_securely_storing_certificate_and_private_cfaa1b37": "[Renewal] Certificate issued; securely storing certificate and private key in the database...",
|
||||
"renewal_decrypting_dns_account_credentials_and_acme_account_6ac3acd9": "[Renewal] Decrypting DNS account credentials and ACME account private key...",
|
||||
"renewal_requested_domains_v_e4bf6bab": "[Renewal] Requested domains: %v",
|
||||
"renewal_requesting_ssl_certificate_issuance_through_the_acme_98e351ee": "[Renewal] Requesting SSL certificate issuance through the ACME DNS-01 challenge; please wait...",
|
||||
"renewal_resolving_acme_account_1bc0d71a": "[Renewal] Resolving ACME account...",
|
||||
"renewal_resolving_dns_account_information_id_d_89687757": "[Renewal] Resolving DNS account information (ID=%d)...",
|
||||
"renewal_saving_acme_account_changes_15275665": "[Renewal] Saving ACME account changes...",
|
||||
"renewal_starting_renewal_setting_application_status_to_applying_a167afb3": "[Renewal] Starting renewal; setting application status to applying...",
|
||||
"request_body_json_77cfb393": "Request body (JSON)",
|
||||
"request_url_65a1f546": "Request URL",
|
||||
"reset_the_password_for_a_specified_account_ef0bf7e5": "Reset the password for a specified account",
|
||||
"resolve_acquiring_source_task_ownership_8bb0e8c7": "[resolve] Acquiring source task ownership",
|
||||
"resolve_another_source_task_is_running_skipping_task_a4e1db69": "[resolve] Another source task is running; skipping task",
|
||||
"resolve_resolving_github_release_repo_s_asset_s_6915eea4": "[resolve] Resolving GitHub Release: repo=%s asset=%s",
|
||||
"resolve_source_configuration_changed_skipping_task_4b3e6282": "[resolve] Source configuration changed; skipping task",
|
||||
"resolve_source_configuration_or_ownership_changed_skipping_task_d8b6d56a": "[resolve] Source configuration or ownership changed; skipping task",
|
||||
"resolve_source_no_longer_exists_skipping_task_c4e25edd": "[resolve] Source no longer exists; skipping task",
|
||||
"result_must_be_success_warning_or_failed_7bca2806": "result must be success, warning or failed",
|
||||
"retention_days_must_be_between_1_and_3650_3b6a649b": "retention_days must be between 1 and 3650",
|
||||
"retention_days_must_be_between_1_and_90_371a59a7": "retention_days must be between 1 and 90",
|
||||
"root_domain_still_contains_domains_delete_them_all_277bc1d6": "root domain still contains domains; delete them all first",
|
||||
"route_configuration_path_must_not_be_empty_f70cb124": "route configuration path must not be empty",
|
||||
"route_s_w_0efcb499": "route %s %w",
|
||||
"rule_graph_contains_multiple_start_nodes_e13cd7e2": "rule graph contains multiple start nodes",
|
||||
"rule_graph_is_missing_a_start_node_1efe3116": "rule graph is missing a start node",
|
||||
"rule_graph_must_contain_exactly_one_allow_node_a05ca0b3": "rule graph must contain exactly one allow node",
|
||||
"rule_graph_must_contain_exactly_one_start_node_3140d98e": "rule graph must contain exactly one start node",
|
||||
"rule_graph_must_not_contain_cycles_fd6fe797": "rule graph must not contain cycles",
|
||||
"rule_graph_must_not_contain_more_than_d_3289a255": "rule graph must not contain more than %d edges",
|
||||
"rule_graph_must_not_contain_more_than_d_76688447": "rule graph must not contain more than %d nodes",
|
||||
"rule_graph_must_not_exceed_256_kib_855948bb": "rule graph must not exceed 256 KiB",
|
||||
"rule_graph_schema_version_must_be_d_38d452c4": "rule graph schema_version must be %d",
|
||||
"rule_was_updated_by_another_operation_reload_it_bba246a7": "Rule was updated by another operation; reload it",
|
||||
"s_contains_an_empty_domain_name_e4a83686": "%s contains an empty domain name",
|
||||
"s_contains_duplicate_domain_name_s_15451d4d": "%s contains duplicate domain name %s",
|
||||
"s_contains_invalid_characters_enter_valid_ip_addresses_59634931": "%s contains invalid characters; enter valid IP addresses or domain names separated by spaces",
|
||||
"s_contains_invalid_network_range_q_ce167d93": "%s contains invalid network range %q",
|
||||
"s_contains_unsupported_value_q_6208a8c5": "%s contains unsupported value %q",
|
||||
"s_domain_name_must_be_lowercase_without_surrounding_59ed3d2c": "%s domain name must be lowercase without surrounding whitespace: %s",
|
||||
"s_is_not_a_valid_ip_address_643806a5": "%s is not a valid IP address",
|
||||
"s_is_not_a_valid_ip_range_4835d8bf": "%s is not a valid IP range",
|
||||
"s_must_be_a_duration_with_a_unit_b97fceb4": "%s must be a duration with a unit, such as 30m or 5s",
|
||||
"s_must_be_a_json_array_of_strings_dbcb2bd7": "%s must be a JSON array of strings",
|
||||
"s_must_be_a_nonnegative_integer_0_means_efc94604": "%s must be a nonnegative integer (0 means unlimited)",
|
||||
"s_must_be_a_nonnegative_integer_0bbc7814": "%s must be a nonnegative integer",
|
||||
"s_must_be_a_whole_number_of_days_c0ac3325": "%s must be a whole number of days greater than or equal to 1",
|
||||
"s_must_be_an_integer_between_1_and_3f9a159c": "%s must be an integer between 1 and 2048 (MiB)",
|
||||
"s_must_be_an_integer_greater_than_0_9553dcdf": "%s must be an integer greater than 0",
|
||||
"s_must_be_an_integer_or_a_size_2e9fba45": "%s must be an integer or a size with a k/m/g suffix",
|
||||
"s_must_be_between_100_and_999_6b9e594f": "%s must be between 100 and 999",
|
||||
"s_must_be_disabled_mmdb_ip_api_geojs_deba53da": "%s must be disabled, mmdb, ip-api, geojs or ipinfo",
|
||||
"s_must_be_epoll_kqueue_poll_select_rtsig_3177cbf8": "%s must be epoll, kqueue, poll, select, rtsig, /dev/poll, eventport or empty",
|
||||
"s_must_be_true_or_false_3a8153ff": "%s must be true or false",
|
||||
"s_must_contain_at_least_one_status_code_15395d65": "%s must contain at least one status code tag",
|
||||
"s_must_contain_at_most_d_network_ranges_6b0b78c4": "%s must contain at most %d network ranges",
|
||||
"s_must_not_be_empty_2d5ac8f7": "%s must not be empty",
|
||||
"s_must_not_be_empty_after_expansion_e814e9ef": "%s must not be empty after expansion",
|
||||
"s_must_not_contain_newlines_54742aef": "%s must not contain newlines",
|
||||
"s_must_not_contain_newlines_or_tabs_ff4de73f": "%s must not contain newlines or tabs",
|
||||
"s_must_not_exceed_d_4b586e57": "%s must not exceed %d",
|
||||
"s_must_not_exceed_d_bytes_256_kib_2f297bdb": "%s must not exceed %d bytes (256 KiB)",
|
||||
"s_must_use_a_format_such_as_16_1042e770": "%s must use a format such as \\\"16 16k\\\"",
|
||||
"s_must_use_a_format_such_as_1_5a9d67e2": "%s must use a format such as \\\"1:2\\\" or \\\"1:2:2\\\"",
|
||||
"s_supports_at_most_d_domain_names_4f3d5128": "%s supports at most %d domain names",
|
||||
"scan_acme_certificates_nearing_expiration_and_renew_them_c53289c4": "Scan ACME certificates nearing expiration and renew them automatically",
|
||||
"scan_due_sources_d_batch_d_ab93c95c": "[scan] Due sources=%d, batch=%d",
|
||||
"scan_sources_still_due_after_this_batch_d_da73edba": "[scan] Sources still due after this batch=%d",
|
||||
"scanning_certificates_due_for_renewal_7f9e9ca0": "Scanning certificates due for renewal",
|
||||
"scanning_unused_uploads_cutoff_s_5c2fbb16": "Scanning unused uploads, cutoff: %s",
|
||||
"schedule_system_cleanup": "Scheduled system cleanup",
|
||||
"schedule_was_not_found_6205508a": "Schedule was not found",
|
||||
"seconds_00fe8dda": " seconds",
|
||||
"select_a_cname_a_or_aaaa_record_type_80ac9137": "select a CNAME, A or AAAA record type",
|
||||
"select_a_file_to_upload_a3a97de2": "Select a file to upload",
|
||||
"select_a_pages_deployment_source_type_70065e2c": "select a Pages deployment source type",
|
||||
"select_a_valid_cloudflare_dns_account_97385483": "select a valid Cloudflare DNS account",
|
||||
"select_a_valid_edge_node_0fafe682": "select a valid edge node",
|
||||
"select_a_valid_target_mode_9a0c6691": "select a valid target mode",
|
||||
"selected_certificate_was_not_found_3772e60e": "selected certificate was not found",
|
||||
"send_data_to_an_external_webhook_using_a_068df6b3": "Send data to an external webhook using a custom HTTP POST request.",
|
||||
"send_email_c268c1b1": "Send email",
|
||||
"send_failed_v_a04ce62f": "Send failed: %v",
|
||||
"send_notification_e70e3a00": "Send notification",
|
||||
"send_system_email_asynchronously_63d68e86": "Send system email asynchronously",
|
||||
"sequentially_convert_managed_images_to_webp_at_the_05d39459": "Sequentially convert managed images to WebP at the specified quality and store them in permanent cache",
|
||||
"serialize_289c64ad": "Serialize",
|
||||
"server_address_server_address_is_not_configured_configure_9e094296": "server address (server_address) is not configured; configure it in system settings and try again",
|
||||
"server_url_must_not_be_empty_269fe8ad": "server_url must not be empty",
|
||||
"signature_verification_key_from_the_feishu_group_bot_6090b176": "Signature verification key from the Feishu group bot security settings",
|
||||
"signing_secret_optional_9dcdda03": "Signing secret (optional)",
|
||||
"since_and_until_must_be_provided_together_4fdc9431": "since and until must be provided together",
|
||||
"since_must_be_an_rfc3339_timestamp_ad87e410": "since must be an RFC3339 timestamp",
|
||||
"source_database_contains_no_logs_skipping_partition_precreation_c2753081": "Source database contains no logs; skipping partition precreation",
|
||||
"spa_fallback_path_contains_unsupported_characters_14eecbe2": "SPA fallback path contains unsupported characters",
|
||||
"spa_fallback_path_must_not_contain_or_segments_eee02366": "SPA fallback path must not contain . or .. segments",
|
||||
"spa_fallback_path_must_not_contain_whitespace_or_a7661241": "SPA fallback path must not contain whitespace or control characters",
|
||||
"spa_fallback_path_must_not_exceed_512_characters_8be1ecf7": "SPA fallback path must not exceed 512 characters",
|
||||
"spa_fallback_path_must_point_to_a_specific_dff5905a": "SPA fallback path must point to a specific file",
|
||||
"spa_fallback_path_must_start_with_91d66834": "SPA fallback path must start with /",
|
||||
"specified_version_was_not_found_s_eeec8487": "specified version was not found: %s",
|
||||
"sql_statement_must_not_be_empty_c3a52981": "SQL statement must not be empty",
|
||||
"start_api_worker_and_scheduler_together_3e558997": "Start API, Worker and Scheduler together",
|
||||
"start_node_s_must_not_have_incoming_edges_0501404b": "start node %s must not have incoming edges",
|
||||
"starting_certificate_renewal_id_d_034783ec": "Starting certificate renewal, ID: %d",
|
||||
"starting_domain_synchronization_domain_s_zone_s_group_49f9cc95": "Starting domain synchronization: domain=%s zone=%s group=%s(#%d) target=%s proxied=%v member_id=%d",
|
||||
"starting_log_database_migration_s_s_6a587927": "Starting log database migration: %s -> %s",
|
||||
"starting_notification_event_s_channel_s_recipient_s_561117aa": "Starting notification: event = %s, channel = %s, recipient = %s",
|
||||
"starting_s_synchronization_name_s_id_d_target_ce5444ff": "Starting %s synchronization: name=%s id=%d target=%s domains=%d",
|
||||
"starting_sequential_compressed_image_cache_warmup_quality_s_ec690c4f": "Starting sequential compressed image cache warmup, quality: %s, batch size: %d",
|
||||
"starting_storage_migration_s_s_total_objects_d_43cbe32d": "Starting storage migration: %s -> %s, total objects: %d",
|
||||
"status_code_must_be_an_integer_between_100_3328ab45": "status_code must be an integer between 100 and 599",
|
||||
"status_code_must_be_between_d_and_d_f8229da8": "status code must be between %d and %d: %s",
|
||||
"status_code_range_endpoints_are_reversed_s_afcfd994": "status code range endpoints are reversed: %s",
|
||||
"status_code_tag_must_not_be_empty_21235ebf": "status code tag must not be empty",
|
||||
"storage_configuration_updated_active_storage_remains_s_917066ca": "Storage configuration updated; active storage remains %s",
|
||||
"storage_configuration_updated_directly_failed_migration_task_marked_c9d7148d": "Storage configuration updated directly; failed migration task marked as resolved",
|
||||
"storage_connectivity_4038ce91": "Storage connectivity",
|
||||
"storage_connectivity_test_failed_w_08dabbf5": "storage connectivity test failed: %w",
|
||||
"storage_migration_completed_migrated_d_objects_active_storage_332fb1de": "Storage migration completed; migrated %d objects, active storage switched to %s",
|
||||
"storage_migration_maintenance_is_active_files_are_read_4bf9e57d": "storage migration maintenance is active; files are read-only",
|
||||
"subject_line_of_the_email_to_send_c3aa0753": "Subject line of the email to send",
|
||||
"subscription_content_must_not_exceed_d_bytes_f40541e2": "subscription content must not exceed %d bytes",
|
||||
"subscription_returned_status_code_d_2c185ec6": "subscription returned status code %d",
|
||||
"subscription_url_must_use_http_or_https_e43cbb99": "subscription URL must use HTTP or HTTPS",
|
||||
"succeeded_053461ce": "Succeeded",
|
||||
"switch_group_primary_and_standby_nodes_based_on_b2d78b3f": "Switch group primary and standby nodes based on node availability and configuration status",
|
||||
"switch_log_database_da446b57": "Switch log database",
|
||||
"synchronization_completed_d_ip_addresses_or_ranges_7b645ca2": "Synchronization completed; %d IP addresses or ranges",
|
||||
"synchronization_succeeded_bca900e9": "Synchronization succeeded",
|
||||
"synchronize_all_domains_currently_targeting_the_specified_node_3488196a": "Synchronize all domains currently targeting the specified node",
|
||||
"synchronize_all_domains_in_a_target_group_b2397009": "Synchronize all domains in a target group",
|
||||
"synchronize_automatic_and_subscription_waf_ip_groups_that_ac3d686e": "Synchronize automatic and subscription WAF IP groups that are due for an update",
|
||||
"synchronize_cloudflare_dns_records_for_a_single_domain_a06ce84b": "Synchronize Cloudflare DNS records for a single domain",
|
||||
"synchronize_enabled_proxy_routes_with_uptime_kuma_monitors_8f761ebe": "Synchronize enabled proxy routes with Uptime Kuma monitors",
|
||||
"synchronizing_proxy_routes_with_uptime_kuma_2d26b523": "Synchronizing proxy routes with Uptime Kuma",
|
||||
"synchronizing_waf_ip_groups_due_for_an_update_e96ea0b3": "Synchronizing WAF IP groups due for an update",
|
||||
"system_5b50d7c4": "System",
|
||||
"system_channel_test_415dd03a": "System channel test",
|
||||
"system_cleanup_6c08e88d": "System cleanup",
|
||||
"system_cleanup_completed_removed_d_d_unused_uploads_5eca4159": "System cleanup completed. Removed %d/%d unused uploads, %d notification audit records and %d task execution logs.",
|
||||
"system_configuration_was_not_found_00210cae": "System configuration was not found",
|
||||
"system_manual_retry_created_and_enqueued_original_task_3c9cbd5d": "[System] Manual retry created and enqueued (original task ID: %s, retry: %d/%d)",
|
||||
"system_notification_94b7513e": "System notification",
|
||||
"system_reserved_file_types_cannot_be_managed_through_9369ffe7": "system-reserved file types cannot be managed through the generic file API",
|
||||
"system_smtp_configuration_is_incomplete_291bb369": "system SMTP configuration is incomplete",
|
||||
"system_starting_asynchronous_task_name_s_type_s_90c6e5e2": "[System] Starting asynchronous task [name: %s, type: %s], retry: %d/%d",
|
||||
"system_starting_asynchronous_task_type_s_caca3e5b": "[System] Starting asynchronous task [type: %s]",
|
||||
"system_task_enqueued_waiting_for_execution_queue_s_86a50bcc": "[System] Task enqueued; waiting for execution (queue: %s, maximum retries: %d)",
|
||||
"system_task_failed_duration_d_ms_error_v_63653548": "[System] Task failed; duration: %d ms, error: %v",
|
||||
"system_task_succeeded_duration_d_ms_result_s_161aa7ca": "[System] Task succeeded; duration: %d ms, result: %s",
|
||||
"target_group_is_disabled_08c76979": "target group is disabled",
|
||||
"target_group_must_differ_from_the_current_group_2702a3d3": "target group must differ from the current group",
|
||||
"target_group_was_not_found_71c24083": "target group was not found",
|
||||
"target_log_database_febc306d": "Target log database",
|
||||
"target_log_database_is_already_active_no_migration_92ab4313": "target log database is already active; no migration is required",
|
||||
"target_storage_configuration_json_884c1a08": "Target storage configuration (JSON)",
|
||||
"task_cannot_continue_53c9c59a": "Task cannot continue",
|
||||
"task_completed_0b4c0784": "Task completed: ",
|
||||
"task_execution_was_not_found_fc632d27": "Task execution was not found",
|
||||
"task_execution_was_not_found_w_284e6bfc": "task execution was not found: %w",
|
||||
"task_parameters_must_not_be_empty_bdc11114": "task parameters must not be empty",
|
||||
"telegram_bot_b0edcbcc": "Telegram bot",
|
||||
"template_content_must_not_be_empty_6fce7653": "Template content must not be empty",
|
||||
"template_identifier_already_exists_93895c12": "template identifier already exists",
|
||||
"template_identifier_must_not_be_empty_7a1e41d3": "Template identifier must not be empty",
|
||||
"template_name_must_not_be_empty_da00e8dc": "Template name must not be empty",
|
||||
"template_s_was_not_found_or_is_unavailable_70f4fa4e": "template %s was not found or is unavailable: %w",
|
||||
"template_was_not_found_37b0cea2": "Template was not found",
|
||||
"terminal_node_s_must_not_have_outgoing_edges_8ece7ac6": "terminal node %s must not have outgoing edges",
|
||||
"the_active_node_requires_a_valid_ipv4_address_edf71cfe": "the active node requires a valid IPv4 address",
|
||||
"the_active_pages_deployment_cannot_be_deleted_9f0bb393": "the active Pages deployment cannot be deleted",
|
||||
"the_confirmed_version_has_changed_refresh_and_confirm_8a40d0fc": "the confirmed version has changed; refresh and confirm again",
|
||||
"the_current_rules_have_not_changed_and_cannot_c8b88f7d": "the current rules have not changed and cannot be published again",
|
||||
"the_currently_signed_in_user_cannot_be_deleted_e47df151": "the currently signed-in user cannot be deleted",
|
||||
"the_log_database_is_clickhouse_but_clickhouse_is_bc5e49a0": "the log database is ClickHouse, but ClickHouse is disabled. Re-enable ClickHouse and start the server, then run the Switch log database task to migrate to PostgreSQL/SQLite before disabling ClickHouse",
|
||||
"the_log_database_is_postgresql_but_postgresql_is_01f3b8d3": "the log database is PostgreSQL, but PostgreSQL is disabled and SQLite is the primary database. Run the Switch log database task to migrate to SQLite, or enable PostgreSQL",
|
||||
"the_log_database_is_sqlite_but_postgresql_is_8cfdfdaa": "the log database is SQLite, but PostgreSQL is the primary database. Run the Switch log database task to migrate to PostgreSQL",
|
||||
"the_selected_version_is_not_a_preview_release_15d2f434": "the selected version is not a preview release",
|
||||
"the_specified_entry_file_does_not_exist_in_f029c906": "The specified entry file does not exist in the active deployment",
|
||||
"the_specified_uploaded_asset_was_not_found_in_942c8d4d": "the specified uploaded asset was not found in the GitHub Release",
|
||||
"this_access_token_has_no_administrator_privileges_and_9005f2b0": "This access token has no administrator privileges and cannot access admin endpoints",
|
||||
"this_account_has_no_email_address_contact_an_4e504171": "This account has no email address; contact an administrator to bind an email before signing in",
|
||||
"this_account_has_no_email_address_use_a_e29bb819": "This account has no email address; use a temporary code to sign in",
|
||||
"this_configuration_is_managed_by_system_tasks_and_1930e327": "this configuration is managed by system tasks and cannot be changed manually",
|
||||
"this_dns_account_is_used_by_certificates_and_54842b64": "this DNS account is used by certificates and cannot be deleted",
|
||||
"this_domain_already_belongs_to_another_target_group_1f6c5889": "this domain already belongs to another target group",
|
||||
"this_email_address_is_bound_to_another_account_48d6a2fa": "this email address is bound to another account",
|
||||
"this_endpoint_does_not_allow_access_token_authentication_93ced189": "This endpoint does not allow access-token authentication",
|
||||
"this_external_account_is_bound_to_another_user_029fce16": "this external account is bound to another user",
|
||||
"this_is_a_system_notification_channel_connectivity_test_cbd9d668": "This is a system notification channel connectivity test.",
|
||||
"this_node_is_not_a_tunnelclient_0a666f7a": "This node is not a TunnelClient",
|
||||
"this_node_is_not_a_tunnelrelay_49925484": "This node is not a TunnelRelay",
|
||||
"this_origin_is_still_referenced_by_rules_and_fad589f1": "this origin is still referenced by rules and cannot be deleted",
|
||||
"this_task_cannot_be_retried_be95f1db": "this task cannot be retried",
|
||||
"time_range_must_not_exceed_30_days_93f190e7": "time range must not exceed 30 days",
|
||||
"to_subject_and_body_must_not_be_empty_614c8b17": "to, subject and body must not be empty",
|
||||
"token_name_must_not_be_empty_cd7ba9f4": "Token name must not be empty",
|
||||
"token_was_not_found_or_access_is_not_b430e116": "token was not found or access is not permitted",
|
||||
"too_many_login_attempts_try_again_later_3245d6d9": "Too many login attempts; try again later",
|
||||
"too_many_login_requests_please_try_again_later_4bcd0be6": "too many login requests; please try again later",
|
||||
"transfer_uploading_file_to_target_storage_s_size_8118b17d": "[Transfer] Uploading file to target storage: %s (size: %d bytes, type: %s)",
|
||||
"triggered_when_an_administrator_signs_in_successfully_0ff0cfc5": "Triggered when an administrator signs in successfully",
|
||||
"tunnel_token_must_not_be_empty_67a53536": "tunnel_token must not be empty",
|
||||
"unable_to_compile_configuration_for_node_s_w_66b38ddb": "unable to compile configuration for node %s: %w",
|
||||
"unable_to_create_database_export_file_c78edf48": "Unable to create database export file",
|
||||
"unable_to_enqueue_cloudflare_synchronization_task_4fc208da": "unable to enqueue Cloudflare synchronization task",
|
||||
"unable_to_export_database_9f34252c": "Unable to export database",
|
||||
"unable_to_generate_an_available_username_dec720c4": "unable to generate an available username",
|
||||
"unable_to_get_the_currently_active_configuration_version_6a36cf1a": "unable to get the currently active configuration version: %s",
|
||||
"unable_to_get_the_currently_active_configuration_version_c8a24858": "unable to get the currently active configuration version: %w",
|
||||
"unable_to_get_username_from_authentication_source_973bd1db": "unable to get username from authentication source",
|
||||
"unable_to_identify_the_current_user_9a5f999b": "Unable to identify the current user",
|
||||
"unable_to_open_database_file_df3e8a7f": "Unable to open database file: ",
|
||||
"unable_to_read_database_file_information_52111f56": "Unable to read database file information: ",
|
||||
"unable_to_save_session_please_try_again_58acb751": "Unable to save session; please try again",
|
||||
"unable_to_serialize_rule_graph_w_48c45bb9": "unable to serialize rule graph: %w",
|
||||
"unauthorized_access_f0d65927": "Unauthorized access",
|
||||
"unknown_4d8c1c5b": "Unknown",
|
||||
"unknown_log_database_configuration_s_98368584": "unknown log database configuration: %s",
|
||||
"unknown_node_type_s_332fe973": "unknown node type %s",
|
||||
"unknown_task_type_s_b04735f2": "unknown task type: %s",
|
||||
"unregistered_task_handler_s_271644ad": "unregistered task handler: %s",
|
||||
"unsupported_pages_deployment_source_type_5b4321a7": "unsupported Pages deployment source type",
|
||||
"unsupported_verification_scenario_e2264302": "Unsupported verification scenario",
|
||||
"until_must_be_an_rfc3339_timestamp_ce5dee46": "until must be an RFC3339 timestamp",
|
||||
"until_must_be_later_than_since_a541175c": "until must be later than since",
|
||||
"update_archive_size_mismatch_got_d_want_d_195807e8": "update archive size mismatch: got %d, want %d",
|
||||
"upstream_response_s_a987ca9f": "Upstream response: %s",
|
||||
"uptime_kuma_address_is_required_when_the_integration_2a83e4ea": "uptime Kuma address is required when the integration is enabled",
|
||||
"uptime_kuma_address_must_start_with_http_or_87425cf2": "uptime Kuma address must start with http:// or https://",
|
||||
"uptime_kuma_integration_is_disabled_skipping_execution_30faa46e": "Uptime Kuma integration is disabled; skipping execution",
|
||||
"uptime_kuma_password_is_required_when_the_integration_6eed6c4c": "uptime Kuma password is required when the integration is enabled",
|
||||
"uptime_kuma_synchronization_completed_dfb5cd80": "Uptime Kuma synchronization completed",
|
||||
"uptime_kuma_synchronization_failed_v_0f0e24be": "Uptime Kuma synchronization failed: %v",
|
||||
"uptime_kuma_synchronization_is_already_running_skipping_this_3e44a54f": "Uptime Kuma synchronization is already running; skipping this schedule",
|
||||
"uptime_kuma_username_is_required_when_the_integration_f43559eb": "uptime Kuma username is required when the integration is enabled",
|
||||
"user_id_is_required_5f1165d8": "User ID is required",
|
||||
"user_id_must_not_be_empty_07bc47a7": "user ID must not be empty",
|
||||
"user_was_not_found_8a2ea403": "user was not found",
|
||||
"user_was_not_found_a82de572": "user was not found",
|
||||
"username_already_exists_d1ee5409": "username already exists",
|
||||
"username_must_not_be_empty_390ccdec": "username must not be empty",
|
||||
"username_must_not_be_empty_fb128ac0": "Username must not be empty\n",
|
||||
"username_of_the_account_whose_password_will_be_29c265c9": "Username of the account whose password will be reset",
|
||||
"username_or_email_address_is_already_in_use_18fa1479": "username or email address is already in use",
|
||||
"username_s_264d6306": "Username: %s\n",
|
||||
"validate_154723a1": "Validate",
|
||||
"verification_checking_target_file_consistency_sha_256_s_daef3bb0": "[Verification] Checking target file consistency (SHA-256): %s",
|
||||
"verification_code_is_incorrect_or_expired_62fb7904": "verification code is incorrect or expired",
|
||||
"verification_codes_are_being_requested_too_frequently_try_84835f1c": "verification codes are being requested too frequently; try again later",
|
||||
"verified_file_consistency_check_succeeded_s_09148b16": "[Verified] File consistency check succeeded: %s",
|
||||
"verify_verifying_archive_structure_and_entry_file_dcc5d692": "[verify] Verifying archive structure and entry file",
|
||||
"verify_verifying_github_release_archive_and_entry_file_a00c1f16": "[verify] Verifying GitHub Release archive and entry file",
|
||||
"version_identifier_conflict_please_try_again_c81c8dad": "version identifier conflict; please try again",
|
||||
"version_must_not_be_empty_09fabcb3": "version must not be empty",
|
||||
"videos_c20f7618": "Videos",
|
||||
"waf_ip_group_snapshot_size_d_bytes_exceeds_4bdc932a": "WAF IP group snapshot size %d bytes exceeds the limit of %d bytes",
|
||||
"waf_ip_group_synchronization_completed_8c799689": "WAF IP group synchronization completed",
|
||||
"waf_ip_group_synchronization_failed_v_3524af2d": "WAF IP group synchronization failed: %v",
|
||||
"waf_rule_group_d_was_not_found_4e2d4084": "WAF rule group %d was not found",
|
||||
"waf_rule_name_must_not_be_empty_92c1a213": "WAF rule name must not be empty",
|
||||
"waf_rule_operation_failed_4e01c228": "WAF rule operation failed",
|
||||
"waf_rule_was_not_found_d3a18a2e": "WAF rule was not found",
|
||||
"waiting_for_image_cache_warmup_lock_quality_s_88fe5819": "Waiting for image cache warmup lock, quality: %s",
|
||||
"warm_up_compressed_image_cache_bd2f3c3f": "Warm up compressed image cache",
|
||||
"warning_source_file_is_missing_marking_it_deleted_552b422a": "Warning: source file is missing; marking it deleted and skipping: %s (error: %v)",
|
||||
"webhook_url_658c6265": "Webhook URL",
|
||||
"webp_compression_quality_must_be_low_medium_or_866b5127": "WebP compression quality; must be low, medium or high",
|
||||
"wildcard_domain_names_are_not_supported_e40045cc": "wildcard domain names are not supported",
|
||||
"years_cda14918": " years ",
|
||||
"zone_must_be_a_valid_registered_root_domain_cc7d1d33": "zone must be a valid registered root domain",
|
||||
"zone_was_not_found_86db3707": "Zone was not found",
|
||||
"public_error_a7274b96774b": "channel name is required",
|
||||
"public_error_9f24cd1da554": "channel name can only contain letters, numbers, and underscores",
|
||||
"public_error_1b139d2dcf79": "request URL/address is required",
|
||||
"public_error_88df46747841": "request URL must use HTTPS protocol for security reasons",
|
||||
"public_error_29d0f4706829": "payload schema (request body) is required",
|
||||
"public_error_2127b11c4518": "telegram bot token is required",
|
||||
"public_error_22bcab9337f1": "payload schema must be a valid JSON format",
|
||||
"public_error_7c511ae7174a": "captcha is not configured",
|
||||
"public_error_71759e624238": "invalid session context",
|
||||
"public_error_b9cbe3209e14": "session mismatch for oauth state",
|
||||
"public_error_ff5184f57c49": "user context mismatch for oauth binding",
|
||||
"public_error_b5121d590135": "invalid id",
|
||||
"public_error_519c7fed477a": "invalid channel id",
|
||||
"public_error_190df01d2076": "channel not found",
|
||||
"public_error_cbd9709fbd01": "this notification event is already configured",
|
||||
"public_error_b93a32137fc1": "custom template is not a valid JSON format",
|
||||
"public_error_add0341f2152": "cannot enable event without any push channels configured",
|
||||
"public_error_e59e34f32d9f": "channel name already exists",
|
||||
"public_error_cdb14a9d218e": "unsupported task type",
|
||||
"public_error_02fbf8eef643": "either event_key or task_type must be provided",
|
||||
"public_error_7f64283d20ea": "unsupported built-in event key",
|
||||
"public_error_eac68fcd302d": "invalid event id",
|
||||
"public_error_c854c958bd9c": "notification event not found",
|
||||
"public_error_a37526e5d726": "invalid discovery registration key",
|
||||
"public_error_452209a49676": "discovery enrollment credential has changed; use the assigned agent token",
|
||||
"public_error_da739b170c48": "invalid node list parameters",
|
||||
"public_error_79e7e0ad56c0": "Failed to load nodes"
|
||||
}
|
||||
@@ -0,0 +1,990 @@
|
||||
{
|
||||
"a_file_in_the_pages_deployment_archive_exceeds_bf65ffe2": "размер файла в архиве развертывания Pages превышает ограничение по размеру",
|
||||
"a_new_github_release_deployment_archive_is_available_3ba1aeff": "Доступен новый архив развёртывания из релиза GitHub",
|
||||
"a_node_ip_is_required_when_ip_locking_2fe806d7": "Если включена привязка к IP, укажите IP-адрес узла",
|
||||
"a_pages_deployment_source_task_is_already_running_2c10973f": "исходная задача развертывания Pages уже запущена",
|
||||
"a_preview_release_cannot_be_selected_for_a_b0318833": "предварительный выпуск не может быть выбран для стабильного обновления",
|
||||
"account_binding_id_must_not_be_empty_84f24a4e": "привязка аккаунта ID не должна быть пустой",
|
||||
"account_is_disabled_da6e1fd3": "учетная запись отключена",
|
||||
"activate_atomically_switching_github_release_deployment_80feec83": "[активация] Атомарное переключение развёртывания из релиза GitHub",
|
||||
"activate_atomically_switching_production_deployment_80300199": "[активировать] Атомарное переключение производственного развертывания",
|
||||
"activate_source_configuration_or_ownership_changed_deployment_was_e21f8288": "[активировать] Исходная конфигурация или право собственности изменены; развертывание не было переключено",
|
||||
"administrator_accounts_cannot_be_deleted_f3ae74a2": "учетные записи администратора не могут быть удалены",
|
||||
"administrator_accounts_cannot_be_disabled_d3eef776": "учетные записи администратора не могут быть отключены",
|
||||
"administrator_login_c454c61e": "Вход администратора",
|
||||
"administrator_login_notification_227c9f47": "Уведомление о входе администратора",
|
||||
"administrator_privileges_cannot_be_revoked_from_the_currently_75858bcb": "права администратора не могут быть отозваны у текущего вошедшего в систему пользователя",
|
||||
"administrator_user_username_signed_in_at_time_from_a2edfba5": "Администратор {{user.username}} вошел в систему {{time}} с IP {{ip}}.",
|
||||
"agent_token_and_discovery_token_must_not_both_ca76bf69": "agent_token и discovery_token не должны быть пустыми.",
|
||||
"agent_token_is_empty_and_discovery_token_is_0349f2b6": "agent_token пусто, а discovery_token не настроено.",
|
||||
"all_objects_have_been_migrated_93287840": "Все объекты перенесены",
|
||||
"already_running_the_latest_version_6e865701": "Уже установлена последняя версия",
|
||||
"an_asset_in_the_same_release_was_replaced_2878205a": "Файл в том же релизе был заменен; требуется подтверждение",
|
||||
"an_asset_in_the_same_release_was_replaced_40e8d33a": "Файл в том же релизе заменён. Обновите данные и подтвердите текущую версию.",
|
||||
"an_update_is_already_in_progress_d5dae3bf": "обновление уже в процессе",
|
||||
"another_storage_migration_task_is_already_running_937fbb49": "другая задача миграции хранилища уже запущена",
|
||||
"api_base_url_optional_e966f73e": "Базовый URL API (необязательно)",
|
||||
"api_reverse_proxy_backend_must_be_a_valid_4c68d5b8": "API серверная часть обратного прокси должна быть допустимой HTTP/HTTPS URL",
|
||||
"api_reverse_proxy_match_path_must_start_with_662f1449": "API Путь сопоставления обратного прокси должен начинаться с '/'",
|
||||
"archive_contains_an_invalid_path_s_0f89f375": "архив содержит неверный путь: %s",
|
||||
"archive_path_escapes_the_destination_s_c6d68c24": "путь к архиву выходит за пределы места назначения: %s",
|
||||
"archives_8f10dc14": "Архивы",
|
||||
"asynchronous_task_task_name_id_task_id_completed_128e1c5d": "Асинхронная задача {{task_name}} (ID: {{task_id}}) завершена. Статус: {{task_status}}; продолжительность: {{task_duration}} мс.",
|
||||
"audio_296c632e": "Аудио",
|
||||
"authentication_source_id_must_not_be_empty_87431a43": "источник аутентификации ID не должен быть пустым",
|
||||
"authentication_source_is_disabled_7a948dfa": "Источник аутентификации отключен",
|
||||
"authentication_source_must_not_be_empty_8c3909a8": "источник аутентификации не должен быть пустым",
|
||||
"authentication_source_name_may_only_contain_letters_digits_71129406": "Имя источника аутентификации может содержать только буквы, цифры, дефисы и подчеркивания и должно начинаться с буквы или цифры.",
|
||||
"authentication_source_name_must_not_be_empty_f85c91bb": "имя источника аутентификации не должно быть пустым.",
|
||||
"authentication_source_type_must_be_oidc_3d9726ab": "тип источника аутентификации должен быть oidc",
|
||||
"automatic_binary_replacement_is_not_supported_on_this_ef024e23": "Автоматическая замена исполняемого файла не поддерживается на этой платформе",
|
||||
"automatic_ip_group_configuration_must_be_a_json_535c4571": "автоматическая конфигурация группы IP должна быть объектом JSON",
|
||||
"automatic_notification_triggered_when_an_asynchronous_task_finishes_b0349623": "Автоматическое уведомление, активируемое при завершении асинхронной задачи",
|
||||
"automatic_rules_completed_matched_d_ips_currently_active_a2f333b5": "Автоматические правила завершены; совпадающие %d IP-адреса, активные в данный момент %d IP-адреса",
|
||||
"automatic_ssl_renewal_failed_v_b3366eb5": "Автоматическое продление SSL не удалось: %v",
|
||||
"automatic_ssl_renewal_task_completed_b95fcc39": "Задача автоматического продления SSL завершена",
|
||||
"automatic_updates_will_be_available_in_a_later_d19f8d56": "Автоматические обновления будут доступны на более позднем этапе и пока должны быть отключены.",
|
||||
"available_variables_title_description_content_url_to_example_5b046232": "Доступные переменные: $title, $description, $content, $url, $to. Пример: {\"text\": \"$content\"}",
|
||||
"backend_url_is_required_when_the_api_reverse_8563c33e": "Серверная часть URL требуется, когда включен обратный прокси-сервер API.",
|
||||
"batch_completed_last_id_d_generated_d_hits_c7365ae6": "Пакет завершен, последний ID: %d, сгенерирован: %d, попадания: %d, неудачный: %d",
|
||||
"block_response_body_for_node_s_must_not_8df3d52b": "Тело ответа блока для узла %s не должно превышать %d байт",
|
||||
"block_status_code_for_node_s_must_be_3708ab21": "код состояния блока для узла %s должен быть между 400 и 599",
|
||||
"bot_access_token_issued_by_botfather_ef54847f": "Токен доступа к боту, выданный BotFather",
|
||||
"bot_token_7ed368ad": "Токен бота",
|
||||
"both_latitude_and_longitude_are_required_451abfe8": "Укажите широту и долготу.",
|
||||
"bucket_minutes_must_be_5_10_15_30_838c287d": "bucket_minutes должно быть 5, 10, 15, 30 или 60.",
|
||||
"bucket_started_at_must_be_an_rfc3339_timestamp_2d909e88": "bucket_started_at должно быть меткой времени RFC3339",
|
||||
"built_in_template_identifiers_cannot_be_changed_4e094f31": "Встроенные идентификаторы шаблонов не могут быть изменены.",
|
||||
"built_in_templates_cannot_be_deleted_dd8af484": "встроенные шаблоны нельзя удалить",
|
||||
"cannot_be_retried_93537915": "нельзя повторить попытку",
|
||||
"cannot_convert_configuration_s_value_s_to_a_30f99a83": "невозможно преобразовать значение конфигурации %s '%s' в логическое значение: %w",
|
||||
"cannot_convert_configuration_s_value_s_to_a_d601455b": "невозможно преобразовать значение конфигурации %s '%s' в десятичное число: %w",
|
||||
"cannot_convert_configuration_s_value_s_to_an_bea99a42": "невозможно преобразовать значение конфигурации %s «%s» в целое число: %w",
|
||||
"captcha_verification_failed_missing_verification_credential_2b70bfd8": "CAPTCHA проверка не удалась: отсутствуют учетные данные для проверки",
|
||||
"captcha_verification_failed_or_expired_please_try_again_83606d54": "CAPTCHA проверка не удалась или срок ее действия истек; пожалуйста, попробуйте еще раз",
|
||||
"certificate_directory_must_not_be_empty_71b05ede": "каталог сертификатов не должен быть пустым",
|
||||
"certificate_file_path_must_not_be_empty_9fb64a51": "путь к файлу сертификата не должен быть пустым",
|
||||
"certificate_id_48409532": "ID сертификата",
|
||||
"certificate_id_must_be_nonzero_742f9d12": "сертификат ID должен быть ненулевым",
|
||||
"certificate_issuance_failed_v_c18caa92": "Не удалось выдать сертификат: %v",
|
||||
"certificate_s_id_d_is_not_acme_managed_0703919b": "Сертификат %s (ID=%d) не ACME-управляется и не может быть продлен автоматически (поставщик: %s)",
|
||||
"certificate_s_is_not_acme_managed_and_cannot_e4d6469f": "сертификат %s не ACME-управляется и не может быть продлен автоматически",
|
||||
"certificate_s_renewed_successfully_5ddb1448": "Сертификат %s успешно продлен.",
|
||||
"channel_test_notification_2a7a7219": "Уведомление о тестировании канала",
|
||||
"check_checking_github_release_repo_s_asset_s_9f927192": "[проверка] Проверка релиза GitHub: репозиторий=%s файл=%s",
|
||||
"check_existing_files_89d94c02": "Проверка существующих файлов",
|
||||
"check_github_provider_backoff_source_id_d_status_9b362b41": "[проверить] GitHub откат провайдера: source_id=%d status=%d retry_at=%s",
|
||||
"check_or_synchronize_a_pages_project_deployment_source_bdfc6949": "Проверка или синхронизация источника развёртывания Pages",
|
||||
"check_source_is_running_another_task_skipping_source_ca7ae2fd": "[проверить] Источник выполняет другую задачу; пропуск: source_id=%d",
|
||||
"checking_cloudflare_group_primary_and_standby_node_status_e2df040e": "Проверка статуса основного и резервного узла группы Cloudflare",
|
||||
"cleaned_up_d_task_execution_logs_d_high_2352273f": "Почищены логи выполнения задач %d (%d высокочастотные, %d низкочастотные)",
|
||||
"cleaning_up_expired_logs_using_log_database_retention_c4163ab0": "Очистка журналов с истекшим сроком действия с использованием хранения базы данных журналов и отдельного хранения коротких метрик...",
|
||||
"cleaning_up_notification_audit_history_retaining_the_last_6074bdfe": "Очистка истории аудита уведомлений; сохранение последних 7 дней...",
|
||||
"cleaning_up_task_execution_logs_retaining_3_days_5f4a5eb2": "Очистка журналов выполнения задач: хранение 3 дней для высокочастотных задач и 30 дней для низкочастотных задач...",
|
||||
"cleanup_compensating_unreferenced_deployment_archive_records_eb828b5c": "[очистка] Компенсация неиспользуемых записей архива развертывания",
|
||||
"cleanup_completed_fce56fa2": "Очистка завершена",
|
||||
"cleanup_orphan_candidates_d_compensated_d_referenced_d_21a3822b": "[очистка] кандидаты-сироты=%d, компенсация=%d, ссылка=%d, аренда занята=%d, недопустимые маркеры=%d, пропущен=%d, неудача=%d",
|
||||
"clickhouse_is_disabled_migration_to_clickhouse_is_unavailable_7bbf52f9": "ClickHouse отключен; миграция на ClickHouse недоступна",
|
||||
"client_id_and_client_secret_are_required_before_b1904682": "client ID и Client Secret необходимы перед включением источника аутентификации.",
|
||||
"cloudflare_api_request_failed_8fbea766": "Ошибка запроса к API Cloudflare",
|
||||
"cloudflare_api_request_failed_w_1f530c09": "Cloudflare API не удалось выполнить запрос: %w",
|
||||
"cloudflare_api_retry_limit_exceeded_7e3673cc": "Cloudflare API превышен лимит повторов",
|
||||
"cloudflare_api_token_is_inactive_4a0ca3bf": "токен Cloudflare API неактивен",
|
||||
"cloudflare_dns_synchronization_failed_08371454": "Ошибка синхронизации DNS Cloudflare",
|
||||
"cloudflare_domain_synchronization_8b6eca62": "Синхронизация домена Cloudflare",
|
||||
"cloudflare_domain_synchronization_succeeded_b3b55a0a": "Домен Cloudflare синхронизирован",
|
||||
"cloudflare_domain_synchronization_succeeded_s_s_proxied_v_5b0eed54": "Cloudflare синхронизация домена выполнена успешно: %s -> %s (прокси=%v)",
|
||||
"cloudflare_group_synchronization_d98bfd8f": "Синхронизация группы Cloudflare",
|
||||
"cloudflare_node_failover_check_57f894bc": "Проверка переключения узлов Cloudflare при сбое",
|
||||
"cloudflare_node_failover_check_completed_switched_d_groups_1dd7476d": "Cloudflare проверка переключения узла завершена; переключил группы %d",
|
||||
"cloudflare_node_failover_check_failed_error_v_52840d43": "Cloudflare проверка переключения узла при сбое не удалась: ошибка=%v",
|
||||
"cloudflare_node_synchronization_ed5311ec": "Синхронизация узлов Cloudflare",
|
||||
"cloudflare_resource_was_not_found_8194db78": "Ресурс Cloudflare не найден",
|
||||
"cloudflare_s_synchronization_completed_s_d_domains_3d341ca3": "Cloudflare %s синхронизация завершена: домены %s, %d",
|
||||
"cloudflare_s_synchronization_completed_s_has_no_domain_302881ff": "Cloudflare %s синхронизация завершена: %s не имеет участников домена",
|
||||
"cloudflare_s_synchronization_completed_s_s_d_domains_6aa7c0fd": "Cloudflare %s синхронизация завершена: домены %s -> %s, %d",
|
||||
"compensate_orphaned_archives_recover_expired_leases_and_check_dd5bf0ee": "Удаление архивов без связанных записей, восстановление просроченных блокировок источников и проверка обновлений в источниках GitHub, отслеживающих последний релиз",
|
||||
"complete_https_endpoint_url_for_example_https_api_321a9514": "Заполните конечную точку HTTPS URL, например https://api.example.com/webhook.",
|
||||
"complete_json_configuration_of_the_target_storage_backend_2a07e361": "Полные настройки целевого хранилища в формате JSON",
|
||||
"config_must_not_be_empty_a3a68460": "конфигурация не должна быть пустой",
|
||||
"configuration_contains_an_additional_json_value_b7e289fa": "конфигурация содержит дополнительное значение JSON",
|
||||
"configuration_key_already_exists_6d757a67": "Конфигурационный ключ уже существует",
|
||||
"configuration_key_must_not_be_empty_e5cb19c0": "Конфигурационный ключ не должен быть пустым.",
|
||||
"configuration_must_not_be_null_32b5f98f": "конфигурация не должна быть нулевой",
|
||||
"configuration_path_is_not_initialized_6d59fe3e": "путь конфигурации не инициализирован",
|
||||
"configuration_value_must_not_be_empty_20e379d9": "Значение конфигурации не должно быть пустым.",
|
||||
"configure_telegram_bot_notifications_9bffc349": "Настройте уведомления бота Telegram.",
|
||||
"configured_cloudflare_api_token_is_invalid_0453f265": "настроенный Cloudflare API токен недействителен",
|
||||
"connecting_to_smtp_server_s_d_username_s_0186b04e": "Подключение к серверу SMTP: %s:%d, имя пользователя: %s",
|
||||
"content_of_the_email_to_send_77c2373e": "Содержимое письма для отправки",
|
||||
"copied_d_access_logs_through_id_d_d6f86229": "Скопированы журналы доступа %d (через id=%d)",
|
||||
"copied_d_user_access_logs_through_id_d_f80f625f": "Скопированы журналы доступа пользователей %d (через id=%d)",
|
||||
"copied_s_d_records_through_id_d_ee8dd5f7": "Скопировано %s: записи %d (через id=%d)",
|
||||
"copy_log_data_and_switch_the_log_database_0576d9c2": "Копирование журналов и переключение базы после успешного переноса. На время переноса запись журналов приостанавливается.",
|
||||
"copy_the_webhook_url_from_the_feishu_group_d0638f81": "Скопируйте URL вебхука из настроек группового бота Feishu",
|
||||
"current_migration_batch_completed_progress_d_d_42eb3c40": "Текущий пакет миграции завершен. Прогресс: %d/%d",
|
||||
"current_password_is_incorrect_36d208b0": "текущий пароль неверен",
|
||||
"current_storage_has_no_objects_to_migrate_active_533b6b0a": "В текущем хранилище нет объектов для миграции; активная память переключена на %s",
|
||||
"custom_card_json_template_optional_be356c13": "Свой шаблон карточки в формате JSON (необязательно)",
|
||||
"custom_notification_channel_f6ac176a": "Пользовательский канал уведомлений",
|
||||
"custom_user_agent_pattern_in_node_s_must_1ae42a76": "пользовательский шаблон User-Agent в узле %s не должен быть пустым",
|
||||
"custom_user_agent_pattern_in_node_s_must_3372446d": "пользовательский шаблон User-Agent в узле %s не должен превышать %d байт",
|
||||
"d_d_domain_record_no_longer_exists_removing_397ee9a8": "[%d/%d] Запись домена больше не существует; удаление потерянного члена: member_id=%d zone_domain_id=%d",
|
||||
"d_d_failed_domain_s_member_id_d_6e126949": "[%d/%d] Ошибка: домен=%s member_id=%d error=%v",
|
||||
"d_d_failed_to_remove_orphaned_member_member_7b0a42ab": "[%d/%d] Не удалось удалить потерянный элемент: member_id=%d error=%v",
|
||||
"d_d_succeeded_domain_s_2eb31693": "[%d/%d] Успешно: домен=%s",
|
||||
"d_d_synchronizing_domain_s_member_id_d_593b8a8a": "[%d/%d] Синхронизация домена %s (member_id=%d прокси=%v)",
|
||||
"d_days_4a67fe38": "%d дней",
|
||||
"d_hours_e7b10e79": "%d часов",
|
||||
"d_minutes_2bc2266f": "%d минут",
|
||||
"d_seconds_26064316": "%d секунд",
|
||||
"database_is_not_initialized_0ab7ea2d": "База данных не инициализирована",
|
||||
"database_update_updating_file_path_s_s_35e484ff": "[Обновление базы данных] Обновление пути к файлу: %s -> %s",
|
||||
"days_5ab7e0f9": " дни ",
|
||||
"default_chat_id_optional_a982d25a": "ID чата по умолчанию (необязательно)",
|
||||
"default_recipient_chat_id_used_when_the_notification_248a34c6": "Чат получателя по умолчанию ID, используется, когда событие уведомления не имеет целей.",
|
||||
"deleted_d_notification_history_records_cutoff_s_ca03970f": "Удалены записи истории уведомлений %d (ограничение: %s)",
|
||||
"deleted_successfully_5223f91b": "Удален успешно",
|
||||
"deliver_notifications_through_a_feishu_group_bot_webhook_c851f7b2": "Доставляйте уведомления через вебхук группового бота Feishu.",
|
||||
"deployment_archive_at_the_url_exceeds_the_size_51b0e2ec": "Размер архива развертывания по адресу URL превышает ограничение.",
|
||||
"deployment_source_saved_but_the_initial_check_could_a4d74ed9": "Источник развертывания сохранен, но первоначальную проверку не удалось поставить в очередь; запустите ручную проверку позже",
|
||||
"destination_email_address_bb129242": "Адрес электронной почты назначения",
|
||||
"development_builds_do_not_support_automatic_updates_bb3a2946": "разрабатываемые сборки не поддерживают автоматические обновления",
|
||||
"discovery_registration_response_is_missing_node_id_or_4823814c": "Ответ на регистрацию обнаружения отсутствует node_id или agent_token",
|
||||
"dispatch_automatic_update_dispatched_source_id_d_execution_72ffca53": "[отправка] Автоматическое обновление отправлено: source_id=%d execution_id=%s ревизия=%s",
|
||||
"dispatch_system_notifications_asynchronously_across_multiple_channels_0c5c685b": "Фоновая отправка системных уведомлений по нескольким каналам.",
|
||||
"dns_account_parameters_are_incomplete_fbcb0fad": "DNS параметры аккаунта неполные",
|
||||
"documents_2687ccdb": "Документы",
|
||||
"domain_already_exists_a59a13de": "домен уже существует",
|
||||
"domain_does_not_belong_to_this_zone_bb1bc93f": "домен не принадлежит этой зоне",
|
||||
"domain_is_bound_to_a_proxy_route_remove_ad0a62b7": "домен привязан к прокси-маршруту; сначала удали обвязку",
|
||||
"domain_name_must_not_be_empty_60a8eab8": "доменное имя не должно быть пустым",
|
||||
"domain_synchronization_failed_domain_s_member_id_d_31ec4ac5": "Ошибка синхронизации домена: домен=%s member_id=%d ошибка=%v",
|
||||
"domain_synchronization_failed_member_id_d_error_v_36d3d285": "Не удалось синхронизировать домен: member_id=%d error=%v",
|
||||
"domain_synchronization_succeeded_domain_s_desired_target_s_18cedff2": "Домен синхронизирован: домен=%s целевой_адрес=%s проксирование=%v группа=%s режим_цели=%s",
|
||||
"domain_synchronization_succeeded_member_id_d_2906410a": "Синхронизация домена прошла успешно: member_id=%d",
|
||||
"domain_was_not_found_e3b18d21": "Домен не найден",
|
||||
"download_downloading_github_release_asset_repo_s_asset_f3760632": "[загрузка] Загрузка файла релиза GitHub: репозиторий=%s файл=%s",
|
||||
"download_fetching_remote_deployment_archive_9c58137d": "[скачать] Получение архива удаленного развертывания",
|
||||
"duplicate_edge_id_s_59427f0d": "дубликат края ID %s",
|
||||
"duplicate_node_id_s_6f7764f9": "дубликат узла ID %s",
|
||||
"edge_id_must_not_be_empty_049cfbf2": "Укажите ID ребра",
|
||||
"edge_s_references_missing_source_node_s_b14a641b": "Ребро %s ссылается на отсутствующий исходный узел %s",
|
||||
"edge_s_references_missing_target_node_s_f38f63a4": "Ребро %s ссылается на отсутствующий целевой узел %s",
|
||||
"edge_s_source_port_s_is_not_valid_445c7518": "Ребро %s: исходный порт %s недопустим для узла %s",
|
||||
"email_address_is_already_registered_ca59e824": "адрес электронной почты уже зарегистрирован",
|
||||
"email_address_is_already_registered_f861225c": "адрес электронной почты уже зарегистрирован",
|
||||
"email_address_must_not_be_empty_28e55875": "адрес электронной почты не должен быть пустым",
|
||||
"email_address_must_not_be_empty_2e477cb1": "адрес электронной почты не должен быть пустым",
|
||||
"email_address_or_verification_code_is_missing_2b477d98": "адрес электронной почты или код подтверждения отсутствуют",
|
||||
"email_body_db38bae9": "Тело письма",
|
||||
"email_notification_channel_70b4e93c": "Канал уведомлений по электронной почте",
|
||||
"email_notifications_use_the_global_smtp_settings_no_9b002fd1": "Уведомления по электронной почте используют глобальные настройки SMTP; здесь не требуется настройка сервера.",
|
||||
"email_sent_successfully_to_38e67ca0": "Письмо успешно отправлено на адрес: ",
|
||||
"email_subject_98a8f04e": "Тема письма",
|
||||
"enter_a_cloudflare_api_token_00262e30": "введите токен Cloudflare API",
|
||||
"enter_a_valid_json_request_body_template_variables_34eba3ef": "Введите допустимое тело запроса JSON; поддерживаются переменные шаблона",
|
||||
"enter_the_certificate_id_f0f6ff01": "Укажите ID сертификата",
|
||||
"enter_the_cloudflare_target_group_id_830db5d3": "Укажите ID целевой группы Cloudflare",
|
||||
"enter_the_cloudflare_target_member_id_4a062db8": "Укажите ID домена в группе Cloudflare",
|
||||
"enter_the_complete_request_url_using_https_08ac14d8": "Укажите полный URL запроса с протоколом HTTPS",
|
||||
"enter_the_deployment_archive_download_url_2fe91a17": "введите загрузку архива развертывания URL",
|
||||
"enter_the_email_body_html_is_supported_ca9985b5": "Введите тело письма (HTML поддерживается)",
|
||||
"enter_the_email_subject_852e1d02": "Введите тему письма",
|
||||
"enter_the_secret_if_signature_verification_is_enabled_fd5f494e": "Введите секрет, если у бота включена проверка подписи",
|
||||
"enter_the_telegram_bot_token_dcc672a5": "Введите токен бота Telegram",
|
||||
"enter_username_e4435775": "Введите имя пользователя: ",
|
||||
"error_user_s_was_not_found_81b9b991": "Ошибка: пользователь «%s» не найден.\n",
|
||||
"event_key_2f70299f": "Ключ события",
|
||||
"executor_is_not_configured_5d41479d": "Исполнитель не настроен",
|
||||
"existing_files_were_found_use_the_storage_migration_e099a954": "были найдены существующие файлы; используйте задачу миграции хранилища для переключения серверов хранения",
|
||||
"expression_in_automatic_rule_d_must_not_be_f696189a": "выражение в автоматическом правиле %d не должно быть пустым",
|
||||
"external_account_binding_information_is_incomplete_180d928a": "информация о привязке внешней учетной записи неполная",
|
||||
"extracted_executable_exceeds_the_size_limit_9461c1e6": "размер извлеченного исполняемого файла превышает предельный размер",
|
||||
"extracted_pages_deployment_exceeds_the_size_limit_4cbef66f": "Развертывание извлеченных страниц превышает ограничение по размеру",
|
||||
"failed_to_back_up_current_executable_w_3addff1b": "не удалось создать резервную копию текущего исполняемого файла: %w",
|
||||
"failed_to_bind_parameters_5c410c6f": "Не удалось привязать параметры",
|
||||
"failed_to_bind_parameters_provide_a_valid_array_b77c7672": "Не удалось привязать параметры; предоставить действительный массив идентификаторов файлов",
|
||||
"failed_to_check_existing_files_w_a851b86d": "не удалось проверить существующие файлы: %w",
|
||||
"failed_to_clean_up_expired_logs_v_e8791024": "Не удалось очистить просроченные журналы: %v",
|
||||
"failed_to_clean_up_github_release_temporary_file_00bf359d": "Не удалось удалить временный файл релиза GitHub",
|
||||
"failed_to_clean_up_remote_source_temporary_file_d721acd8": "Не удалось очистить временный файл удаленного источника.",
|
||||
"failed_to_clean_up_task_execution_logs_v_376be8e5": "Не удалось очистить журналы выполнения задач: %v",
|
||||
"failed_to_clean_up_upload_id_d_v_cf2710b1": "Не удалось очистить загрузку [ID:%d]: %v",
|
||||
"failed_to_clear_target_access_logs_w_9ff48e23": "не удалось очистить журналы целевого доступа: %w",
|
||||
"failed_to_clear_target_user_access_logs_w_d7c2ad8c": "не удалось очистить журналы доступа целевых пользователей: %w",
|
||||
"failed_to_close_update_archive_w_0a42c60e": "не удалось закрыть архив обновлений: %w",
|
||||
"failed_to_compile_waf_rule_s_w_4392b9dc": "не удалось скомпилировать правило WAF %s: %w",
|
||||
"failed_to_copy_s_w_b0890ed6": "не удалось скопировать %s: %w",
|
||||
"failed_to_count_active_uploads_v_eccd0ce3": "Не удалось подсчитать активные загрузки: %v",
|
||||
"failed_to_count_notification_history_for_cleanup_v_87bcd35d": "Не удалось подсчитать историю уведомлений для очистки: %v",
|
||||
"failed_to_count_tokens_please_try_again_later_d6be07bb": "не удалось посчитать жетоны; пожалуйста, попробуйте еще раз позже",
|
||||
"failed_to_create_retry_execution_record_w_250258f4": "не удалось создать запись повторного выполнения: %w",
|
||||
"failed_to_create_task_execution_record_w_7bafae3b": "не удалось создать запись выполнения задачи: %w",
|
||||
"failed_to_create_token_please_try_again_later_268e7466": "не удалось создать токен; пожалуйста, попробуйте еще раз позже",
|
||||
"failed_to_create_update_archive_w_0e1ae531": "не удалось создать архив обновлений: %w",
|
||||
"failed_to_create_update_directory_w_f3414e06": "не удалось создать каталог обновлений: %w",
|
||||
"failed_to_create_update_download_request_w_ca826654": "не удалось создать запрос на загрузку обновления: %w",
|
||||
"failed_to_create_update_request_92de6fa7": "не удалось создать запрос на обновление",
|
||||
"failed_to_create_user_fe2017cc": "Не удалось создать пользователя",
|
||||
"failed_to_delete_cloudflare_dns_record_905df10a": "не удалось удалить запись Cloudflare DNS",
|
||||
"failed_to_delete_file_485d2b67": "Не удалось удалить файл",
|
||||
"failed_to_delete_notification_history_v_4308a791": "Не удалось удалить историю уведомлений: %v",
|
||||
"failed_to_delete_schedule_82d7ea83": "Не удалось удалить расписание.",
|
||||
"failed_to_delete_token_please_try_again_later_8a65e358": "не удалось удалить токен; пожалуйста, попробуйте еще раз позже",
|
||||
"failed_to_delete_user_7cf04bd0": "Не удалось удалить пользователя",
|
||||
"failed_to_dispatch_task_40f01141": "Не удалось отправить задачу",
|
||||
"failed_to_download_deployment_archive_from_url_ece95602": "Не удалось загрузить архив развертывания с URL.",
|
||||
"failed_to_download_github_release_asset_445f42e6": "Не удалось скачать файл релиза GitHub",
|
||||
"failed_to_download_subscription_w_73516643": "не удалось загрузить подписку: %w",
|
||||
"failed_to_download_update_asset_http_d_8bfeec63": "не удалось загрузить ресурс обновления: HTTP %d",
|
||||
"failed_to_download_update_asset_w_15a3a529": "не удалось загрузить ресурс обновления: %w",
|
||||
"failed_to_drain_log_write_queue_w_a0166ebc": "не удалось очистить очередь записи журнала: %w",
|
||||
"failed_to_encrypt_password_v_92ab4495": "Не удалось зашифровать пароль: %v\n",
|
||||
"failed_to_enqueue_pages_deployment_source_task_821d3915": "не удалось поставить в очередь исходную задачу развертывания Pages",
|
||||
"failed_to_enqueue_retry_task_w_2c39873e": "не удалось поставить в очередь задачу повторной попытки: %w",
|
||||
"failed_to_enqueue_retry_v_5d869929": "Не удалось поставить повторную попытку: %v",
|
||||
"failed_to_enqueue_task_v_a7c1aed2": "Не удалось поставить задачу в очередь: %v",
|
||||
"failed_to_enqueue_task_w_9e65a379": "не удалось поставить задачу в очередь: %w",
|
||||
"failed_to_enqueue_verification_email_task_please_try_ac66b52f": "не удалось поставить в очередь задачу проверки электронной почты; пожалуйста, попробуйте еще раз",
|
||||
"failed_to_execute_automatic_rule_w_2271cde6": "не удалось выполнить автоматическое правило: %w",
|
||||
"failed_to_extract_update_asset_w_692981b3": "не удалось извлечь актив обновления: %w",
|
||||
"failed_to_fetch_upstream_version_e19bb5de": "Не удалось получить исходную версию.",
|
||||
"failed_to_generate_random_password_v_f0fea5b7": "Не удалось сгенерировать случайный пароль: %v\n",
|
||||
"failed_to_generate_token_c78757e3": "не удалось сгенерировать токен",
|
||||
"failed_to_generate_verification_code_please_try_again_d83752a4": "не удалось сгенерировать проверочный код; пожалуйста, попробуйте еще раз",
|
||||
"failed_to_get_certificate_record_id_d_v_6d59f24e": "Не удалось получить запись сертификата ID=%d: %v",
|
||||
"failed_to_get_certificate_record_w_214148cd": "не удалось получить запись сертификата: %w",
|
||||
"failed_to_get_latest_version_w_fca8b7de": "не удалось получить последнюю версию: %w",
|
||||
"failed_to_get_log_database_status_da58b757": "Не удалось получить статус базы данных журналов.",
|
||||
"failed_to_get_preview_version_w_d61ed476": "не удалось получить предварительную версию: %w",
|
||||
"failed_to_get_specified_version_w_63e83abe": "не удалось получить указанную версию: %w",
|
||||
"failed_to_get_token_list_please_try_again_96e34095": "не удалось получить список токенов; пожалуйста, попробуйте еще раз позже",
|
||||
"failed_to_get_user_list_27ad5285": "Не удалось получить список пользователей",
|
||||
"failed_to_initialize_log_database_configuration_w_adfaefb2": "не удалось инициализировать конфигурацию базы данных журналов: %w",
|
||||
"failed_to_initialize_log_storage_20fdb546": "Не удалось инициализировать хранилище журналов.",
|
||||
"failed_to_initialize_system_options_783dd4ca": "Не удалось инициализировать системные параметры.",
|
||||
"failed_to_initialize_test_storage_instance_w_e45afe79": "не удалось инициализировать экземпляр тестового хранилища: %w",
|
||||
"failed_to_list_s_members_name_s_id_fa26680a": "Не удалось составить список участников %s: name=%s id=%d error=%v",
|
||||
"failed_to_load_active_node_group_s_active_4064ae7a": "Не удалось загрузить активный узел: group=%s active_node_id=%d error=%v",
|
||||
"failed_to_load_group_group_id_d_error_af85458e": "Не удалось загрузить группу: group_id=%d error=%v",
|
||||
"failed_to_load_member_context_member_id_d_5dba6ac0": "Не удалось загрузить контекст элемента: member_id=%d error=%v",
|
||||
"failed_to_load_node_node_id_d_error_e404b970": "Не удалось загрузить узел: node_id=%d error=%v",
|
||||
"failed_to_locate_current_executable_w_8e100f0b": "не удалось найти текущий исполняемый файл: %w",
|
||||
"failed_to_migrate_zone_d_conflicts_w_fd8934cb": "не удалось перенести зону (%d конфликты): %w",
|
||||
"failed_to_open_file_756f4b8e": "Не удалось открыть файл",
|
||||
"failed_to_parse_current_storage_configuration_w_6eb179f7": "не удалось проанализировать текущую конфигурацию хранилища: %w",
|
||||
"failed_to_parse_directory_display_configuration_w_b45c310f": "не удалось проанализировать конфигурацию отображения каталога: %w",
|
||||
"failed_to_parse_email_parameters_v_2d5f065f": "Не удалось проанализировать параметры электронной почты: %v",
|
||||
"failed_to_parse_email_parameters_w_0af9b984": "не удалось проанализировать параметры электронной почты: %w",
|
||||
"failed_to_parse_image_cache_warmup_parameters_w_80cc27e9": "не удалось проанализировать параметры прогрева кэша изображений: %w",
|
||||
"failed_to_parse_json_subscription_w_7171f213": "не удалось разобрать подписку JSON: %w",
|
||||
"failed_to_parse_notification_parameters_v_7c7c0d1a": "Не удалось проанализировать параметры уведомления: %v",
|
||||
"failed_to_parse_parameters_w_d098976c": "не удалось проанализировать параметры: %w",
|
||||
"failed_to_parse_preview_version_information_8c63f444": "не удалось проанализировать информацию о предварительной версии",
|
||||
"failed_to_parse_target_storage_configuration_w_dedc816a": "не удалось проанализировать конфигурацию целевого хранилища: %w",
|
||||
"failed_to_parse_version_information_9f1ec272": "не удалось проанализировать информацию о версии",
|
||||
"failed_to_precreate_target_postgresql_partitions_w_97bd4df9": "не удалось предварительно создать целевые разделы PostgreSQL: %w",
|
||||
"failed_to_process_file_9a1e91ff": "Не удалось обработать файл",
|
||||
"failed_to_process_image_id_d_v_f89e5f9a": "Не удалось обработать изображение [ID:%d]: %v",
|
||||
"failed_to_query_access_trends_740f8684": "Не удалось запросить тенденции доступа: ",
|
||||
"failed_to_query_active_users_d78284d9": "Не удалось запросить активных пользователей: ",
|
||||
"failed_to_query_browser_distribution_483ef559": "Не удалось запросить распространение браузера: ",
|
||||
"failed_to_query_file_count_b2b5322f": "Не удалось запросить количество файлов.",
|
||||
"failed_to_query_file_list_a50606c2": "Не удалось запросить список файлов",
|
||||
"failed_to_query_file_record_f2d055b2": "Не удалось запросить запись файла",
|
||||
"failed_to_query_image_upload_records_v_72a8a849": "Не удалось запросить записи загрузки изображений: %v",
|
||||
"failed_to_query_images_for_cache_warmup_w_daee6ed8": "не удалось запросить изображения для прогрева кэша: %w",
|
||||
"failed_to_query_unused_uploads_v_4b22bf86": "Не удалось запросить неиспользуемые загрузки: %v",
|
||||
"failed_to_query_unused_uploads_w_915f2d8f": "не удалось запросить неиспользуемые загрузки: %w",
|
||||
"failed_to_query_user_information_w_612e6300": "не удалось запросить информацию о пользователе: %w",
|
||||
"failed_to_query_user_v_31dc6f02": "Не удалось запросить пользователя: %v\n",
|
||||
"failed_to_read_aggregate_statistics_v_1fafe12a": "Не удалось прочитать совокупную статистику: %v",
|
||||
"failed_to_read_log_database_configuration_w_8d46eff5": "не удалось прочитать конфигурацию базы данных журналов: %w",
|
||||
"failed_to_read_log_database_v_f6136632": "Не удалось прочитать базу данных журналов: %v",
|
||||
"failed_to_read_log_database_w_0502e3ef": "не удалось прочитать базу данных журналов: %w",
|
||||
"failed_to_read_source_access_log_time_range_d9667403": "не удалось прочитать временной диапазон журнала доступа к источнику: %w",
|
||||
"failed_to_read_source_user_access_log_time_691f3bb2": "не удалось прочитать временной диапазон журнала доступа исходного пользователя: %w",
|
||||
"failed_to_read_subscription_content_w_e3665864": "не удалось прочитать содержимое подписки: %w",
|
||||
"failed_to_read_username_v_f5ab6d40": "Не удалось прочитать имя пользователя: %v\n",
|
||||
"failed_to_rebuild_file_storage_statistics_v_3a12ad55": "Не удалось восстановить статистику хранилища файлов: %v",
|
||||
"failed_to_remove_previous_backup_w_9f9ce6cb": "не удалось удалить предыдущую резервную копию: %w",
|
||||
"failed_to_render_verification_email_template_w_6191557f": "не удалось отобразить шаблон письма для подтверждения: %w",
|
||||
"failed_to_replace_current_executable_w_a286fcde": "не удалось заменить текущий исполняемый файл: %w",
|
||||
"failed_to_reset_password_v_628117ce": "Не удалось сбросить пароль: %v\n",
|
||||
"failed_to_resolve_current_executable_path_w_fd2316e8": "не удалось разрешить текущий путь к исполняемому файлу: %w",
|
||||
"failed_to_resolve_github_release_request_target_4f4e6fdc": "Не удалось определить адрес назначения запроса к релизу GitHub",
|
||||
"failed_to_retrieve_file_records_fd17cc6c": "Не удалось получить записи файлов.",
|
||||
"failed_to_retry_task_147b8518": "Не удалось повторить задачу",
|
||||
"failed_to_revoke_access_token_please_try_again_d969614c": "не удалось отозвать токен доступа; пожалуйста, попробуйте еще раз позже",
|
||||
"failed_to_rotate_token_please_try_again_later_59dc9b53": "не удалось повернуть токен; пожалуйста, попробуйте еще раз позже",
|
||||
"failed_to_save_file_66b12cc8": "не удалось сохранить файл",
|
||||
"failed_to_save_schedule_ceb33e03": "Не удалось сохранить расписание.",
|
||||
"failed_to_save_upload_record_e5b8160e": "Не удалось сохранить запись загрузки.",
|
||||
"failed_to_send_email_v_36c06c07": "Не удалось отправить электронное письмо: %v",
|
||||
"failed_to_send_email_w_b705989e": "не удалось отправить электронное письмо: %w",
|
||||
"failed_to_send_notification_title_s_v_360fc6f5": "Не удалось отправить уведомление (заголовок: %s): %v",
|
||||
"failed_to_serialize_storage_configuration_w_f9ccaed4": "не удалось сериализовать конфигурацию хранилища: %w",
|
||||
"failed_to_set_executable_permissions_w_42a54b5d": "не удалось установить разрешения на исполняемый файл: %w",
|
||||
"failed_to_update_file_record_dabd703b": "Не удалось обновить запись файла.",
|
||||
"failed_to_update_last_login_time_please_try_97d1603d": "Не удалось обновить время последнего входа в систему; пожалуйста, попробуйте еще раз позже",
|
||||
"failed_to_update_password_please_try_again_later_fb9d6cde": "не удалось обновить пароль; пожалуйста, попробуйте еще раз позже",
|
||||
"failed_to_update_user_information_b39e7d62": "Не удалось обновить информацию о пользователе.",
|
||||
"failed_to_update_user_status_6fdd94ea": "Не удалось обновить статус пользователя.",
|
||||
"failed_to_validate_storage_parameters_w_4193c860": "не удалось проверить параметры хранилища: %w",
|
||||
"failed_to_validate_target_storage_parameters_w_103ef6e7": "не удалось проверить параметры целевого хранилища: %w",
|
||||
"failed_to_write_notification_audit_history_v_b1891968": "Не удалось записать историю аудита уведомлений: %v",
|
||||
"failed_to_write_target_access_logs_batch_d_47059872": "не удалось записать целевые журналы доступа (пакет %d): %w",
|
||||
"failed_to_write_target_user_access_logs_batch_9571e74b": "не удалось записать журналы доступа целевых пользователей (пакет %d): %w",
|
||||
"failed_to_write_update_archive_w_c5f4d1ca": "не удалось записать архив обновлений: %w",
|
||||
"feishu_group_bot_de2e961b": "Групповой бот Feishu",
|
||||
"fetched_migration_batch_requested_size_d_actual_objects_b53f700f": "Получен пакет миграции; запрошенный размер: %d, фактические объекты: %d",
|
||||
"file_content_does_not_match_its_extension_and_7033268f": "Содержимое файла не соответствует его расширению и может быть небезопасным.",
|
||||
"file_record_was_not_found_a4f4b1ab": "Запись файла не найдена",
|
||||
"file_size_must_not_exceed_32_mb_9fef6c20": "Размер файла не должен превышать 32 MB",
|
||||
"file_storage_backend_and_connection_configuration_json_2ee5f58c": "Серверная часть хранилища файлов и конфигурация подключения (JSON)",
|
||||
"file_storage_statistics_rebuilt_d_active_records_d_4576eca3": "Перестроена статистика хранилища файлов: %d активных записей, %d файлов, %d всего байт.",
|
||||
"file_validation_failed_076673fd": "Проверка файла не удалась",
|
||||
"file_was_not_found_b5877462": "Файл не найден",
|
||||
"fold_minutes_must_be_3_or_5_740e118a": "fold_minutes должно быть 3 или 5",
|
||||
"for_example_100123456789_or_channel_name_8e18bf43": "Например -100123456789 или @channel_name",
|
||||
"found_d_uploads_to_clean_up_in_this_a86fa63c": "В этом пакете найдено %d загрузок, которые необходимо удалить.",
|
||||
"geoip_lookup_is_disabled_ed78d892": "Поиск GeoIP отключен",
|
||||
"geolocation_provider_must_be_disabled_mmdb_ip_api_08bc0f62": "Провайдер геолокации должен быть disabled, mmdb, ip-api, geojs или ipinfo",
|
||||
"github_latest_check_interval_must_be_between_5_2470787a": "GitHub интервал последней проверки должен составлять от 5 до 1440 минут.",
|
||||
"github_release_asset_digest_is_invalid_or_verification_7baba33c": "Контрольная сумма файла релиза GitHub некорректна или не прошла проверку",
|
||||
"github_release_asset_digest_verification_failed_98f540bd": "Не удалось проверить контрольную сумму файла релиза GitHub",
|
||||
"github_release_asset_exceeds_the_size_limit_33eb67f0": "Размер файла релиза GitHub превышает ограничение",
|
||||
"github_release_asset_is_empty_5a6a9b0a": "Файл релиза GitHub пуст",
|
||||
"github_release_asset_name_must_be_a_safe_ee1a4e4e": "Имя файла релиза GitHub должно быть безопасным именем файла",
|
||||
"github_release_asset_redirect_limit_exceeded_da3dd30b": "Превышено допустимое число перенаправлений при загрузке файла релиза GitHub",
|
||||
"github_release_check_completed_947726e7": "Проверка релиза GitHub завершена",
|
||||
"github_release_check_completed_content_is_unchanged_dbcf8dc0": "Проверка релиза GitHub завершена; содержимое не изменилось",
|
||||
"github_release_request_failed_e37d72ea": "Ошибка запроса к релизу GitHub",
|
||||
"github_release_request_target_is_not_a_public_80de5fc7": "Адрес назначения запроса к релизу GitHub должен быть публичным",
|
||||
"github_release_sources_must_not_include_remote_url_84826183": "Источник релиза GitHub не должен содержать настройки удалённого URL",
|
||||
"github_returned_an_unexpected_status_s_30454efa": "GitHub вернул неожиданный статус: %s",
|
||||
"global_rule_group_03239b06": "Глобальная группа правил",
|
||||
"global_waf_rule_cannot_be_deleted_031e6c8d": "глобальное правило WAF невозможно удалить",
|
||||
"global_waf_rule_groups_do_not_require_manual_5cc46cb1": "глобальные группы правил WAF не требуют ручной привязки",
|
||||
"group_399ee693": "группа",
|
||||
"group_id_4acad7d2": "ID группы",
|
||||
"group_id_must_be_nonzero_caa5a675": "группа ID должна быть ненулевой",
|
||||
"group_name_must_not_be_empty_7b33c238": "имя группы не должно быть пустым",
|
||||
"group_primary_key_in_the_of_cf_pointing_34d94c54": "Групповой первичный ключ в таблице of_cf_pointing_groups.",
|
||||
"historical_authentication_source_299cdda4": "Ранее настроенный источник аутентификации",
|
||||
"hours_f8af2637": " часы ",
|
||||
"https_api_base_url_defaults_to_https_api_84cf7d41": "HTTPS API основание URL; по умолчанию https://api.telegram.org",
|
||||
"id_of_the_tls_certificate_to_renew_2e6077c7": "ID сертификата TLS для продления",
|
||||
"id_token_verification_failed_21582415": "ID проверка токена не удалась",
|
||||
"if_specified_this_must_be_valid_feishu_card_1541edd3": "Если указано, это должна быть действительная карта Feishu JSON",
|
||||
"image_cache_warmup_completed_processed_d_generated_d_9553c957": "Прогрев кэша изображений завершен; обработано %d, сгенерировано %d, обращения %d, неудачно %d",
|
||||
"image_cache_warmup_parameters_must_not_be_empty_59ff5906": "параметры прогрева кэша изображений не должны быть пустыми",
|
||||
"image_quality_0ab5629b": "Качество изображения",
|
||||
"image_quality_must_be_low_medium_or_high_3d699272": "Качество изображения должно быть low, medium или high",
|
||||
"images_d24c10d3": "Изображения",
|
||||
"incorrect_username_or_password_a9a6a83a": "Неверное имя пользователя или пароль",
|
||||
"ingest_saving_github_release_deployment_archive_04bc7ee9": "[сохранение] Сохранение архива развёртывания из релиза GitHub",
|
||||
"ingest_saving_managed_deployment_archive_ab0eb22f": "[ingest] Сохранение архива управляемого развертывания",
|
||||
"initialize_test_e2279a66": "Инициализировать тест",
|
||||
"internal_server_error_03654907": "Внутренняя ошибка сервера",
|
||||
"internal_server_error_cc540d22": "Внутренняя ошибка сервера",
|
||||
"internal_system_error_2216034c": "Внутренняя системная ошибка",
|
||||
"invalid_access_mode_parameter_f4f87024": "Неверный параметр access_mode",
|
||||
"invalid_account_binding_id_47be930f": "Неверный ID привязки учётной записи",
|
||||
"invalid_authentication_source_id_8d95b39c": "неверный источник аутентификации ID",
|
||||
"invalid_cache_rules_for_route_s_0b419f3f": "неверные правила кэша для маршрута %s",
|
||||
"invalid_certificate_pem_content_82644642": "недействительный сертификат PEM содержание",
|
||||
"invalid_cloudflare_connection_source_0f6d01bb": "неверный источник соединения Cloudflare",
|
||||
"invalid_cloudflare_failover_check_parameters_w_ef353c9b": "неверные параметры проверки аварийного переключения Cloudflare: %w",
|
||||
"invalid_cloudflare_group_synchronization_parameters_w_545b7a80": "неверные параметры групповой синхронизации Cloudflare: %w",
|
||||
"invalid_cloudflare_member_synchronization_parameters_w_43aa2390": "неверные параметры синхронизации участников Cloudflare: %w",
|
||||
"invalid_cloudflare_node_synchronization_parameters_3f4794f4": "неверные параметры синхронизации узла Cloudflare",
|
||||
"invalid_configuration_for_node_s_w_86c7c706": "неверная конфигурация для узла %s: %w",
|
||||
"invalid_configuration_snapshot_format_6ecb7b3c": "неверный формат снимка конфигурации",
|
||||
"invalid_cron_expression_df504099": "Недопустимое выражение Cron",
|
||||
"invalid_cursor_parameter_315ceadf": "Неверный параметр курсора",
|
||||
"invalid_custom_request_headers_for_route_s_705aeb8a": "недопустимые заголовки пользовательских запросов для маршрута %s",
|
||||
"invalid_custom_user_agent_pattern_in_node_s_6a73d813": "неверный пользовательский шаблон User-Agent в узле %s: %s",
|
||||
"invalid_deployment_archive_url_only_http_and_https_23d257c7": "неверный архив развертывания URL; поддерживаются только HTTP и HTTPS",
|
||||
"invalid_discovery_token_980df46c": "неверный токен открытия",
|
||||
"invalid_dns_record_value_check_the_domain_name_eb1b034a": "неверное значение записи DNS; проверьте доменное имя или адрес IP",
|
||||
"invalid_domain_name_format_614e6afb": "неверный формат доменного имени",
|
||||
"invalid_email_address_format_4e992d96": "неверный формат адреса электронной почты",
|
||||
"invalid_expression_in_automatic_rule_s_w_a9ea3421": "недопустимое выражение в автоматическом правиле %s: %w",
|
||||
"invalid_file_id_619affa0": "Неверный ID файла",
|
||||
"invalid_github_release_asset_digest_format_3e38c702": "Неверный формат контрольной суммы файла релиза GitHub",
|
||||
"invalid_github_release_metadata_response_190ecf90": "Некорректный ответ с метаданными релиза GitHub",
|
||||
"invalid_github_release_request_parameters_4ceabd70": "Некорректные параметры запроса к релизу GitHub",
|
||||
"invalid_github_release_selection_mode_d644ae98": "Некорректный режим выбора релиза GitHub",
|
||||
"invalid_github_repository_url_use_https_github_com_4a255a79": "недействительный репозиторий GitHub URL; используйте https://github.com/{owner}/{repo}",
|
||||
"invalid_graph_data_for_waf_rule_s_w_529ff00b": "неверные данные графика для правила WAF %s: %w",
|
||||
"invalid_graph_for_waf_rule_s_w_8a87d07b": "неверный график для правила WAF %s: %w",
|
||||
"invalid_historical_version_snapshot_format_0424b7b0": "неверный формат снимка исторической версии",
|
||||
"invalid_id_c0d026c8": "Неверный ID",
|
||||
"invalid_id_value_s_2be5b057": "Недопустимое значение ID: %s",
|
||||
"invalid_image_cache_warmup_parameters_v_94273376": "Неверные параметры прогрева кэша изображений: %v",
|
||||
"invalid_image_cache_warmup_parameters_w_285d734c": "неверные параметры прогрева кэша изображений: %w",
|
||||
"invalid_ip_address_format_c6084aa5": "неверный формат адреса IP",
|
||||
"invalid_ip_address_format_f988e58e": "неверный формат адреса IP",
|
||||
"invalid_ip_group_type_2c9b1982": "неверный тип группы IP",
|
||||
"invalid_ip_match_configuration_in_active_waf_rule_9acb007b": "недопустимая конфигурация IP соответствует активному правилу WAF %d, узел %s: %w",
|
||||
"invalid_json_format_w_be1f4f8e": "неверный формат JSON: %w",
|
||||
"invalid_login_request_f39483be": "Неверный запрос на вход",
|
||||
"invalid_lookback_format_use_a_duration_such_as_63f37246": "неверный формат ретроспективного анализа; используйте продолжительность, например 60 минут или 1 час.",
|
||||
"invalid_lookback_minutes_w_d9589ae4": "неверный lookback_minutes: %w",
|
||||
"invalid_metadata_json_format_59d64290": "Неверный формат метаданных JSON.",
|
||||
"invalid_node_ip_address_format_6101324f": "Неверный формат IP-адреса узла",
|
||||
"invalid_origin_address_format_0f1c1a36": "неверный формат исходного адреса",
|
||||
"invalid_pages_configuration_for_route_s_active_pages_8a53c746": "неверная конфигурация страниц для маршрута %s: активное развертывание страниц не соответствует",
|
||||
"invalid_pages_configuration_for_route_s_active_pages_bc33eb91": "неверная конфигурация Pages для маршрута %s: активное развертывание Pages не найдено.",
|
||||
"invalid_pages_configuration_for_route_s_no_pages_f8128192": "неверная конфигурация Pages для маршрута %s: ни один проект Pages не привязан",
|
||||
"invalid_pages_configuration_for_route_s_pages_deployment_296fe10f": "неверная конфигурация страниц для маршрута %s: отсутствует контрольная сумма развертывания страниц.",
|
||||
"invalid_pages_configuration_for_route_s_pages_module_52fe9ed1": "неверная конфигурация Pages для маршрута %s: модуль Pages недоступен.",
|
||||
"invalid_pages_configuration_for_route_s_pages_project_10fdf9a7": "неверная конфигурация Pages для маршрута %s: проект Pages отключен.",
|
||||
"invalid_pages_configuration_for_route_s_pages_project_146a248a": "неверная конфигурация Pages для маршрута %s: проект Pages не имеет активного развертывания.",
|
||||
"invalid_pages_configuration_for_route_s_pages_project_b6dacd48": "неверная конфигурация Pages для маршрута %s: проект Pages не найден.",
|
||||
"invalid_pages_configuration_for_route_s_w_e055a8aa": "неверная конфигурация страниц для маршрута %s: %w",
|
||||
"invalid_pages_configuration_missing_pages_project_id_644ff7ea": "неверная конфигурация страниц: отсутствует pages_project_id",
|
||||
"invalid_pages_deployment_source_task_parameters_329e38dc": "недопустимые параметры исходной задачи развертывания страниц",
|
||||
"invalid_pages_entry_file_w_dd997325": "неверный файл записи страниц: %w",
|
||||
"invalid_pages_root_directory_w_288d75ab": "неверный корневой каталог страниц: %w",
|
||||
"invalid_pages_route_configuration_6e3033f8": "неверная конфигурация маршрута страниц",
|
||||
"invalid_parameters_68abb8d5": "неверные параметры",
|
||||
"invalid_parameters_889c2534": "неверные параметры",
|
||||
"invalid_port_format_301a25e5": "неверный формат порта",
|
||||
"invalid_release_asset_size_d_71275aec": "неверный размер файла релиза: %d",
|
||||
"invalid_remote_archive_url_use_http_https_without_cec74305": "неверный удаленный архив URL; используйте HTTP/HTTPS без информации о пользователе или фрагментов",
|
||||
"invalid_remote_source_archive_size_limit_ed9a749a": "Недопустимый предел размера архива удаленного источника.",
|
||||
"invalid_request_rate_use_a_rate_such_as_7d899f0e": "недействительная частота запросов; используйте скорость, например 10 об/с или 100 об/мин, или -1, чтобы отключить",
|
||||
"invalid_rule_graph_w_51b132a5": "неверный график правил: %w",
|
||||
"invalid_s_format_use_512k_1m_or_a_7ae562cc": "неверный формат %s; используйте 512k, 1m или число или оставьте пустым, чтобы отключить",
|
||||
"invalid_s_format_use_a_rate_such_as_285ef3fc": "неверный формат %s; используйте скорость, например 10 об/с или 100 об/мин, или оставьте пустым, чтобы отключить",
|
||||
"invalid_schedule_id_5439796e": "Неверный ID расписания",
|
||||
"invalid_since_timestamp_rfc3339_is_required_e4d815e5": "недействителен с временной метки; RFC3339 требуется",
|
||||
"invalid_smtp_configuration_use_a_temporary_code_to_707c19c2": "Неверная конфигурация SMTP; используйте временный код для входа",
|
||||
"invalid_spa_fallback_path_65e9fab1": "неверный резервный путь SPA",
|
||||
"invalid_status_code_range_s_ea6a6bba": "неверный диапазон кода состояния: %s",
|
||||
"invalid_status_code_s_5fcf3c49": "неверный код состояния: %s",
|
||||
"invalid_subscription_url_5e4fd4ef": "недействительная подписка URL",
|
||||
"invalid_target_log_database_s_f49a2783": "Недопустимая целевая база журналов: %s",
|
||||
"invalid_task_execution_id_6a0914c6": "Неверный ID выполнения задачи",
|
||||
"invalid_task_type_42c573e7": "Неверный тип задачи",
|
||||
"invalid_time_range_205ddcad": "Неверный диапазон времени",
|
||||
"invalid_time_range_select_24h_7d_or_30d_7315b848": "неверный диапазон времени; выберите 24 часа, 7 дней или 30 дней",
|
||||
"invalid_token_id_6493bfb3": "Неверный ID токена",
|
||||
"invalid_until_timestamp_rfc3339_is_required_ff8c418e": "недействителен до отметки времени; RFC3339 требуется",
|
||||
"invalid_upload_id_5af291c3": "Неверный ID загруженного файла",
|
||||
"invalid_upstream_configuration_for_route_s_868edc8c": "неверная восходящая конфигурация для маршрута %s",
|
||||
"invalid_upstream_repository_url_1865af39": "недопустимый вышестоящий репозиторий URL",
|
||||
"invalid_upstream_version_response_fa50f23a": "Неверный ответ исходной версии",
|
||||
"invalid_version_identifier_31e5ed95": "Неверный идентификатор версии",
|
||||
"ip_address_must_not_be_empty_4272c9f3": "Адрес IP не должен быть пустым.",
|
||||
"ip_group_d_was_not_found_7b101cd1": "IP группа %d не найдена",
|
||||
"ip_group_is_referenced_by_waf_rules_remove_bd6b2cb2": "На группу IP ссылаются правила WAF; сначала удали ссылки",
|
||||
"ip_group_name_must_not_be_empty_56680071": "Укажите название IP-группы",
|
||||
"ip_group_was_not_found_21fa23de": "IP-группа не найдена",
|
||||
"ip_must_not_be_empty_fe4591d4": "ip не должен быть пустым",
|
||||
"json_mapping_rule_q_did_not_match_any_feb34054": "JSON правило сопоставления %q не соответствует никакому содержимому",
|
||||
"latitude_must_be_between_90_and_90_0b929ed3": "Широта должна быть между -90 и 90.",
|
||||
"leave_empty_to_use_the_built_in_interactive_1817bda4": "Оставьте пустым, чтобы использовать встроенную интерактивную карточку",
|
||||
"less_than_d_minutes_since_the_last_synchronization_7e3c8aac": "Менее %d минут с момента последней синхронизации; пропуск выполнения",
|
||||
"log_cleanup_completed_access_log_retention_d_days_c0f19eea": "Очистка журнала завершена: срок хранения журнала доступа %d дней, срок хранения показателей %d дней, удаленные %d записи.",
|
||||
"log_database_configuration_is_empty_2cf975c3": "Конфигурация базы данных журналов пуста",
|
||||
"log_database_switched_from_s_to_s_32746f98": "База данных журналов изменена с %s на %s.",
|
||||
"log_database_switched_to_s_writes_resumed_66f1d3fc": "База данных журналов переключена на %s; пишет возобновлено",
|
||||
"log_storage_is_disabled_access_logs_cannot_be_4f3d313d": "Хранение журналов отключено; журналы доступа не могут быть получены",
|
||||
"log_storage_is_disabled_analytics_are_unavailable_2633ef1d": "Хранение журналов отключено; аналитика недоступна",
|
||||
"longitude_must_be_between_180_and_180_3b3f5968": "Долгота должна быть между -180 и 180.",
|
||||
"lookback_must_be_a_whole_number_of_minutes_bd7a069b": "период ретроспективного анализа должен составлять целое число минут",
|
||||
"lookback_window_must_not_exceed_s_ec8227f8": "Окно ретроспективного анализа не должно превышать %s",
|
||||
"lua_directory_must_not_be_empty_73c45ce8": "каталог lua не должен быть пустым",
|
||||
"lua_file_path_must_not_be_empty_ad5ec475": "Путь к файлу lua не должен быть пустым",
|
||||
"main_configuration_path_must_not_be_empty_4257a895": "основной путь конфигурации не должен быть пустым",
|
||||
"match_mode_for_node_s_must_be_and_65944b17": "Режим сопоставления узла %s должен быть and или or",
|
||||
"match_path_is_required_when_the_api_reverse_8b41181e": "путь сопоставления требуется, когда включен обратный прокси-сервер API",
|
||||
"maximum_number_of_access_tokens_reached_3c769ae3": "Достигнуто максимальное количество токенов доступа",
|
||||
"maximum_retry_8bf02f4c": "Максимальное количество повторов",
|
||||
"maximum_retry_count_d_reached_d961828b": "Достигнуто максимальное количество повторов %d.",
|
||||
"maximum_retry_count_reached_122b9d92": "Достигнуто максимальное количество повторов",
|
||||
"member_id_a4c4a726": "ID домена в группе",
|
||||
"member_id_must_be_nonzero_dbec6bb1": "член ID должен быть ненулевым",
|
||||
"member_primary_key_in_the_of_cf_pointing_95a864b8": "Первичный ключ участника в таблице of_cf_pointing_members.",
|
||||
"migrate_file_storage_f03b672a": "Перенос файлового хранилища",
|
||||
"migrate_files_from_active_storage_to_the_target_89752f95": "Перенос файлов из активного хранилища в целевое. Во время переноса файлы доступны только для чтения.",
|
||||
"migration_skipped_identical_file_already_exists_in_target_729b4c99": "[Миграция пропущена] Идентичный файл уже существует в целевом хранилище: %s",
|
||||
"migration_started_reading_file_from_source_storage_s_001c53d6": "[Миграция началась] Чтение файла из исходного хранилища: %s",
|
||||
"migration_succeeded_file_migration_completed_s_9c0b6a24": "[Миграция выполнена успешно] Миграция файла завершена: %s",
|
||||
"migration_target_postgres_for_a_postgresql_primary_sqlite_a542bb6f": "Цель миграции: postgres для основного сервера PostgreSQL, sqlite для основного сервера SQLite или Clickhouse.",
|
||||
"minutes_c5e1cb2c": " минуты ",
|
||||
"missing_agent_token_ad736eb5": "отсутствует токен агента",
|
||||
"missing_certificate_file_eb3adf78": "Отсутствует файл сертификата",
|
||||
"missing_discovery_token_038af7e9": "недостающий токен открытия",
|
||||
"missing_pages_deployment_archive_0e2feedd": "отсутствует архив развертывания Pages",
|
||||
"missing_private_key_file_5b2ce6fe": "Отсутствует файл закрытого ключа",
|
||||
"missing_release_version_identifier_179171c9": "отсутствует идентификатор версии выпуска",
|
||||
"mmdb_update_interval_must_be_greater_than_0_7b371ae5": "mmdb_update_interval должно быть больше 0",
|
||||
"monitor_scope_must_be_all_or_selected_sites_956be94b": "областью мониторинга должны быть все или выбранные сайты",
|
||||
"months_15e40097": " месяцы ",
|
||||
"multiple_cloudflare_dns_records_have_the_same_name_0487505e": "несколько записей Cloudflare DNS имеют одно и то же имя; сначала удалите дубликаты вручную",
|
||||
"must_be_an_integer_dfd6c0ce": "должно быть целым числом",
|
||||
"new_password_generated_randomly_if_omitted_acbf0a56": "Новый пароль; генерируется случайным образом, если опущено",
|
||||
"new_password_must_contain_at_least_8_characters_16160d33": "Новый пароль должен содержать не менее 8 символов",
|
||||
"new_password_s_c7c43a90": "Новый пароль: %s\n",
|
||||
"no_active_configuration_version_60f8a99b": "нет активной версии конфигурации",
|
||||
"no_available_authentication_source_is_configured_326f6438": "доступный источник аутентификации не настроен",
|
||||
"no_certificate_is_configured_for_route_s_83ba5214": "для маршрута %s не настроен сертификат",
|
||||
"no_cloudflare_connection_is_configured_6ff882c7": "нет Cloudflare соединение настроено",
|
||||
"no_compatible_release_was_found_4d9a5ae5": "совместимая версия не найдена",
|
||||
"no_enabled_rules_are_available_to_publish_8dc1e2c9": "нет активных правил, доступных для публикации",
|
||||
"no_expired_logs_require_cleanup_access_log_retention_c72c5317": "Никакие журналы с истекшим сроком действия не требуют очистки (сохранение журнала доступа: %d дней; хранение показателей: %d дней)",
|
||||
"no_github_release_asset_matches_the_configuration_8c8ac16a": "В релизе GitHub нет файла, соответствующего настройкам",
|
||||
"no_ip_addresses_or_ranges_were_parsed_from_1fcb1209": "адреса или диапазоны IP не были проанализированы из подписки JSON",
|
||||
"no_ip_geolocation_result_was_returned_6cb0600f": "нет IP результат геолокации не был возвращен",
|
||||
"no_members_selected_dd913716": "участники не выбраны",
|
||||
"no_notification_history_requires_cleanup_cutoff_s_a2893d9b": "Никакая история уведомлений не требует очистки (ограничение: %s)",
|
||||
"no_preview_release_is_currently_available_558f10ae": "предварительная версия в настоящее время недоступна",
|
||||
"no_release_asset_was_found_for_the_current_a2eb352a": "для текущей платформы не найден актив выпуска",
|
||||
"no_unique_cloudflare_zone_found_for_s_c20b7e4b": "для %s не найдена уникальная зона Cloudflare",
|
||||
"no_valid_file_records_were_found_to_archive_89022def": "Не найдено действительных файловых записей для архивирования",
|
||||
"node_2410d860": "узел",
|
||||
"node_id_must_not_be_empty_51a5de58": "Укажите ID узла",
|
||||
"node_id_must_not_be_empty_5aa87f2e": "node_id не должно быть пустым",
|
||||
"node_identifier_conflict_please_try_again_8e2acef7": "конфликт идентификаторов узлов; пожалуйста, попробуйте еще раз",
|
||||
"node_ip_must_not_be_empty_f589f59a": "node_ip не должно быть пустым",
|
||||
"node_ip_must_not_exceed_64_characters_86cbe000": "Длина IP-адреса узла не должна превышать 64 символа",
|
||||
"node_is_offline_or_the_synchronization_command_could_c560bf64": "узел находится в автономном режиме или команду синхронизации невозможно отправить через WebSocket.",
|
||||
"node_location_name_must_not_exceed_128_characters_87961927": "Название местоположения узла не должно превышать 128 символов.",
|
||||
"node_name_must_not_be_empty_03dc8468": "имя узла не должно быть пустым",
|
||||
"node_name_must_not_be_empty_c7c245c4": "node_name не должно быть пустым",
|
||||
"node_s_cannot_validate_ip_group_d_37bca244": "узел %s не может проверить IP группу %d",
|
||||
"node_s_contains_invalid_browser_tag_s_66a80660": "узел %s содержит неверный тег браузера %s",
|
||||
"node_s_contains_invalid_cidr_s_3cf57f3e": "узел %s содержит недопустимый CIDR %s",
|
||||
"node_s_contains_invalid_country_code_s_c3a43e69": "узел %s содержит неверный код страны %s",
|
||||
"node_s_contains_invalid_ip_s_0c3bdf3f": "узел %s содержит недопустимый IP %s",
|
||||
"node_s_contains_invalid_operating_system_tag_s_5f6a6ddd": "узел %s содержит неверный тег операционной системы %s",
|
||||
"node_s_contains_invalid_region_code_s_736f6724": "узел %s содержит неверный код региона %s",
|
||||
"node_s_failed_to_validate_ip_group_d_ce8c1581": "Узел %s: не удалось проверить IP-группу %d: %w",
|
||||
"node_s_has_no_path_to_a_terminal_8286bb22": "узел %s не имеет пути к конечному узлу",
|
||||
"node_s_has_unknown_type_s_f090b1d7": "узел %s имеет неизвестный тип %s",
|
||||
"node_s_is_not_reachable_from_the_start_5eacc4af": "узел %s недоступен из начального узла",
|
||||
"node_s_must_have_at_least_one_incoming_7c8aac64": "узел %s должен иметь хотя бы одно входящее ребро",
|
||||
"node_s_must_not_contain_more_than_d_404db8ac": "узел %s не должен содержать более %d пользовательских User-Agent шаблонов",
|
||||
"node_s_output_s_is_connected_to_multiple_05e9cddf": "узел %s, выход %s подключен к нескольким целям",
|
||||
"node_s_output_s_is_not_connected_6de47feb": "узел %s выход %s не подключен",
|
||||
"node_s_references_an_invalid_ip_group_id_27bdf145": "Узел %s ссылается на некорректный ID IP-группы",
|
||||
"node_s_references_missing_ip_group_d_40d3c647": "Узел %s ссылается на отсутствующую IP-группу %d",
|
||||
"node_s_requires_at_least_one_pattern_when_480bade2": "Узел %s: укажите хотя бы один шаблон для блокировки User-Agent",
|
||||
"node_was_not_found_7b451929": "узел не найден",
|
||||
"nonce_mismatch_possible_replay_attack_8b3e6356": "несоответствие nonce; возможная атака повтора",
|
||||
"none_484d5561": "Нет",
|
||||
"not_found_4e51b67d": "не найден",
|
||||
"not_signed_in_c1f65837": "Не авторизован",
|
||||
"notification_channel_test_245d0001": "Тест канала уведомлений",
|
||||
"notification_failed_v_263fc07a": "Уведомление не удалось: %v",
|
||||
"notification_sent_s_s_e52650c7": "Уведомление отправлено: [%s] -> %s",
|
||||
"notification_sent_title_s_content_summary_s_097becda": "Уведомление отправлено (название: %s, краткое содержание: %s)",
|
||||
"observability_replay_minutes_must_be_greater_than_0_fc964575": "observability_replay_minutes должно быть больше 0",
|
||||
"oidc_authentication_sources_require_a_discovery_url_566d40ba": "Для источников аутентификации OIDC требуется Discovery URL",
|
||||
"only_administrators_can_create_tokens_with_administrator_privileges_b2e4ad01": "Только администраторы могут создавать токены с правами администратора.",
|
||||
"only_automatic_and_subscription_ip_groups_support_synchronization_b7d7995c": "синхронизацию поддерживают только автоматические группы и группы подписки IP",
|
||||
"only_failed_tasks_464688af": "Только задачи с ошибкой",
|
||||
"only_failed_tasks_can_be_retried_279c69a0": "Повторный запуск доступен только для задач с ошибкой",
|
||||
"only_failed_tasks_can_be_retried_current_status_9346f42a": "повторять можно только невыполненные задачи; текущий статус: %s",
|
||||
"only_jpg_png_and_webp_images_are_supported_c7c3c323": "поддерживаются только изображения JPG, PNG и WEBP",
|
||||
"openflare_automatic_ssl_renewal_cf123a50": "Автоматическое продление сертификатов SSL OpenFlare",
|
||||
"openflare_pages_deployment_source_operation_866f0285": "Обновление сайта Pages из источника",
|
||||
"openflare_pages_deployment_source_scan_6932f24c": "Проверка источников развёртывания Pages",
|
||||
"openflare_single_certificate_ssl_renewal_a531316e": "Продление выбранного сертификата SSL OpenFlare",
|
||||
"openflare_uptime_kuma_synchronization_b2168d61": "Синхронизация OpenFlare с Uptime Kuma",
|
||||
"openflare_waf_ip_group_synchronization_f7213a53": "Синхронизация IP-групп WAF OpenFlare",
|
||||
"openresty_observability_port_must_be_between_1_and_69074f9c": "openresty_observability_port должно быть от 1 до 65535.",
|
||||
"openrestymainconfigtemplate_must_not_be_empty_3ac2d43c": "OpenRestyMainConfigTemplate не должно быть пустым.",
|
||||
"openrestymainconfigtemplate_must_retain_placeholder_s_cfc00d9c": "OpenRestyMainConfigTemplate должен сохранять заполнитель %s",
|
||||
"operation_not_authorized_invalid_agent_token_307a5b9a": "Операция не авторизована: недействительный токен агента",
|
||||
"operation_not_authorized_invalid_registration_token_a1264630": "Операция не авторизована: неверный токен регистрации.",
|
||||
"operation_not_authorized_invalid_tunnel_token_641a1499": "Операция не авторизована: неверный токен туннеля",
|
||||
"operation_not_permitted_286a8d3f": "Операция не разрешена",
|
||||
"origin_address_already_exists_0013db55": "исходный адрес уже существует",
|
||||
"origin_address_is_missing_a_port_7b7c2ebf": "В исходном адресе отсутствует порт",
|
||||
"origin_address_must_not_be_empty_f49f8b30": "адрес происхождения не должен быть пустым",
|
||||
"origin_path_must_not_contain_a_protocol_8e0af122": "исходный путь не должен содержать протокол",
|
||||
"origin_path_must_start_with_or_4bf64d2c": "Исходный путь должен начинаться с / или ?",
|
||||
"origin_protocol_must_be_http_or_https_ab499f2a": "протокол происхождения должен быть http или https",
|
||||
"origin_was_not_found_0752eb2d": "Сервер-источник не найден",
|
||||
"other_d2909f16": "Прочее",
|
||||
"pages_archives_support_zip_tar_gz_tar_xz_83bca097": "Архивы страниц поддерживают только форматы zip, tar.gz, tar.xz, tar.bz2, tar и 7z.",
|
||||
"pages_deployment_archive_hash_is_missing_4d740a0d": "хеш архива развертывания страниц отсутствует",
|
||||
"pages_deployment_archive_is_not_a_valid_compressed_9b2cefd1": "Архив развертывания страниц не является допустимым сжатым архивом",
|
||||
"pages_deployment_archive_is_not_a_valid_zip_0dd602e6": "Архив развертывания страниц не является допустимым файлом ZIP.",
|
||||
"pages_deployment_archive_must_be_a_zip_file_ab5b4552": "Архив развертывания страниц должен представлять собой ZIP-файл.",
|
||||
"pages_deployment_archive_must_not_be_empty_ff4d94e4": "архив развертывания страниц не должен быть пустым",
|
||||
"pages_deployment_archive_must_not_exceed_d_mib_3c1a0b6a": "Архив развертывания страниц не должен превышать %d МиБ",
|
||||
"pages_deployment_archive_path_is_empty_87435085": "Путь к архиву развертывания страниц пуст.",
|
||||
"pages_deployment_archive_upload_record_was_not_found_9990e33d": "запись загрузки архива развертывания страниц не найдена",
|
||||
"pages_deployment_archive_upload_type_mismatch_s_cd5886f7": "Несоответствие типа загрузки архива развертывания страниц: %s",
|
||||
"pages_deployment_archive_was_not_found_w_39714023": "Архив развертывания страниц не найден: %w",
|
||||
"pages_deployment_does_not_belong_to_this_project_374852db": "развертывание страниц не принадлежит этому проекту",
|
||||
"pages_deployment_is_not_included_in_the_active_26b4dcae": "развертывание страниц не включено в активную конфигурацию",
|
||||
"pages_deployment_must_not_contain_more_than_d_80d2f448": "развертывание страниц не должно содержать более %d файлов",
|
||||
"pages_deployment_source_configuration_changed_task_skipped_ed018def": "Изменена конфигурация источника развертывания страниц; задача пропущена",
|
||||
"pages_deployment_source_operation_failed_please_try_again_19363b45": "Не удалось выполнить операцию источника развертывания страниц; пожалуйста, попробуйте еще раз позже",
|
||||
"pages_deployment_source_synchronization_failed_86c51b71": "не удалось синхронизировать источник развертывания страниц",
|
||||
"pages_deployment_source_synchronized_and_published_successfully_0bf1e5dd": "Источник развертывания страниц успешно синхронизирован и опубликован.",
|
||||
"pages_deployment_source_task_ownership_is_no_longer_35aa212a": "Владение исходной задачей развертывания страниц больше не действительно",
|
||||
"pages_deployment_source_was_not_found_c9af468e": "источник развертывания страниц не найден",
|
||||
"pages_deployment_was_not_found_e90bdf07": "развертывание страниц не найдено",
|
||||
"pages_entry_file_must_not_exceed_512_characters_3e7fb206": "длина файла ввода страниц не должна превышать 512 символов",
|
||||
"pages_project_has_no_active_deployment_6d7971f7": "В проекте страниц нет активного развертывания",
|
||||
"pages_project_is_disabled_98847c64": "проект страниц отключен",
|
||||
"pages_project_is_referenced_by_rules_and_cannot_416af718": "На проект страниц ссылаются правила, и его нельзя удалить.",
|
||||
"pages_project_name_must_not_be_empty_717063ef": "Название проекта страниц не должно быть пустым.",
|
||||
"pages_project_or_deployment_is_empty_ddcf5875": "проект или развертывание страниц пусто",
|
||||
"pages_project_slug_already_exists_b7c6e058": "Маркировка проекта страниц уже существует",
|
||||
"pages_project_slug_may_only_contain_lowercase_letters_56675232": "Слаг проекта страниц может содержать только строчные буквы, цифры и дефисы.",
|
||||
"pages_project_was_not_found_b6f46c90": "проект страниц не найден",
|
||||
"pages_root_directory_must_not_exceed_512_characters_29d92328": "Корневой каталог страниц не должен превышать 512 символов",
|
||||
"pages_source_content_is_unchanged_existing_deployment_reactivated_1441d50c": "Исходное содержимое страниц не изменилось; существующее развертывание возобновлено",
|
||||
"pages_source_scan_completed_recovered_d_leases_compensated_de889c15": "Сканирование исходного кода страниц завершено: восстановлено %d арендовано, компенсировано %d потерянные записи, проверено %d источники, отправлено %d автоматические обновления, невыполненная работа %d",
|
||||
"parse_fbff7b50": "Разобрать",
|
||||
"parse_task_parameters_w_21ea4f33": "параметры задачи синтаксического анализа: %w",
|
||||
"password_changed_successfully_c5299b82": "Пароль успешно изменен",
|
||||
"password_encryption_failed_please_try_again_ef84e8d4": "шифрование пароля не удалось; пожалуйста, попробуйте еще раз",
|
||||
"password_login_is_disabled_by_the_administrator_54c5d88a": "Вход по паролю отключен администратором",
|
||||
"password_must_contain_at_least_8_characters_ab81f8d4": "пароль должен содержать не менее 8 символов",
|
||||
"password_reset_successfully_bf63ac4e": "Пароль успешно сброшен",
|
||||
"periodically_remove_unused_uploads_historical_notifications_and_expired_68ae5d13": "Периодическое удаление неиспользуемых загрузок, старых уведомлений и устаревших записей выполнения задач.",
|
||||
"pg_dump_is_unavailable_install_the_postgresql_client_759ad5ae": "pg_dump недоступен; установите клиентские инструменты PostgreSQL на сервер",
|
||||
"please_sign_in_first_48144f96": "Пожалуйста, сначала войдите в систему",
|
||||
"port_must_not_be_empty_e53d74a2": "порт не должен быть пустым",
|
||||
"postgresql_is_disabled_and_sqlite_is_the_primary_3234d0c2": "PostgreSQL отключена, а SQLite является основной базой данных; миграция на PostgreSQL недоступна",
|
||||
"postgresql_is_the_primary_database_sqlite_cannot_be_4d638671": "PostgreSQL — основная база данных; SQLite нельзя выбрать для хранения журнала",
|
||||
"pow_algorithm_for_node_s_must_be_fast_97989167": "Алгоритм PoW узла %s должен быть fast или slow",
|
||||
"pow_challenge_ttl_for_node_s_must_be_87482278": "Вызов PoW TTL для узла %s должен длиться не менее 30 секунд.",
|
||||
"pow_difficulty_for_node_s_must_be_between_4eaec0b8": "Сложность PoW для узла %s должна быть от 1 до 16.",
|
||||
"pow_session_ttl_for_node_s_must_be_98ed3573": "Сеанс PoW TTL для узла %s должен длиться не менее 60 секунд.",
|
||||
"precreated_target_postgresql_partitions_from_s_to_s_0bc5358f": "Предварительно созданные целевые разделы PostgreSQL от %s до %s",
|
||||
"preparing_group_synchronization_group_s_id_d_enabled_9d8361f3": "Подготовка групповой синхронизации: group=%s id=%d Enabled=%v target=%s default_proxied=%v",
|
||||
"preparing_node_synchronization_node_s_id_d_ip_61c8f04a": "Подготовка синхронизации узла: node=%s id=%d ip=%s",
|
||||
"preparing_to_issue_or_renew_a_certificate_for_18326882": "Подготовка к выдаче или продлению сертификата для доменов [%s]",
|
||||
"preparing_to_send_email_to_s_subject_s_1f6fad47": "Готовимся отправить электронное письмо на адрес: %s, тема: %s",
|
||||
"previous_pages_deployment_source_task_lease_expired_4de3ac84": "Срок блокировки задачи источника развертывания предыдущих страниц истек",
|
||||
"primary_and_standby_nodes_must_be_different_7f96a264": "первичный и резервный узлы должны быть разными",
|
||||
"provide_the_remote_deployment_archive_url_887e4ef2": "предоставьте архив удаленного развертывания URL",
|
||||
"querying_next_migration_batch_migrated_d_d_c481c987": "Запрос следующего пакета миграции; перенесено: %d/%d",
|
||||
"rebuild_file_storage_statistics_fe52d825": "Пересчёт статистики файлового хранилища",
|
||||
"rebuild_w_upload_stats_from_active_w_uploads_08023859": "Пересчёт w_upload_stats по активным записям w_uploads: общие показатели, типы, категории и динамика.",
|
||||
"rebuilding_file_storage_statistics_active_records_d_60a4199b": "Восстановление статистики хранения файлов; активные записи: %d",
|
||||
"receiving_this_message_confirms_that_the_notification_channel_79c41407": "Получение этого сообщения подтверждает, что проверка подключения канала уведомлений прошла успешно.",
|
||||
"recipient_b013dc37": "Получатель",
|
||||
"recipient_email_to_88e59c15": "Адрес электронной почты получателя (Кому)",
|
||||
"record_was_not_found_e4ba0386": "Запись не найдена",
|
||||
"recover_recovered_expired_source_lease_source_id_d_c4a7c01f": "[восстановить] Восстановлена истекшая аренда исходного кода: source_id=%d",
|
||||
"registration_failed_please_try_again_later_a4807a5d": "регистрация не удалась; пожалуйста, попробуйте еще раз позже",
|
||||
"registration_is_disabled_by_the_administrator_420d53e6": "Регистрация отключена администратором",
|
||||
"remote_addr_must_not_be_empty_ba45da61": "remote_addr не должно быть пустым",
|
||||
"remote_source_redirect_limit_exceeded_3fdd16bf": "Превышен лимит перенаправления удаленного источника",
|
||||
"remote_url_sources_do_not_support_update_checks_1ecca79c": "удаленные источники URL не поддерживают проверку обновлений; использовать синхронизацию сейчас",
|
||||
"remote_url_sources_must_not_include_github_or_48c0b153": "удаленные источники URL не должны включать GitHub или конфигурацию автоматического обновления.",
|
||||
"renew_a_single_specified_acme_certificate_a27fd4e1": "Продлить один указанный сертификат ACME.",
|
||||
"renewal_certificate_data_saved_9d25aae9": "[Продление] Данные сертификата сохранены.",
|
||||
"renewal_certificate_issued_securely_storing_certificate_and_private_cfaa1b37": "[Продление] Выдан сертификат; безопасное хранение сертификата и закрытого ключа в базе данных...",
|
||||
"renewal_decrypting_dns_account_credentials_and_acme_account_6ac3acd9": "[Продление] Расшифровка учетных данных учетной записи DNS и закрытого ключа учетной записи ACME...",
|
||||
"renewal_requested_domains_v_e4bf6bab": "[Продление] Запрошенные домены: %v",
|
||||
"renewal_requesting_ssl_certificate_issuance_through_the_acme_98e351ee": "[Продление] Запрос на выдачу сертификата SSL через вызов ACME DNS-01; пожалуйста, подождите...",
|
||||
"renewal_resolving_acme_account_1bc0d71a": "[Продление] Разрешение учетной записи ACME...",
|
||||
"renewal_resolving_dns_account_information_id_d_89687757": "[Продление] Разрешение информации об учетной записи DNS (ID=%d)...",
|
||||
"renewal_saving_acme_account_changes_15275665": "[Продление] Сохранение ACME изменений учетной записи...",
|
||||
"renewal_starting_renewal_setting_application_status_to_applying_a167afb3": "[Продление] Начало продления; установка статуса заявки на подачу заявки...",
|
||||
"request_body_json_77cfb393": "Тело запроса (JSON)",
|
||||
"request_url_65a1f546": "URL запроса",
|
||||
"reset_the_password_for_a_specified_account_ef0bf7e5": "Сбросить пароль для указанной учетной записи",
|
||||
"resolve_acquiring_source_task_ownership_8bb0e8c7": "[решить] Получение права владения исходной задачей",
|
||||
"resolve_another_source_task_is_running_skipping_task_a4e1db69": "[решить] Выполняется другая исходная задача; пропуск задачи",
|
||||
"resolve_resolving_github_release_repo_s_asset_s_6915eea4": "[поиск] Поиск релиза GitHub: репозиторий=%s файл=%s",
|
||||
"resolve_source_configuration_changed_skipping_task_4b3e6282": "[решить] Исходная конфигурация изменена; пропуск задачи",
|
||||
"resolve_source_configuration_or_ownership_changed_skipping_task_d8b6d56a": "[решить] Исходная конфигурация или право собственности изменены; пропуск задачи",
|
||||
"resolve_source_no_longer_exists_skipping_task_c4e25edd": "[решить] Источник больше не существует; пропуск задачи",
|
||||
"result_must_be_success_warning_or_failed_7bca2806": "результат должен быть успешным, предупреждением или неудачным",
|
||||
"retention_days_must_be_between_1_and_3650_3b6a649b": "retention_days должно быть между 1 и 3650.",
|
||||
"retention_days_must_be_between_1_and_90_371a59a7": "retention_days должно быть от 1 до 90",
|
||||
"root_domain_still_contains_domains_delete_them_all_277bc1d6": "корневой домен все еще содержит домены; сначала удали их все",
|
||||
"route_configuration_path_must_not_be_empty_f70cb124": "путь конфигурации маршрута не должен быть пустым",
|
||||
"route_s_w_0efcb499": "маршрут %s %w",
|
||||
"rule_graph_contains_multiple_start_nodes_e13cd7e2": "Граф правил содержит несколько начальных узлов",
|
||||
"rule_graph_is_missing_a_start_node_1efe3116": "в графе правил отсутствует начальный узел",
|
||||
"rule_graph_must_contain_exactly_one_allow_node_a05ca0b3": "Граф правил должен содержать ровно один разрешающий узел",
|
||||
"rule_graph_must_contain_exactly_one_start_node_3140d98e": "Граф правил должен содержать ровно один начальный узел",
|
||||
"rule_graph_must_not_contain_cycles_fd6fe797": "граф правил не должен содержать циклов",
|
||||
"rule_graph_must_not_contain_more_than_d_3289a255": "Граф правил не должен содержать более %d ребер",
|
||||
"rule_graph_must_not_contain_more_than_d_76688447": "Граф правил не должен содержать более %d узлов",
|
||||
"rule_graph_must_not_exceed_256_kib_855948bb": "Граф правил не должен превышать 256 КиБ",
|
||||
"rule_graph_schema_version_must_be_d_38d452c4": "график правил schema_version должен быть %d",
|
||||
"rule_was_updated_by_another_operation_reload_it_bba246a7": "Правило было обновлено другой операцией; перезагрузи его",
|
||||
"s_contains_an_empty_domain_name_e4a83686": "%s содержит пустое доменное имя",
|
||||
"s_contains_duplicate_domain_name_s_15451d4d": "%s содержит повторяющееся доменное имя %s",
|
||||
"s_contains_invalid_characters_enter_valid_ip_addresses_59634931": "%s содержит недопустимые символы; введите действительные адреса IP или имена доменов, разделенные пробелами.",
|
||||
"s_contains_invalid_network_range_q_ce167d93": "%s содержит недопустимый сетевой диапазон %q",
|
||||
"s_contains_unsupported_value_q_6208a8c5": "%s содержит неподдерживаемое значение %q",
|
||||
"s_domain_name_must_be_lowercase_without_surrounding_59ed3d2c": "%s доменное имя должно быть в нижнем регистре без пробелов вокруг: %s",
|
||||
"s_is_not_a_valid_ip_address_643806a5": "%s не является действительным адресом IP",
|
||||
"s_is_not_a_valid_ip_range_4835d8bf": "%s не является допустимым диапазоном IP",
|
||||
"s_must_be_a_duration_with_a_unit_b97fceb4": "%s: укажите длительность с единицей измерения, например 30m или 5s",
|
||||
"s_must_be_a_json_array_of_strings_dbcb2bd7": "%s должен быть массивом строк JSON.",
|
||||
"s_must_be_a_nonnegative_integer_0_means_efc94604": "%s должно быть неотрицательным целым числом (0 означает неограниченное количество)",
|
||||
"s_must_be_a_nonnegative_integer_0bbc7814": "%s должно быть неотрицательным целым числом.",
|
||||
"s_must_be_a_whole_number_of_days_c0ac3325": "%s должно быть целым числом дней, большим или равным 1.",
|
||||
"s_must_be_an_integer_between_1_and_3f9a159c": "%s должно быть целым числом от 1 до 2048 (МиБ).",
|
||||
"s_must_be_an_integer_greater_than_0_9553dcdf": "%s должно быть целым числом больше 0",
|
||||
"s_must_be_an_integer_or_a_size_2e9fba45": "%s должно быть целым числом или размером с суффиксом k/m/g.",
|
||||
"s_must_be_between_100_and_999_6b9e594f": "%s должно быть между 100 и 999.",
|
||||
"s_must_be_disabled_mmdb_ip_api_geojs_deba53da": "%s: допустимые значения — disabled, mmdb, ip-api, geojs или ipinfo",
|
||||
"s_must_be_epoll_kqueue_poll_select_rtsig_3177cbf8": "%s должно быть epoll, kqueue, poll, select, rtsig, /dev/poll, eventport или пустое.",
|
||||
"s_must_be_true_or_false_3a8153ff": "%s: допустимы только true или false",
|
||||
"s_must_contain_at_least_one_status_code_15395d65": "%s должен содержать хотя бы один тег кода состояния.",
|
||||
"s_must_contain_at_most_d_network_ranges_6b0b78c4": "%s должно содержать не более %d сетевых диапазонов",
|
||||
"s_must_not_be_empty_2d5ac8f7": "%s не должно быть пустым",
|
||||
"s_must_not_be_empty_after_expansion_e814e9ef": "%s не должно быть пустым после раскрытия",
|
||||
"s_must_not_contain_newlines_54742aef": "%s не должен содержать символы новой строки",
|
||||
"s_must_not_contain_newlines_or_tabs_ff4de73f": "%s не должно содержать символов новой строки или табуляции.",
|
||||
"s_must_not_exceed_d_4b586e57": "%s не должно превышать %d",
|
||||
"s_must_not_exceed_d_bytes_256_kib_2f297bdb": "%s не должно превышать %d байт (256 КиБ)",
|
||||
"s_must_use_a_format_such_as_16_1042e770": "%s должен использовать такой формат, как «16 16k».",
|
||||
"s_must_use_a_format_such_as_1_5a9d67e2": "%s должен использовать такой формат, как «1:2» или «1:2:2».",
|
||||
"s_supports_at_most_d_domain_names_4f3d5128": "%s поддерживает не более %d доменных имен.",
|
||||
"scan_acme_certificates_nearing_expiration_and_renew_them_c53289c4": "Проверка и автоматическое продление сертификатов ACME с истекающим сроком действия.",
|
||||
"scan_due_sources_d_batch_d_ab93c95c": "[сканировать] Источники = %d, пакет = %d",
|
||||
"scan_sources_still_due_after_this_batch_d_da73edba": "[сканирование] Исходники еще не получены после этой партии=%d",
|
||||
"scanning_certificates_due_for_renewal_7f9e9ca0": "Сканирование сертификатов, подлежащих продлению",
|
||||
"scanning_unused_uploads_cutoff_s_5c2fbb16": "Сканирование неиспользуемых загрузок, ограничение: %s",
|
||||
"schedule_system_cleanup": "Очистка системы по расписанию",
|
||||
"schedule_was_not_found_6205508a": "Расписание не найдено",
|
||||
"seconds_00fe8dda": " секунды",
|
||||
"select_a_cname_a_or_aaaa_record_type_80ac9137": "выберите тип записи CNAME, A или AAAA",
|
||||
"select_a_file_to_upload_a3a97de2": "Выберите файл для загрузки",
|
||||
"select_a_pages_deployment_source_type_70065e2c": "выберите тип источника развертывания Pages",
|
||||
"select_a_valid_cloudflare_dns_account_97385483": "выберите действительную учетную запись Cloudflare DNS",
|
||||
"select_a_valid_edge_node_0fafe682": "Выберите доступный пограничный узел",
|
||||
"select_a_valid_target_mode_9a0c6691": "выберите действительный целевой режим",
|
||||
"selected_certificate_was_not_found_3772e60e": "выбранный сертификат не найден",
|
||||
"send_data_to_an_external_webhook_using_a_068df6b3": "Отправьте данные на внешний вебхук, используя специальный запрос HTTP POST.",
|
||||
"send_email_c268c1b1": "Отправить письмо",
|
||||
"send_failed_v_a04ce62f": "Не удалось отправить: %v",
|
||||
"send_notification_e70e3a00": "Отправить уведомление",
|
||||
"send_system_email_asynchronously_63d68e86": "Отправка системных писем в фоновом режиме.",
|
||||
"sequentially_convert_managed_images_to_webp_at_the_05d39459": "Последовательное преобразование изображений в WebP с заданным качеством и сохранение в постоянном кэше.",
|
||||
"serialize_289c64ad": "Сериализация",
|
||||
"server_address_server_address_is_not_configured_configure_9e094296": "адрес сервера (server_address) не настроен; настройте его в настройках системы и попробуйте еще раз",
|
||||
"server_url_must_not_be_empty_269fe8ad": "server_url не должно быть пустым",
|
||||
"signature_verification_key_from_the_feishu_group_bot_6090b176": "Ключ проверки подписи из настроек безопасности бота группы Feishu",
|
||||
"signing_secret_optional_9dcdda03": "Секрет подписи (необязательно)",
|
||||
"since_and_until_must_be_provided_together_4fdc9431": "с и до должны быть предоставлены вместе",
|
||||
"since_must_be_an_rfc3339_timestamp_ad87e410": "поскольку это должна быть временная метка RFC3339",
|
||||
"source_database_contains_no_logs_skipping_partition_precreation_c2753081": "Исходная база данных не содержит журналов; пропуск предварительного создания раздела",
|
||||
"spa_fallback_path_contains_unsupported_characters_14eecbe2": "Резервный путь SPA содержит неподдерживаемые символы",
|
||||
"spa_fallback_path_must_not_contain_or_segments_eee02366": "SPA резервный путь не должен содержать . или .. сегменты",
|
||||
"spa_fallback_path_must_not_contain_whitespace_or_a7661241": "SPA резервный путь не должен содержать пробелов или управляющих символов.",
|
||||
"spa_fallback_path_must_not_exceed_512_characters_8be1ecf7": "SPA запасной путь не должен превышать 512 символов.",
|
||||
"spa_fallback_path_must_point_to_a_specific_dff5905a": "Резервный путь SPA должен указывать на конкретный файл",
|
||||
"spa_fallback_path_must_start_with_91d66834": "Резервный путь SPA должен начинаться с /",
|
||||
"specified_version_was_not_found_s_eeec8487": "указанная версия не найдена: %s",
|
||||
"sql_statement_must_not_be_empty_c3a52981": "Оператор SQL не должен быть пустым.",
|
||||
"start_api_worker_and_scheduler_together_3e558997": "Запуск API, Worker и Scheduler вместе",
|
||||
"start_node_s_must_not_have_incoming_edges_0501404b": "начальный узел %s не должен иметь входящих ребер",
|
||||
"starting_certificate_renewal_id_d_034783ec": "Начало продления сертификата, ID: %d",
|
||||
"starting_domain_synchronization_domain_s_zone_s_group_49f9cc95": "Начинаем синхронизацию домена: домен=%s зона=%s группа=%s(#%d) target=%s прокси=%v member_id=%d",
|
||||
"starting_log_database_migration_s_s_6a587927": "Запуск миграции базы данных журналов: %s -> %s",
|
||||
"starting_notification_event_s_channel_s_recipient_s_561117aa": "Начало уведомления: событие = %s, канал = %s, получатель = %s",
|
||||
"starting_s_synchronization_name_s_id_d_target_ce5444ff": "Начинаем синхронизацию %s: name=%s id=%d target=%s domains=%d",
|
||||
"starting_sequential_compressed_image_cache_warmup_quality_s_ec690c4f": "Запускаем последовательную прогрев кэша сжатых изображений, качество: %s, размер пакета: %d",
|
||||
"starting_storage_migration_s_s_total_objects_d_43cbe32d": "Запуск миграции хранилища: %s -> %s, общее количество объектов: %d",
|
||||
"status_code_must_be_an_integer_between_100_3328ab45": "status_code должно быть целым числом от 100 до 599.",
|
||||
"status_code_must_be_between_d_and_d_f8229da8": "код состояния должен быть между %d и %d: %s",
|
||||
"status_code_range_endpoints_are_reversed_s_afcfd994": "Конечные точки диапазона кода состояния поменялись местами: %s",
|
||||
"status_code_tag_must_not_be_empty_21235ebf": "тег кода статуса не должен быть пустым",
|
||||
"storage_configuration_updated_active_storage_remains_s_917066ca": "Конфигурация хранилища обновлена; остается активная память %s",
|
||||
"storage_configuration_updated_directly_failed_migration_task_marked_c9d7148d": "Конфигурация хранилища обновляется напрямую; неудачная задача миграции помечена как решенная",
|
||||
"storage_connectivity_4038ce91": "Возможность подключения хранилища",
|
||||
"storage_connectivity_test_failed_w_08dabbf5": "Проверка подключения к хранилищу не удалась: %w",
|
||||
"storage_migration_completed_migrated_d_objects_active_storage_332fb1de": "Миграция хранилища завершена; перенесены объекты %d, активное хранилище переключено на %s",
|
||||
"storage_migration_maintenance_is_active_files_are_read_4bf9e57d": "поддержка миграции хранилища активна; файлы доступны только для чтения",
|
||||
"subject_line_of_the_email_to_send_c3aa0753": "Тема письма для отправки",
|
||||
"subscription_content_must_not_exceed_d_bytes_f40541e2": "содержимое подписки не должно превышать %d байт",
|
||||
"subscription_returned_status_code_d_2c185ec6": "подписка вернула код состояния %d",
|
||||
"subscription_url_must_use_http_or_https_e43cbb99": "подписка URL должна использовать HTTP или HTTPS",
|
||||
"succeeded_053461ce": "Успешно",
|
||||
"switch_group_primary_and_standby_nodes_based_on_b2d78b3f": "Основные и резервные узлы группы коммутации в зависимости от доступности узла и состояния конфигурации.",
|
||||
"switch_log_database_da446b57": "Переключение базы данных журналов",
|
||||
"synchronization_completed_d_ip_addresses_or_ranges_7b645ca2": "Синхронизация завершена; %d IP адреса или диапазоны",
|
||||
"synchronization_succeeded_bca900e9": "Синхронизация прошла успешно",
|
||||
"synchronize_all_domains_currently_targeting_the_specified_node_3488196a": "Синхронизировать все домены, которые в данный момент нацелены на указанный узел.",
|
||||
"synchronize_all_domains_in_a_target_group_b2397009": "Синхронизировать все домены в целевой группе",
|
||||
"synchronize_automatic_and_subscription_waf_ip_groups_that_ac3d686e": "Обновление автоматических IP-групп WAF и IP-групп по подписке, для которых наступило время синхронизации.",
|
||||
"synchronize_cloudflare_dns_records_for_a_single_domain_a06ce84b": "Синхронизировать записи Cloudflare DNS для одного домена.",
|
||||
"synchronize_enabled_proxy_routes_with_uptime_kuma_monitors_8f761ebe": "Синхронизация активных маршрутов прокси с мониторами Uptime Kuma.",
|
||||
"synchronizing_proxy_routes_with_uptime_kuma_2d26b523": "Синхронизация прокси-маршрутов с Uptime Kuma",
|
||||
"synchronizing_waf_ip_groups_due_for_an_update_e96ea0b3": "Синхронизация групп WAF IP, подлежащих обновлению",
|
||||
"system_5b50d7c4": "Система",
|
||||
"system_channel_test_415dd03a": "Тест системного канала",
|
||||
"system_cleanup_6c08e88d": "Очистка системы",
|
||||
"system_cleanup_completed_removed_d_d_unused_uploads_5eca4159": "Очистка системы завершена. Удалены неиспользуемые загрузки %d/%d, записи аудита уведомлений %d и журналы выполнения задач %d.",
|
||||
"system_configuration_was_not_found_00210cae": "Конфигурация системы не найдена",
|
||||
"system_manual_retry_created_and_enqueued_original_task_3c9cbd5d": "[Система] Создана и поставлена в очередь повторная попытка вручную (исходная задача ID: %s, повторная попытка: %d/%d)",
|
||||
"system_notification_94b7513e": "Системное уведомление",
|
||||
"system_reserved_file_types_cannot_be_managed_through_9369ffe7": "Типы файлов, зарезервированные системой, не могут управляться через общий файл API",
|
||||
"system_smtp_configuration_is_incomplete_291bb369": "конфигурация системы SMTP неполная",
|
||||
"system_starting_asynchronous_task_name_s_type_s_90c6e5e2": "[Система] Запуск асинхронной задачи [имя: %s, тип: %s], повтор: %d/%d",
|
||||
"system_starting_asynchronous_task_type_s_caca3e5b": "[Система] Запуск асинхронной задачи [тип: %s]",
|
||||
"system_task_enqueued_waiting_for_execution_queue_s_86a50bcc": "[Система] Задача поставлена в очередь; ожидание выполнения (очередь: %s, максимальное количество повторов: %d)",
|
||||
"system_task_failed_duration_d_ms_error_v_63653548": "[Система] Задача не выполнена; продолжительность: %d мс, ошибка: %v",
|
||||
"system_task_succeeded_duration_d_ms_result_s_161aa7ca": "[Система] Задача выполнена успешно; продолжительность: %d мс, результат: %s",
|
||||
"target_group_is_disabled_08c76979": "целевая группа отключена",
|
||||
"target_group_must_differ_from_the_current_group_2702a3d3": "целевая группа должна отличаться от текущей группы",
|
||||
"target_group_was_not_found_71c24083": "целевая группа не найдена",
|
||||
"target_log_database_febc306d": "Целевая база журналов",
|
||||
"target_log_database_is_already_active_no_migration_92ab4313": "целевая база данных журналов уже активна; миграция не требуется",
|
||||
"target_storage_configuration_json_884c1a08": "Конфигурация целевого хранилища (JSON)",
|
||||
"task_cannot_continue_53c9c59a": "Задача не может быть продолжена",
|
||||
"task_completed_0b4c0784": "Задача выполнена: ",
|
||||
"task_execution_was_not_found_fc632d27": "Запись о выполнении задачи не найдена",
|
||||
"task_execution_was_not_found_w_284e6bfc": "выполнение задачи не найдено: %w",
|
||||
"task_parameters_must_not_be_empty_bdc11114": "параметры задачи не должны быть пустыми",
|
||||
"telegram_bot_b0edcbcc": "Бот Telegram",
|
||||
"template_content_must_not_be_empty_6fce7653": "Содержимое шаблона не должно быть пустым.",
|
||||
"template_identifier_already_exists_93895c12": "идентификатор шаблона уже существует",
|
||||
"template_identifier_must_not_be_empty_7a1e41d3": "Идентификатор шаблона не должен быть пустым.",
|
||||
"template_name_must_not_be_empty_da00e8dc": "Имя шаблона не должно быть пустым.",
|
||||
"template_s_was_not_found_or_is_unavailable_70f4fa4e": "шаблон %s не найден или недоступен: %w",
|
||||
"template_was_not_found_37b0cea2": "Шаблон не найден",
|
||||
"terminal_node_s_must_not_have_outgoing_edges_8ece7ac6": "терминальный узел %s не должен иметь исходящих ребер",
|
||||
"the_active_node_requires_a_valid_ipv4_address_edf71cfe": "активному узлу требуется действительный адрес IPv4",
|
||||
"the_active_pages_deployment_cannot_be_deleted_9f0bb393": "активное развертывание Pages невозможно удалить",
|
||||
"the_confirmed_version_has_changed_refresh_and_confirm_8a40d0fc": "подтвержденная версия изменилась; обновите и подтвердите еще раз",
|
||||
"the_current_rules_have_not_changed_and_cannot_c8b88f7d": "действующие правила не изменились и не могут быть опубликованы снова",
|
||||
"the_currently_signed_in_user_cannot_be_deleted_e47df151": "текущий вошедший в систему пользователь не может быть удален",
|
||||
"the_log_database_is_clickhouse_but_clickhouse_is_bc5e49a0": "база данных журналов — ClickHouse, но ClickHouse отключена. Снова включите ClickHouse и запустите сервер, затем запустите задачу Переключить базу данных журнала для перехода на PostgreSQL/SQLite перед отключением ClickHouse",
|
||||
"the_log_database_is_postgresql_but_postgresql_is_01f3b8d3": "база данных журналов — PostgreSQL, но PostgreSQL отключена, а SQLite является основной базой данных. Запустите задачу переключения базы данных журнала для перехода на SQLite или включите PostgreSQL.",
|
||||
"the_log_database_is_sqlite_but_postgresql_is_8cfdfdaa": "база данных журналов — SQLite, но PostgreSQL является основной базой данных. Запустите задачу базы данных журнала переключения, чтобы перейти на PostgreSQL.",
|
||||
"the_selected_version_is_not_a_preview_release_15d2f434": "выбранная версия не является предварительной версией",
|
||||
"the_specified_entry_file_does_not_exist_in_f029c906": "Указанный файл записи не существует в активном развертывании.",
|
||||
"the_specified_uploaded_asset_was_not_found_in_942c8d4d": "указанный загруженный ресурс не был найден в версии GitHub",
|
||||
"this_access_token_has_no_administrator_privileges_and_9005f2b0": "Этот токен доступа не имеет прав администратора и не может получить доступ к конечным точкам администратора.",
|
||||
"this_account_has_no_email_address_contact_an_4e504171": "У этой учетной записи нет адреса электронной почты; свяжитесь с администратором, чтобы привязать адрес электронной почты перед входом в систему",
|
||||
"this_account_has_no_email_address_use_a_e29bb819": "У этой учетной записи нет адреса электронной почты; используйте временный код для входа",
|
||||
"this_configuration_is_managed_by_system_tasks_and_1930e327": "эта конфигурация управляется системными задачами и не может быть изменена вручную",
|
||||
"this_dns_account_is_used_by_certificates_and_54842b64": "эта учетная запись DNS используется сертификатами и не может быть удалена",
|
||||
"this_domain_already_belongs_to_another_target_group_1f6c5889": "этот домен уже принадлежит другой целевой группе",
|
||||
"this_email_address_is_bound_to_another_account_48d6a2fa": "этот адрес электронной почты привязан к другой учетной записи",
|
||||
"this_endpoint_does_not_allow_access_token_authentication_93ced189": "Эта конечная точка не разрешает аутентификацию по токену доступа.",
|
||||
"this_external_account_is_bound_to_another_user_029fce16": "эта внешняя учетная запись привязана к другому пользователю",
|
||||
"this_is_a_system_notification_channel_connectivity_test_cbd9d668": "Это проверка подключения канала уведомлений системы.",
|
||||
"this_node_is_not_a_tunnelclient_0a666f7a": "Этот узел не является TunnelClient",
|
||||
"this_node_is_not_a_tunnelrelay_49925484": "Этот узел не является TunnelRelay",
|
||||
"this_origin_is_still_referenced_by_rules_and_fad589f1": "этот источник все еще упоминается в правилах и не может быть удален",
|
||||
"this_task_cannot_be_retried_be95f1db": "эту задачу нельзя повторить",
|
||||
"time_range_must_not_exceed_30_days_93f190e7": "временной диапазон не должен превышать 30 дней",
|
||||
"to_subject_and_body_must_not_be_empty_614c8b17": "to, тема и тело не должны быть пустыми",
|
||||
"token_name_must_not_be_empty_cd7ba9f4": "Имя токена не должно быть пустым.",
|
||||
"token_was_not_found_or_access_is_not_b430e116": "токен не найден или доступ запрещен",
|
||||
"too_many_login_attempts_try_again_later_3245d6d9": "Слишком много попыток входа в систему; попробуйте еще раз позже",
|
||||
"too_many_login_requests_please_try_again_later_4bcd0be6": "слишком много запросов на вход; пожалуйста, попробуйте еще раз позже",
|
||||
"transfer_uploading_file_to_target_storage_s_size_8118b17d": "[Передача] Загрузка файла в целевое хранилище: %s (размер: %d байт, тип: %s)",
|
||||
"triggered_when_an_administrator_signs_in_successfully_0ff0cfc5": "Срабатывает, когда администратор успешно входит в систему",
|
||||
"tunnel_token_must_not_be_empty_67a53536": "tunnel_token не должно быть пустым",
|
||||
"unable_to_compile_configuration_for_node_s_w_66b38ddb": "невозможно скомпилировать конфигурацию для узла %s: %w",
|
||||
"unable_to_create_database_export_file_c78edf48": "Невозможно создать файл экспорта базы данных.",
|
||||
"unable_to_enqueue_cloudflare_synchronization_task_4fc208da": "невозможно поставить в очередь задачу синхронизации Cloudflare",
|
||||
"unable_to_export_database_9f34252c": "Невозможно экспортировать базу данных",
|
||||
"unable_to_generate_an_available_username_dec720c4": "невозможно создать доступное имя пользователя",
|
||||
"unable_to_get_the_currently_active_configuration_version_6a36cf1a": "невозможно получить текущую активную версию конфигурации: %s",
|
||||
"unable_to_get_the_currently_active_configuration_version_c8a24858": "невозможно получить текущую активную версию конфигурации: %w",
|
||||
"unable_to_get_username_from_authentication_source_973bd1db": "невозможно получить имя пользователя из источника аутентификации",
|
||||
"unable_to_identify_the_current_user_9a5f999b": "Невозможно идентифицировать текущего пользователя",
|
||||
"unable_to_open_database_file_df3e8a7f": "Невозможно открыть файл базы данных: ",
|
||||
"unable_to_read_database_file_information_52111f56": "Невозможно прочитать информацию о файле базы данных: ",
|
||||
"unable_to_save_session_please_try_again_58acb751": "Невозможно сохранить сеанс; пожалуйста, попробуйте еще раз",
|
||||
"unable_to_serialize_rule_graph_w_48c45bb9": "невозможно сериализовать график правил: %w",
|
||||
"unauthorized_access_f0d65927": "Несанкционированный доступ",
|
||||
"unknown_4d8c1c5b": "Неизвестно",
|
||||
"unknown_log_database_configuration_s_98368584": "неизвестная конфигурация базы данных журналов: %s",
|
||||
"unknown_node_type_s_332fe973": "неизвестный тип узла %s",
|
||||
"unknown_task_type_s_b04735f2": "неизвестный тип задачи: %s",
|
||||
"unregistered_task_handler_s_271644ad": "незарегистрированный обработчик задач: %s",
|
||||
"unsupported_pages_deployment_source_type_5b4321a7": "неподдерживаемый тип источника развертывания Pages",
|
||||
"unsupported_verification_scenario_e2264302": "Неподдерживаемый сценарий проверки",
|
||||
"until_must_be_an_rfc3339_timestamp_ce5dee46": "до должна быть временная метка RFC3339",
|
||||
"until_must_be_later_than_since_a541175c": "до должно быть позже, чем с тех пор",
|
||||
"update_archive_size_mismatch_got_d_want_d_195807e8": "несоответствие размера архива обновлений: получил %d, хочу %d",
|
||||
"upstream_response_s_a987ca9f": "Ответ восходящего потока: %s",
|
||||
"uptime_kuma_address_is_required_when_the_integration_2a83e4ea": "время безотказной работы Адрес Kuma требуется, если интеграция включена",
|
||||
"uptime_kuma_address_must_start_with_http_or_87425cf2": "Адрес Kuma для бесперебойной работы должен начинаться с http:// или https://.",
|
||||
"uptime_kuma_integration_is_disabled_skipping_execution_30faa46e": "Uptime Kuma интеграция отключена; пропуск выполнения",
|
||||
"uptime_kuma_password_is_required_when_the_integration_6eed6c4c": "Пароль Kuma для бесперебойной работы требуется, если интеграция включена",
|
||||
"uptime_kuma_synchronization_completed_dfb5cd80": "Синхронизация с Uptime Kuma завершена",
|
||||
"uptime_kuma_synchronization_failed_v_0f0e24be": "Uptime Kuma не удалось синхронизировать: %v",
|
||||
"uptime_kuma_synchronization_is_already_running_skipping_this_3e44a54f": "Uptime Kuma синхронизация уже запущена; пропускаю это расписание",
|
||||
"uptime_kuma_username_is_required_when_the_integration_f43559eb": "время безотказной работы имя пользователя Kuma требуется, если интеграция включена",
|
||||
"user_id_is_required_5f1165d8": "Укажите ID пользователя.",
|
||||
"user_id_must_not_be_empty_07bc47a7": "пользователь ID не должен быть пустым",
|
||||
"user_was_not_found_8a2ea403": "пользователь не найден",
|
||||
"user_was_not_found_a82de572": "пользователь не найден",
|
||||
"username_already_exists_d1ee5409": "имя пользователя уже существует",
|
||||
"username_must_not_be_empty_390ccdec": "имя пользователя не должно быть пустым",
|
||||
"username_must_not_be_empty_fb128ac0": "Имя пользователя не должно быть пустым.\n",
|
||||
"username_of_the_account_whose_password_will_be_29c265c9": "Имя пользователя учетной записи, пароль которой будет сброшен",
|
||||
"username_or_email_address_is_already_in_use_18fa1479": "имя пользователя или адрес электронной почты уже используется",
|
||||
"username_s_264d6306": "Имя пользователя: %s\n",
|
||||
"validate_154723a1": "Подтвердить",
|
||||
"verification_checking_target_file_consistency_sha_256_s_daef3bb0": "[Проверка] Проверка целостности целевого файла (SHA-256): %s",
|
||||
"verification_code_is_incorrect_or_expired_62fb7904": "код подтверждения неверен или срок его действия истек",
|
||||
"verification_codes_are_being_requested_too_frequently_try_84835f1c": "коды проверки запрашиваются слишком часто; попробуйте еще раз позже",
|
||||
"verified_file_consistency_check_succeeded_s_09148b16": "[Проверено] Проверка целостности файла прошла успешно: %s",
|
||||
"verify_verifying_archive_structure_and_entry_file_dcc5d692": "[verify] Проверка структуры архива и входного файла",
|
||||
"verify_verifying_github_release_archive_and_entry_file_a00c1f16": "[проверка] Проверка архива релиза GitHub и входного файла",
|
||||
"version_identifier_conflict_please_try_again_c81c8dad": "конфликт идентификаторов версий; пожалуйста, попробуйте еще раз",
|
||||
"version_must_not_be_empty_09fabcb3": "версия не должна быть пустой",
|
||||
"videos_c20f7618": "Видео",
|
||||
"waf_ip_group_snapshot_size_d_bytes_exceeds_4bdc932a": "WAF IP размер группового снимка %d байт превышает предел в %d байт",
|
||||
"waf_ip_group_synchronization_completed_8c799689": "Синхронизация IP-групп WAF завершена",
|
||||
"waf_ip_group_synchronization_failed_v_3524af2d": "WAF IP групповая синхронизация не удалась: %v",
|
||||
"waf_rule_group_d_was_not_found_4e2d4084": "Группа правил WAF %d не найдена",
|
||||
"waf_rule_name_must_not_be_empty_92c1a213": "Укажите название правила WAF",
|
||||
"waf_rule_operation_failed_4e01c228": "Ошибка операции с правилом WAF",
|
||||
"waf_rule_was_not_found_d3a18a2e": "Правило WAF не найдено",
|
||||
"waiting_for_image_cache_warmup_lock_quality_s_88fe5819": "Ожидание блокировки прогрева кэша изображений, качество: %s",
|
||||
"warm_up_compressed_image_cache_bd2f3c3f": "Прогрев кэша сжатых изображений",
|
||||
"warning_source_file_is_missing_marking_it_deleted_552b422a": "Внимание: исходный файл отсутствует; пометить его как удаленное и пропустить: %s (ошибка: %v)",
|
||||
"webhook_url_658c6265": "URL вебхука",
|
||||
"webp_compression_quality_must_be_low_medium_or_866b5127": "Качество сжатия WebP: допустимы low, medium или high",
|
||||
"wildcard_domain_names_are_not_supported_e40045cc": "доменные имена с подстановочными знаками не поддерживаются",
|
||||
"years_cda14918": " годы ",
|
||||
"zone_must_be_a_valid_registered_root_domain_cc7d1d33": "зона должна быть действительным зарегистрированным корневым доменом",
|
||||
"zone_was_not_found_86db3707": "Зона не найдена",
|
||||
"public_error_a7274b96774b": "Укажите название канала",
|
||||
"public_error_9f24cd1da554": "Название канала может содержать только латинские буквы, цифры и символы подчёркивания",
|
||||
"public_error_1b139d2dcf79": "Укажите URL или адрес запроса",
|
||||
"public_error_88df46747841": "Для безопасного подключения URL запроса должен использовать HTTPS",
|
||||
"public_error_29d0f4706829": "Укажите шаблон тела запроса",
|
||||
"public_error_2127b11c4518": "Укажите токен бота Telegram",
|
||||
"public_error_22bcab9337f1": "Шаблон тела запроса должен содержать корректный JSON",
|
||||
"public_error_7c511ae7174a": "Проверка CAPTCHA не настроена",
|
||||
"public_error_71759e624238": "Некорректный контекст сеанса",
|
||||
"public_error_b9cbe3209e14": "Состояние OAuth не соответствует текущему сеансу",
|
||||
"public_error_ff5184f57c49": "Пользователь для привязки OAuth не соответствует текущему сеансу",
|
||||
"public_error_b5121d590135": "Неверный ID",
|
||||
"public_error_519c7fed477a": "Неверный ID канала",
|
||||
"public_error_190df01d2076": "Канал не найден",
|
||||
"public_error_cbd9709fbd01": "Уведомления об этом событии уже настроены",
|
||||
"public_error_b93a32137fc1": "Пользовательский шаблон должен содержать корректный JSON",
|
||||
"public_error_add0341f2152": "Для включения события настройте хотя бы один канал уведомлений",
|
||||
"public_error_e59e34f32d9f": "Канал с таким названием уже существует",
|
||||
"public_error_cdb14a9d218e": "Неподдерживаемый тип задачи",
|
||||
"public_error_02fbf8eef643": "Укажите event_key или task_type",
|
||||
"public_error_7f64283d20ea": "Неподдерживаемый ключ встроенного события",
|
||||
"public_error_eac68fcd302d": "Неверный ID события",
|
||||
"public_error_c854c958bd9c": "Событие уведомления не найдено",
|
||||
"public_error_a37526e5d726": "Недействительный ключ повторной регистрации",
|
||||
"public_error_452209a49676": "Учётные данные регистрации изменены; используйте назначенный токен агента",
|
||||
"public_error_da739b170c48": "Недопустимые параметры списка узлов",
|
||||
"public_error_79e7e0ad56c0": "Не удалось загрузить узлы"
|
||||
}
|
||||
@@ -0,0 +1,990 @@
|
||||
{
|
||||
"schedule_system_cleanup": "系统定期垃圾清理",
|
||||
"a_file_in_the_pages_deployment_archive_exceeds_bf65ffe2": "pages 部署包内文件过大",
|
||||
"a_new_github_release_deployment_archive_is_available_3ba1aeff": "发现新的 GitHub Release 部署包",
|
||||
"a_node_ip_is_required_when_ip_locking_2fe806d7": "锁定节点 IP 时必须填写节点 IP",
|
||||
"a_pages_deployment_source_task_is_already_running_2c10973f": "pages 部署源任务正在执行",
|
||||
"a_preview_release_cannot_be_selected_for_a_b0318833": "正式版更新不能选择 preview 发布",
|
||||
"account_binding_id_must_not_be_empty_84f24a4e": "绑定记录 ID 不能为空",
|
||||
"account_is_disabled_da6e1fd3": "账号已被封禁",
|
||||
"activate_atomically_switching_github_release_deployment_80feec83": "[activate] 正在原子切换 GitHub Release 部署",
|
||||
"activate_atomically_switching_production_deployment_80300199": "[activate] 正在原子切换生产部署",
|
||||
"activate_source_configuration_or_ownership_changed_deployment_was_e21f8288": "[activate] 来源配置或执行权已变化,本次任务未切换部署",
|
||||
"administrator_accounts_cannot_be_deleted_f3ae74a2": "不能删除管理员用户",
|
||||
"administrator_accounts_cannot_be_disabled_d3eef776": "不能禁用管理员用户",
|
||||
"administrator_login_c454c61e": "管理员登录",
|
||||
"administrator_login_notification_227c9f47": "管理员登录提醒",
|
||||
"administrator_privileges_cannot_be_revoked_from_the_currently_75858bcb": "不能撤销当前登录用户的管理员权限",
|
||||
"administrator_user_username_signed_in_at_time_from_a2edfba5": "管理员 {{user.username}} 于 {{time}} 从 IP {{ip}} 登录系统。",
|
||||
"agent_token_and_discovery_token_must_not_both_ca76bf69": "agent_token 和 discovery_token 不能同时为空",
|
||||
"agent_token_is_empty_and_discovery_token_is_0349f2b6": "agent_token 为空且未配置 discovery_token",
|
||||
"all_objects_have_been_migrated_93287840": "所有对象迁移完毕",
|
||||
"already_running_the_latest_version_6e865701": "当前已是最新版本",
|
||||
"an_asset_in_the_same_release_was_replaced_2878205a": "检测到同一 Release 的资源被替换,需要确认",
|
||||
"an_asset_in_the_same_release_was_replaced_40e8d33a": "检测到同一 Release 的资源已被替换,请刷新并确认当前版本",
|
||||
"an_update_is_already_in_progress_d5dae3bf": "已有升级任务正在执行",
|
||||
"another_storage_migration_task_is_already_running_937fbb49": "另一个存储迁移任务正在运行中",
|
||||
"api_base_url_optional_e966f73e": "API 基础地址 (可选)",
|
||||
"api_reverse_proxy_backend_must_be_a_valid_4c68d5b8": "API 反代后端服务地址必须是有效的 HTTP/HTTPS URL",
|
||||
"api_reverse_proxy_match_path_must_start_with_662f1449": "API 反代匹配路径必须以 '/' 开头",
|
||||
"archive_contains_an_invalid_path_s_0f89f375": "归档包含非法路径: %s",
|
||||
"archive_path_escapes_the_destination_s_c6d68c24": "归档路径越界: %s",
|
||||
"archives_8f10dc14": "压缩包",
|
||||
"asynchronous_task_task_name_id_task_id_completed_128e1c5d": "异步任务 {{task_name}} (ID: {{task_id}}) 已完成。状态: {{task_status}},耗时: {{task_duration}} ms。",
|
||||
"audio_296c632e": "音频",
|
||||
"authentication_source_id_must_not_be_empty_87431a43": "认证源 ID 不能为空",
|
||||
"authentication_source_is_disabled_7a948dfa": "认证源未启用",
|
||||
"authentication_source_must_not_be_empty_8c3909a8": "认证源不能为空",
|
||||
"authentication_source_name_may_only_contain_letters_digits_71129406": "认证源名称只能包含字母、数字、短横线或下划线,且必须以字母或数字开头",
|
||||
"authentication_source_name_must_not_be_empty_f85c91bb": "认证源名称不能为空",
|
||||
"authentication_source_type_must_be_oidc_3d9726ab": "认证源类型仅支持 oidc",
|
||||
"automatic_binary_replacement_is_not_supported_on_this_ef024e23": "当前平台暂不支持自动替换二进制",
|
||||
"automatic_ip_group_configuration_must_be_a_json_535c4571": "自动 IP 组配置必须是 JSON 对象",
|
||||
"automatic_notification_triggered_when_an_asynchronous_task_finishes_b0349623": "异步任务执行完毕触发的自动通知",
|
||||
"automatic_rules_completed_matched_d_ips_currently_active_a2f333b5": "自动规则执行成功,共命中 %d 个 IP,当前生效 %d 个 IP",
|
||||
"automatic_ssl_renewal_failed_v_b3366eb5": "SSL 自动续期失败: %v",
|
||||
"automatic_ssl_renewal_task_completed_b95fcc39": "SSL 自动续期任务完成",
|
||||
"automatic_updates_will_be_available_in_a_later_d19f8d56": "自动更新将在后续阶段开放,当前必须保持关闭",
|
||||
"available_variables_title_description_content_url_to_example_5b046232": "可使用的变量:$title, $description, $content, $url, $to。例如 {\"text\": \"$content\"}",
|
||||
"backend_url_is_required_when_the_api_reverse_8563c33e": "启用 API 反代时,后端服务地址不能为空",
|
||||
"batch_completed_last_id_d_generated_d_hits_c7365ae6": "批次完成,末尾 ID: %d,生成: %d,命中: %d,失败: %d",
|
||||
"block_response_body_for_node_s_must_not_8df3d52b": "节点 %s 的阻止响应体不能超过 %d 字节",
|
||||
"block_status_code_for_node_s_must_be_3708ab21": "节点 %s 的阻止状态码必须在 400-599 之间",
|
||||
"bot_access_token_issued_by_botfather_ef54847f": "通过 BotFather 申请到的机器人 Access Token",
|
||||
"bot_token_7ed368ad": "机器人 Token (Bot Token)",
|
||||
"both_latitude_and_longitude_are_required_451abfe8": "地图坐标必须同时填写纬度和经度",
|
||||
"bucket_minutes_must_be_5_10_15_30_838c287d": "bucket_minutes 仅支持 5、10、15、30、60",
|
||||
"bucket_started_at_must_be_an_rfc3339_timestamp_2d909e88": "bucket_started_at 必须为 RFC3339 时间",
|
||||
"built_in_template_identifiers_cannot_be_changed_4e094f31": "系统预置模板不可修改标识符",
|
||||
"built_in_templates_cannot_be_deleted_dd8af484": "系统预置模板不可删除",
|
||||
"cannot_be_retried_93537915": "不支持重试",
|
||||
"cannot_convert_configuration_s_value_s_to_a_30f99a83": "配置 %s 的值 '%s' 无法转换为布尔值: %w",
|
||||
"cannot_convert_configuration_s_value_s_to_a_d601455b": "配置 %s 的值 '%s' 无法转换为decimal: %w",
|
||||
"cannot_convert_configuration_s_value_s_to_an_bea99a42": "配置 %s 的值 '%s' 无法转换为整数: %w",
|
||||
"captcha_verification_failed_missing_verification_credential_2b70bfd8": "验证码验证失败,缺少验证码凭证",
|
||||
"captcha_verification_failed_or_expired_please_try_again_83606d54": "验证码校验失败或已过期,请重试",
|
||||
"certificate_directory_must_not_be_empty_71b05ede": "cert dir 不能为空",
|
||||
"certificate_file_path_must_not_be_empty_9fb64a51": "cert file path 不能为空",
|
||||
"certificate_id_48409532": "证书 ID",
|
||||
"certificate_id_must_be_nonzero_742f9d12": "证书 ID 不能为空或零",
|
||||
"certificate_issuance_failed_v_c18caa92": "申请证书失败: %v",
|
||||
"certificate_s_id_d_is_not_acme_managed_0703919b": "证书 %s (ID=%d) 不是 ACME 托管证书,无法自动续期 (Provider: %s)",
|
||||
"certificate_s_is_not_acme_managed_and_cannot_e4d6469f": "证书 %s 不是 ACME 托管证书,无法自动续期",
|
||||
"certificate_s_renewed_successfully_5ddb1448": "证书 %s 续签成功",
|
||||
"channel_test_notification_2a7a7219": "通道测试通知",
|
||||
"check_checking_github_release_repo_s_asset_s_9f927192": "[check] 正在检查 GitHub Release:repo=%s asset=%s",
|
||||
"check_existing_files_89d94c02": "检查存量文件",
|
||||
"check_github_provider_backoff_source_id_d_status_9b362b41": "[check] GitHub provider 退避:source_id=%d status=%d retry_at=%s",
|
||||
"check_or_synchronize_a_pages_project_deployment_source_bdfc6949": "检查或同步 Pages 项目部署源",
|
||||
"check_source_is_running_another_task_skipping_source_ca7ae2fd": "[check] 来源正在执行其它任务,跳过:source_id=%d",
|
||||
"checking_cloudflare_group_primary_and_standby_node_status_e2df040e": "开始检查 Cloudflare 节点分组主备状态",
|
||||
"cleaned_up_d_task_execution_logs_d_high_2352273f": "成功清理任务执行日志 %d 条(高频 %d 条,低频 %d 条)",
|
||||
"cleaning_up_expired_logs_using_log_database_retention_c4163ab0": "开始清理过期日志(访问日志按当前日志库保留天数,性能指标按独立短留存)...",
|
||||
"cleaning_up_notification_audit_history_retaining_the_last_6074bdfe": "开始清理历史推送审计日志,只保留最近7天数据...",
|
||||
"cleaning_up_task_execution_logs_retaining_3_days_5f4a5eb2": "开始清理任务执行日志:高频任务保留最近3天,低频任务保留最近30天...",
|
||||
"cleanup_compensating_unreferenced_deployment_archive_records_eb828b5c": "[cleanup] 正在补偿未引用的部署包记录",
|
||||
"cleanup_completed_fce56fa2": "清理成功",
|
||||
"cleanup_orphan_candidates_d_compensated_d_referenced_d_21a3822b": "[cleanup] orphan 候选=%d,已补偿=%d,仍被引用=%d,lease busy=%d,非法 marker=%d,跳过=%d,失败=%d",
|
||||
"clickhouse_is_disabled_migration_to_clickhouse_is_unavailable_7bbf52f9": "ClickHouse 未启用,无法迁移到 ClickHouse",
|
||||
"client_id_and_client_secret_are_required_before_b1904682": "启用认证源前必须配置 Client ID 和 Client Secret",
|
||||
"cloudflare_api_request_failed_8fbea766": "cloudflare API 请求失败",
|
||||
"cloudflare_api_request_failed_w_1f530c09": "cloudflare API 请求失败: %w",
|
||||
"cloudflare_api_retry_limit_exceeded_7e3673cc": "cloudflare API 请求超过重试次数",
|
||||
"cloudflare_api_token_is_inactive_4a0ca3bf": "cloudflare API Token 未激活",
|
||||
"cloudflare_dns_synchronization_failed_08371454": "Cloudflare DNS 同步失败",
|
||||
"cloudflare_domain_synchronization_8b6eca62": "Cloudflare 域名同步",
|
||||
"cloudflare_domain_synchronization_succeeded_b3b55a0a": "Cloudflare 域名同步成功",
|
||||
"cloudflare_domain_synchronization_succeeded_s_s_proxied_v_5b0eed54": "Cloudflare 域名同步成功: %s → %s (proxied=%v)",
|
||||
"cloudflare_group_synchronization_d98bfd8f": "Cloudflare 分组同步",
|
||||
"cloudflare_node_failover_check_57f894bc": "Cloudflare 节点故障回退检查",
|
||||
"cloudflare_node_failover_check_completed_switched_d_groups_1dd7476d": "Cloudflare 节点故障回退检查完成,切换分组 %d 个",
|
||||
"cloudflare_node_failover_check_failed_error_v_52840d43": "Cloudflare 节点故障回退检查失败: error=%v",
|
||||
"cloudflare_node_synchronization_ed5311ec": "Cloudflare 节点同步",
|
||||
"cloudflare_resource_was_not_found_8194db78": "Cloudflare 资源不存在",
|
||||
"cloudflare_s_synchronization_completed_s_d_domains_3d341ca3": "Cloudflare %s同步完成: %s 共 %d 个域名",
|
||||
"cloudflare_s_synchronization_completed_s_has_no_domain_302881ff": "Cloudflare %s同步完成: %s 无域名成员",
|
||||
"cloudflare_s_synchronization_completed_s_s_d_domains_6aa7c0fd": "Cloudflare %s同步完成: %s → %s,共 %d 个域名",
|
||||
"compensate_orphaned_archives_recover_expired_leases_and_check_dd5bf0ee": "补偿孤儿部署包、恢复过期执行权并串行检查到期的 GitHub latest 部署源",
|
||||
"complete_https_endpoint_url_for_example_https_api_321a9514": "接口请求的完整 HTTPS URL,例如 https://api.example.com/webhook",
|
||||
"complete_json_configuration_of_the_target_storage_backend_2a07e361": "待迁移到的目标存储引擎完整配置 JSON 字符串",
|
||||
"config_must_not_be_empty_a3a68460": "config 不能为空",
|
||||
"configuration_contains_an_additional_json_value_b7e289fa": "配置包含额外 JSON 值",
|
||||
"configuration_key_already_exists_6d757a67": "配置键已存在",
|
||||
"configuration_key_must_not_be_empty_e5cb19c0": "配置键不能为空",
|
||||
"configuration_must_not_be_null_32b5f98f": "配置不能为 null",
|
||||
"configuration_path_is_not_initialized_6d59fe3e": "config path 未初始化",
|
||||
"configuration_value_must_not_be_empty_20e379d9": "配置值不能为空",
|
||||
"configure_telegram_bot_notifications_9bffc349": "配置 Telegram 机器人推送消息。",
|
||||
"configured_cloudflare_api_token_is_invalid_0453f265": "配置的 Cloudflare API Token 无效",
|
||||
"connecting_to_smtp_server_s_d_username_s_0186b04e": "连接 SMTP 服务器: %s:%d, 用户名: %s",
|
||||
"content_of_the_email_to_send_77c2373e": "发送邮件的内容主体",
|
||||
"copied_d_access_logs_through_id_d_d6f86229": "已复制访问日志 %d 条(截至 id=%d)",
|
||||
"copied_d_user_access_logs_through_id_d_f80f625f": "已复制用户访问日志 %d 条(截至 id=%d)",
|
||||
"copied_s_d_records_through_id_d_ee8dd5f7": "已复制 %s %d 条(截至 id=%d)",
|
||||
"copy_log_data_and_switch_the_log_database_0576d9c2": "复制迁移日志数据并在成功后切换日志主库(期间禁止日志写入)",
|
||||
"copy_the_webhook_url_from_the_feishu_group_d0638f81": "从飞书群机器人设置中复制 of Webhook URL",
|
||||
"current_migration_batch_completed_progress_d_d_42eb3c40": "当前批次迁移完成。迁移进度: %d/%d",
|
||||
"current_password_is_incorrect_36d208b0": "原密码不正确",
|
||||
"current_storage_has_no_objects_to_migrate_active_533b6b0a": "当前存储没有需要迁移的对象,活动存储已切换为 %s",
|
||||
"custom_card_json_template_optional_be356c13": "自定义卡片 JSON 模版 (可选)",
|
||||
"custom_notification_channel_f6ac176a": "自定义消息通道",
|
||||
"custom_user_agent_pattern_in_node_s_must_1ae42a76": "节点 %s 的自定义 UA 正则不能为空",
|
||||
"custom_user_agent_pattern_in_node_s_must_3372446d": "节点 %s 的自定义 UA 正则不能超过 %d 字节",
|
||||
"d_d_domain_record_no_longer_exists_removing_397ee9a8": "[%d/%d] 域名记录已不存在,清理孤立成员: member_id=%d zone_domain_id=%d",
|
||||
"d_d_failed_domain_s_member_id_d_6e126949": "[%d/%d] 失败: domain=%s member_id=%d error=%v",
|
||||
"d_d_failed_to_remove_orphaned_member_member_7b0a42ab": "[%d/%d] 清理孤立成员失败: member_id=%d error=%v",
|
||||
"d_d_succeeded_domain_s_2eb31693": "[%d/%d] 成功: domain=%s",
|
||||
"d_d_synchronizing_domain_s_member_id_d_593b8a8a": "[%d/%d] 同步域名 %s (member_id=%d proxied=%v)",
|
||||
"d_days_4a67fe38": "%d天",
|
||||
"d_hours_e7b10e79": "%d小时",
|
||||
"d_minutes_2bc2266f": "%d分钟",
|
||||
"d_seconds_26064316": "%d秒钟",
|
||||
"database_is_not_initialized_0ab7ea2d": "数据库未初始化",
|
||||
"database_update_updating_file_path_s_s_35e484ff": "[更新数据库] 正在更新文件路径: %s -> %s",
|
||||
"days_5ab7e0f9": " 天 ",
|
||||
"default_chat_id_optional_a982d25a": "默认会话 ID (Chat ID) (可选)",
|
||||
"default_recipient_chat_id_used_when_the_notification_248a34c6": "默认的消息接收 Chat ID。如果通知事件中未配置 targets,将推送到此 ID",
|
||||
"deleted_d_notification_history_records_cutoff_s_ca03970f": "成功删除 %d 条历史推送记录 (截止时间: %s)",
|
||||
"deleted_successfully_5223f91b": "删除成功",
|
||||
"deliver_notifications_through_a_feishu_group_bot_webhook_c851f7b2": "配置飞书群自定义机器人的 Webhook 接口投递。",
|
||||
"deployment_archive_at_the_url_exceeds_the_size_51b0e2ec": "链接指向的部署包超过大小限制",
|
||||
"deployment_source_saved_but_the_initial_check_could_a4d74ed9": "部署源已保存,但首次检查任务入队失败,请稍后手动检查",
|
||||
"destination_email_address_bb129242": "接收邮件的目标邮箱地址",
|
||||
"development_builds_do_not_support_automatic_updates_bb3a2946": "开发版本无法执行自动升级",
|
||||
"discovery_registration_response_is_missing_node_id_or_4823814c": "discovery register response 缺少 node_id 或 agent_token",
|
||||
"dispatch_automatic_update_dispatched_source_id_d_execution_72ffca53": "[dispatch] 已投递自动更新:source_id=%d execution_id=%s revision=%s",
|
||||
"dispatch_system_notifications_asynchronously_across_multiple_channels_0c5c685b": "异步执行系统通知的多渠道派发与推送",
|
||||
"dns_account_parameters_are_incomplete_fbcb0fad": "DNS 账号参数不完整",
|
||||
"documents_2687ccdb": "文档",
|
||||
"domain_already_exists_a59a13de": "域名已存在",
|
||||
"domain_does_not_belong_to_this_zone_bb1bc93f": "域名不属于该 Zone",
|
||||
"domain_is_bound_to_a_proxy_route_remove_ad0a62b7": "域名已绑定反代路由,请先解除绑定",
|
||||
"domain_name_must_not_be_empty_60a8eab8": "域名不能为空",
|
||||
"domain_synchronization_failed_domain_s_member_id_d_31ec4ac5": "域名同步失败: domain=%s member_id=%d error=%v",
|
||||
"domain_synchronization_failed_member_id_d_error_v_36d3d285": "域名同步失败: member_id=%d error=%v",
|
||||
"domain_synchronization_succeeded_domain_s_desired_target_s_18cedff2": "域名同步成功: domain=%s desired_target=%s proxied=%v group=%s target_mode=%s",
|
||||
"domain_synchronization_succeeded_member_id_d_2906410a": "域名同步成功: member_id=%d",
|
||||
"domain_was_not_found_e3b18d21": "域名不存在",
|
||||
"download_downloading_github_release_asset_repo_s_asset_f3760632": "[download] 正在下载 GitHub Release asset:repo=%s asset=%s",
|
||||
"download_fetching_remote_deployment_archive_9c58137d": "[download] 正在获取远程部署包",
|
||||
"duplicate_edge_id_s_59427f0d": "边 ID %s 重复",
|
||||
"duplicate_node_id_s_6f7764f9": "节点 ID %s 重复",
|
||||
"edge_id_must_not_be_empty_049cfbf2": "边 ID 不能为空",
|
||||
"edge_s_references_missing_source_node_s_b14a641b": "边 %s 的源节点 %s 不存在",
|
||||
"edge_s_references_missing_target_node_s_f38f63a4": "边 %s 的目标节点 %s 不存在",
|
||||
"edge_s_source_port_s_is_not_valid_445c7518": "边 %s 的源端口 %s 不适用于节点 %s",
|
||||
"email_address_is_already_registered_ca59e824": "该邮箱已被注册",
|
||||
"email_address_is_already_registered_f861225c": "邮箱已被注册",
|
||||
"email_address_must_not_be_empty_28e55875": "邮箱不能为空",
|
||||
"email_address_must_not_be_empty_2e477cb1": "邮箱地址不能为空",
|
||||
"email_address_or_verification_code_is_missing_2b477d98": "邮箱或验证码未填写",
|
||||
"email_body_db38bae9": "邮件内容 (Body)",
|
||||
"email_notification_channel_70b4e93c": "邮件推送通道",
|
||||
"email_notifications_use_the_global_smtp_settings_no_9b002fd1": "邮件推送通道直接使用系统全局 SMTP 设置进行发送,无需在此填写服务器配置。",
|
||||
"email_sent_successfully_to_38e67ca0": "邮件成功发送至: ",
|
||||
"email_subject_98a8f04e": "邮件主题 (Subject)",
|
||||
"enter_a_cloudflare_api_token_00262e30": "请填写 Cloudflare API Token",
|
||||
"enter_a_valid_json_request_body_template_variables_34eba3ef": "在此输入请求体,支持模板变量,必须为合法的 JSON 格式",
|
||||
"enter_the_certificate_id_f0f6ff01": "请输入证书 ID",
|
||||
"enter_the_cloudflare_target_group_id_830db5d3": "请输入 Cloudflare 指向分组 ID",
|
||||
"enter_the_cloudflare_target_member_id_4a062db8": "请输入 Cloudflare 指向成员 ID",
|
||||
"enter_the_complete_request_url_using_https_08ac14d8": "在此填写完整的请求地址,必须使用 HTTPS 协议",
|
||||
"enter_the_deployment_archive_download_url_2fe91a17": "请填写部署包下载链接",
|
||||
"enter_the_email_body_html_is_supported_ca9985b5": "请输入邮件内容(支持 HTML 格式)",
|
||||
"enter_the_email_subject_852e1d02": "请输入邮件主题",
|
||||
"enter_the_secret_if_signature_verification_is_enabled_fd5f494e": "可选,若机器人启用了安全设置中的签名校验,请在此输入",
|
||||
"enter_the_telegram_bot_token_dcc672a5": "在此输入 Telegram 机器人的 Bot Token",
|
||||
"enter_username_e4435775": "请输入用户名: ",
|
||||
"error_user_s_was_not_found_81b9b991": "错误: 用户 '%s' 不存在\n",
|
||||
"event_key_2f70299f": "事件标识",
|
||||
"executor_is_not_configured_5d41479d": "executor 未配置",
|
||||
"existing_files_were_found_use_the_storage_migration_e099a954": "存在存量文件,请通过存储迁移任务切换存储引擎",
|
||||
"expression_in_automatic_rule_d_must_not_be_f696189a": "自动规则 %d 的 Expr 表达式不能为空",
|
||||
"external_account_binding_information_is_incomplete_180d928a": "外部账号绑定信息不完整",
|
||||
"extracted_executable_exceeds_the_size_limit_9461c1e6": "解压后的程序文件超过大小限制",
|
||||
"extracted_pages_deployment_exceeds_the_size_limit_4cbef66f": "pages 部署包展开后体积超过限制",
|
||||
"failed_to_back_up_current_executable_w_3addff1b": "备份当前程序失败: %w",
|
||||
"failed_to_bind_parameters_5c410c6f": "参数绑定失败",
|
||||
"failed_to_bind_parameters_provide_a_valid_array_b77c7672": "参数绑定失败,请传入有效的文件 ID 数组",
|
||||
"failed_to_check_existing_files_w_a851b86d": "检查存量文件失败: %w",
|
||||
"failed_to_clean_up_expired_logs_v_e8791024": "清理过期日志失败: %v",
|
||||
"failed_to_clean_up_github_release_temporary_file_00bf359d": "GitHub Release 临时文件清理失败",
|
||||
"failed_to_clean_up_remote_source_temporary_file_d721acd8": "清理远程来源临时文件失败",
|
||||
"failed_to_clean_up_task_execution_logs_v_376be8e5": "清理任务执行日志失败: %v",
|
||||
"failed_to_clean_up_upload_id_d_v_cf2710b1": "清理上传文件失败 [ID:%d]: %v",
|
||||
"failed_to_clear_target_access_logs_w_9ff48e23": "清空目标访问日志失败: %w",
|
||||
"failed_to_clear_target_user_access_logs_w_d7c2ad8c": "清空目标用户访问日志失败: %w",
|
||||
"failed_to_close_update_archive_w_0a42c60e": "关闭升级归档失败: %w",
|
||||
"failed_to_compile_waf_rule_s_w_4392b9dc": "WAF 规则 %s 编译失败: %w",
|
||||
"failed_to_copy_s_w_b0890ed6": "复制 %s 失败: %w",
|
||||
"failed_to_count_active_uploads_v_eccd0ce3": "统计活跃上传记录失败: %v",
|
||||
"failed_to_count_notification_history_for_cleanup_v_87bcd35d": "统计待清理的历史推送记录失败: %v",
|
||||
"failed_to_count_tokens_please_try_again_later_d6be07bb": "查询令牌数量失败,请稍后再试",
|
||||
"failed_to_create_retry_execution_record_w_250258f4": "创建重试任务执行记录失败: %w",
|
||||
"failed_to_create_task_execution_record_w_7bafae3b": "创建任务执行记录失败: %w",
|
||||
"failed_to_create_token_please_try_again_later_268e7466": "创建令牌失败,请稍后再试",
|
||||
"failed_to_create_update_archive_w_0e1ae531": "创建升级归档失败: %w",
|
||||
"failed_to_create_update_directory_w_f3414e06": "创建升级目录失败: %w",
|
||||
"failed_to_create_update_download_request_w_ca826654": "创建升级下载请求失败: %w",
|
||||
"failed_to_create_update_request_92de6fa7": "创建更新请求失败",
|
||||
"failed_to_create_user_fe2017cc": "创建用户失败",
|
||||
"failed_to_delete_cloudflare_dns_record_905df10a": "删除 Cloudflare DNS 记录失败",
|
||||
"failed_to_delete_file_485d2b67": "删除文件失败",
|
||||
"failed_to_delete_notification_history_v_4308a791": "删除历史推送记录失败: %v",
|
||||
"failed_to_delete_schedule_82d7ea83": "删除定时任务失败",
|
||||
"failed_to_delete_token_please_try_again_later_8a65e358": "删除令牌失败,请稍后再试",
|
||||
"failed_to_delete_user_7cf04bd0": "删除用户失败",
|
||||
"failed_to_dispatch_task_40f01141": "任务下发失败",
|
||||
"failed_to_download_deployment_archive_from_url_ece95602": "从链接下载部署包失败",
|
||||
"failed_to_download_github_release_asset_445f42e6": "GitHub Release asset 下载失败",
|
||||
"failed_to_download_subscription_w_73516643": "下载订阅失败: %w",
|
||||
"failed_to_download_update_asset_http_d_8bfeec63": "下载升级资产失败: HTTP %d",
|
||||
"failed_to_download_update_asset_w_15a3a529": "下载升级资产失败: %w",
|
||||
"failed_to_drain_log_write_queue_w_a0166ebc": "排空日志写入队列失败: %w",
|
||||
"failed_to_encrypt_password_v_92ab4495": "加密密码失败: %v\n",
|
||||
"failed_to_enqueue_pages_deployment_source_task_821d3915": "pages 部署源任务入队失败",
|
||||
"failed_to_enqueue_retry_task_w_2c39873e": "重试任务入队失败: %w",
|
||||
"failed_to_enqueue_retry_v_5d869929": "重试入队失败: %v",
|
||||
"failed_to_enqueue_task_v_a7c1aed2": "入队失败: %v",
|
||||
"failed_to_enqueue_task_w_9e65a379": "任务入队失败: %w",
|
||||
"failed_to_enqueue_verification_email_task_please_try_ac66b52f": "投递验证邮件发送任务失败,请重试",
|
||||
"failed_to_execute_automatic_rule_w_2271cde6": "执行自动规则失败: %w",
|
||||
"failed_to_extract_update_asset_w_692981b3": "解压升级资产失败: %w",
|
||||
"failed_to_fetch_upstream_version_e19bb5de": "获取上游版本失败",
|
||||
"failed_to_generate_random_password_v_f0fea5b7": "生成随机密码失败: %v\n",
|
||||
"failed_to_generate_token_c78757e3": "生成令牌失败",
|
||||
"failed_to_generate_verification_code_please_try_again_d83752a4": "生成验证码失败,请重试",
|
||||
"failed_to_get_certificate_record_id_d_v_6d59f24e": "获取证书记录失败 ID=%d: %v",
|
||||
"failed_to_get_certificate_record_w_214148cd": "获取证书记录失败: %w",
|
||||
"failed_to_get_latest_version_w_fca8b7de": "获取最新版本失败: %w",
|
||||
"failed_to_get_log_database_status_da58b757": "获取日志库状态失败",
|
||||
"failed_to_get_preview_version_w_d61ed476": "获取 preview 版本失败: %w",
|
||||
"failed_to_get_specified_version_w_63e83abe": "获取指定版本失败: %w",
|
||||
"failed_to_get_token_list_please_try_again_96e34095": "获取令牌列表失败,请稍后再试",
|
||||
"failed_to_get_user_list_27ad5285": "获取用户列表失败",
|
||||
"failed_to_initialize_log_database_configuration_w_adfaefb2": "初始化日志主库配置失败: %w",
|
||||
"failed_to_initialize_log_storage_20fdb546": "日志存储初始化失败",
|
||||
"failed_to_initialize_system_options_783dd4ca": "系统选项初始化失败",
|
||||
"failed_to_initialize_test_storage_instance_w_e45afe79": "初始化测试存储实例失败: %w",
|
||||
"failed_to_list_s_members_name_s_id_fa26680a": "列出%s成员失败: name=%s id=%d error=%v",
|
||||
"failed_to_load_active_node_group_s_active_4064ae7a": "加载生效节点失败: group=%s active_node_id=%d error=%v",
|
||||
"failed_to_load_group_group_id_d_error_af85458e": "加载分组失败: group_id=%d error=%v",
|
||||
"failed_to_load_member_context_member_id_d_5dba6ac0": "加载成员上下文失败: member_id=%d error=%v",
|
||||
"failed_to_load_node_node_id_d_error_e404b970": "加载节点失败: node_id=%d error=%v",
|
||||
"failed_to_locate_current_executable_w_8e100f0b": "定位当前程序失败: %w",
|
||||
"failed_to_migrate_zone_d_conflicts_w_fd8934cb": "迁移 Zone 失败(%d 个冲突): %w",
|
||||
"failed_to_open_file_756f4b8e": "打开文件失败",
|
||||
"failed_to_parse_current_storage_configuration_w_6eb179f7": "解析当前存储配置失败: %w",
|
||||
"failed_to_parse_directory_display_configuration_w_b45c310f": "解析目录显示配置失败: %w",
|
||||
"failed_to_parse_email_parameters_v_2d5f065f": "解析邮件发送参数失败: %v",
|
||||
"failed_to_parse_email_parameters_w_0af9b984": "解析邮件发送参数失败: %w",
|
||||
"failed_to_parse_image_cache_warmup_parameters_w_80cc27e9": "解析图片缓存预热参数失败: %w",
|
||||
"failed_to_parse_json_subscription_w_7171f213": "JSON 订阅解析失败: %w",
|
||||
"failed_to_parse_notification_parameters_v_7c7c0d1a": "解析推送参数失败: %v",
|
||||
"failed_to_parse_parameters_w_d098976c": "参数解析失败: %w",
|
||||
"failed_to_parse_preview_version_information_8c63f444": "解析 preview 版本信息失败",
|
||||
"failed_to_parse_target_storage_configuration_w_dedc816a": "解析目标存储配置失败: %w",
|
||||
"failed_to_parse_version_information_9f1ec272": "解析版本信息失败",
|
||||
"failed_to_precreate_target_postgresql_partitions_w_97bd4df9": "预建目标 PG 分区失败: %w",
|
||||
"failed_to_process_file_9a1e91ff": "处理文件失败",
|
||||
"failed_to_process_image_id_d_v_f89e5f9a": "图片处理失败 [ID:%d]: %v",
|
||||
"failed_to_query_access_trends_740f8684": "查询访问趋势失败: ",
|
||||
"failed_to_query_active_users_d78284d9": "查询活跃用户失败: ",
|
||||
"failed_to_query_browser_distribution_483ef559": "查询浏览器分布失败: ",
|
||||
"failed_to_query_file_count_b2b5322f": "查询文件数量失败",
|
||||
"failed_to_query_file_list_a50606c2": "查询文件列表失败",
|
||||
"failed_to_query_file_record_f2d055b2": "查询文件记录失败",
|
||||
"failed_to_query_image_upload_records_v_72a8a849": "查询图片上传记录失败: %v",
|
||||
"failed_to_query_images_for_cache_warmup_w_daee6ed8": "查询待预热图片失败: %w",
|
||||
"failed_to_query_unused_uploads_v_4b22bf86": "查询未使用的上传文件失败: %v",
|
||||
"failed_to_query_unused_uploads_w_915f2d8f": "查询未使用的上传文件失败: %w",
|
||||
"failed_to_query_user_information_w_612e6300": "查询用户信息失败: %w",
|
||||
"failed_to_query_user_v_31dc6f02": "查询用户失败: %v\n",
|
||||
"failed_to_read_aggregate_statistics_v_1fafe12a": "读取总量统计失败: %v",
|
||||
"failed_to_read_log_database_configuration_w_8d46eff5": "读取日志主库配置失败: %w",
|
||||
"failed_to_read_log_database_v_f6136632": "读取日志主库失败: %v",
|
||||
"failed_to_read_log_database_w_0502e3ef": "读取日志主库失败: %w",
|
||||
"failed_to_read_source_access_log_time_range_d9667403": "读取源访问日志时间范围失败: %w",
|
||||
"failed_to_read_source_user_access_log_time_691f3bb2": "读取源用户访问日志时间范围失败: %w",
|
||||
"failed_to_read_subscription_content_w_e3665864": "读取订阅内容失败: %w",
|
||||
"failed_to_read_username_v_f5ab6d40": "读取用户名失败: %v\n",
|
||||
"failed_to_rebuild_file_storage_statistics_v_3a12ad55": "重算文件存储统计失败: %v",
|
||||
"failed_to_remove_previous_backup_w_9f9ce6cb": "删除旧备份失败: %w",
|
||||
"failed_to_render_verification_email_template_w_6191557f": "渲染验证邮件模板失败:%w",
|
||||
"failed_to_replace_current_executable_w_a286fcde": "替换当前程序失败: %w",
|
||||
"failed_to_reset_password_v_628117ce": "重置密码失败: %v\n",
|
||||
"failed_to_resolve_current_executable_path_w_fd2316e8": "解析当前程序路径失败: %w",
|
||||
"failed_to_resolve_github_release_request_target_4f4e6fdc": "GitHub Release 请求目标解析失败",
|
||||
"failed_to_retrieve_file_records_fd17cc6c": "检索文件记录失败",
|
||||
"failed_to_retry_task_147b8518": "任务重试失败",
|
||||
"failed_to_revoke_access_token_please_try_again_d969614c": "吊销 Access Token 失败,请稍后再试",
|
||||
"failed_to_rotate_token_please_try_again_later_59dc9b53": "轮换令牌失败,请稍后再试",
|
||||
"failed_to_save_file_66b12cc8": "保存文件失败",
|
||||
"failed_to_save_schedule_ceb33e03": "保存定时任务失败",
|
||||
"failed_to_save_upload_record_e5b8160e": "保存上传记录失败",
|
||||
"failed_to_send_email_v_36c06c07": "邮件发送失败: %v",
|
||||
"failed_to_send_email_w_b705989e": "发送邮件失败: %w",
|
||||
"failed_to_send_notification_title_s_v_360fc6f5": "消息推送失败 (标题: %s): %v",
|
||||
"failed_to_serialize_storage_configuration_w_f9ccaed4": "序列化存储配置失败: %w",
|
||||
"failed_to_set_executable_permissions_w_42a54b5d": "设置程序执行权限失败: %w",
|
||||
"failed_to_update_file_record_dabd703b": "更新文件记录失败",
|
||||
"failed_to_update_last_login_time_please_try_97d1603d": "更新登录时间失败,请稍后再试",
|
||||
"failed_to_update_password_please_try_again_later_fb9d6cde": "更新密码失败,请稍后再试",
|
||||
"failed_to_update_user_information_b39e7d62": "更新用户信息失败",
|
||||
"failed_to_update_user_status_6fdd94ea": "更新用户状态失败",
|
||||
"failed_to_validate_storage_parameters_w_4193c860": "验证存储配置参数失败: %w",
|
||||
"failed_to_validate_target_storage_parameters_w_103ef6e7": "验证目标存储配置参数失败: %w",
|
||||
"failed_to_write_notification_audit_history_v_b1891968": "写入推送历史审计记录失败: %v",
|
||||
"failed_to_write_target_access_logs_batch_d_47059872": "写入目标访问日志失败(批 %d): %w",
|
||||
"failed_to_write_target_user_access_logs_batch_9571e74b": "写入目标用户访问日志失败(批 %d): %w",
|
||||
"failed_to_write_update_archive_w_c5f4d1ca": "写入升级归档失败: %w",
|
||||
"feishu_group_bot_de2e961b": "飞书群机器人",
|
||||
"fetched_migration_batch_requested_size_d_actual_objects_b53f700f": "获取当前批次迁移对象,批次大小: %d,实际获取对象数: %d",
|
||||
"file_content_does_not_match_its_extension_and_7033268f": "文件内容与扩展名不匹配,可能包含安全风险",
|
||||
"file_record_was_not_found_a4f4b1ab": "文件记录未找到",
|
||||
"file_size_must_not_exceed_32_mb_9fef6c20": "文件大小不能超过 32MB",
|
||||
"file_storage_backend_and_connection_configuration_json_2ee5f58c": "文件存储驱动及连接配置(JSON)",
|
||||
"file_storage_statistics_rebuilt_d_active_records_d_4576eca3": "文件存储统计重算完成,活跃记录 %d 条,统计文件数 %d,总大小 %d 字节",
|
||||
"file_validation_failed_076673fd": "文件校验失败",
|
||||
"file_was_not_found_b5877462": "文件未找到",
|
||||
"fold_minutes_must_be_3_or_5_740e118a": "fold_minutes 仅支持 3 或 5",
|
||||
"for_example_100123456789_or_channel_name_8e18bf43": "例如 -100123456789 或 @channel_name",
|
||||
"found_d_uploads_to_clean_up_in_this_a86fa63c": "本批次找到 %d 个需要清理的上传文件",
|
||||
"geoip_lookup_is_disabled_ed78d892": "GeoIP 查询已禁用",
|
||||
"geolocation_provider_must_be_disabled_mmdb_ip_api_08bc0f62": "归属方式仅支持 disabled、mmdb、ip-api、geojs、ipinfo",
|
||||
"github_latest_check_interval_must_be_between_5_2470787a": "GitHub latest 检查间隔必须在 5 到 1440 分钟之间",
|
||||
"github_release_asset_digest_is_invalid_or_verification_7baba33c": "GitHub Release asset digest 无效或校验失败",
|
||||
"github_release_asset_digest_verification_failed_98f540bd": "GitHub Release 资源摘要校验失败",
|
||||
"github_release_asset_exceeds_the_size_limit_33eb67f0": "GitHub Release asset 超过大小限制",
|
||||
"github_release_asset_is_empty_5a6a9b0a": "GitHub Release asset 内容为空",
|
||||
"github_release_asset_name_must_be_a_safe_ee1a4e4e": "GitHub Release 资源名称必须是安全的文件名",
|
||||
"github_release_asset_redirect_limit_exceeded_da3dd30b": "GitHub Release asset 重定向次数过多",
|
||||
"github_release_check_completed_947726e7": "GitHub Release 检查完成",
|
||||
"github_release_check_completed_content_is_unchanged_dbcf8dc0": "GitHub Release 检查完成,内容未变化",
|
||||
"github_release_request_failed_e37d72ea": "GitHub Release 请求失败",
|
||||
"github_release_request_target_is_not_a_public_80de5fc7": "GitHub Release 请求目标不是公网地址",
|
||||
"github_release_sources_must_not_include_remote_url_84826183": "GitHub Release 来源不能包含远程地址配置",
|
||||
"github_returned_an_unexpected_status_s_30454efa": "GitHub 返回异常状态: %s",
|
||||
"global_rule_group_03239b06": "全局规则组",
|
||||
"global_waf_rule_cannot_be_deleted_031e6c8d": "全局 WAF 规则不能删除",
|
||||
"global_waf_rule_groups_do_not_require_manual_5cc46cb1": "全局 WAF 规则组不需要手动绑定",
|
||||
"group_399ee693": "分组",
|
||||
"group_id_4acad7d2": "分组 ID",
|
||||
"group_id_must_be_nonzero_caa5a675": "分组 ID 不能为空或零",
|
||||
"group_name_must_not_be_empty_7b33c238": "分组名称不能为空",
|
||||
"group_primary_key_in_the_of_cf_pointing_34d94c54": "of_cf_pointing_groups 表中的分组主键 ID",
|
||||
"historical_authentication_source_299cdda4": "历史认证源",
|
||||
"hours_f8af2637": " 小时 ",
|
||||
"https_api_base_url_defaults_to_https_api_84cf7d41": "接口请求的 HTTPS 基础地址,留空默认为 https://api.telegram.org",
|
||||
"id_of_the_tls_certificate_to_renew_2e6077c7": "待续期的 TLS 证书 ID",
|
||||
"id_token_verification_failed_21582415": "ID Token 验证失败",
|
||||
"if_specified_this_must_be_valid_feishu_card_1541edd3": "若填写,必须是合法的飞书卡片 JSON 格式",
|
||||
"image_cache_warmup_completed_processed_d_generated_d_9553c957": "图片缓存预热完成,共处理 %d 张,生成 %d 张,命中 %d 张,失败 %d 张",
|
||||
"image_cache_warmup_parameters_must_not_be_empty_59ff5906": "图片缓存预热参数不能为空",
|
||||
"image_quality_0ab5629b": "图片质量",
|
||||
"image_quality_must_be_low_medium_or_high_3d699272": "图片质量仅支持 low、medium、high",
|
||||
"images_d24c10d3": "图片",
|
||||
"incorrect_username_or_password_a9a6a83a": "用户名或密码错误",
|
||||
"ingest_saving_github_release_deployment_archive_04bc7ee9": "[ingest] 正在保存 GitHub Release 部署包",
|
||||
"ingest_saving_managed_deployment_archive_ab0eb22f": "[ingest] 正在保存受管部署包",
|
||||
"initialize_test_e2279a66": "初始化测试",
|
||||
"internal_server_error_03654907": "服务器内部错误",
|
||||
"internal_server_error_cc540d22": "内部服务器错误",
|
||||
"internal_system_error_2216034c": "内部系统错误",
|
||||
"invalid_access_mode_parameter_f4f87024": "无效的 access_mode 参数",
|
||||
"invalid_account_binding_id_47be930f": "绑定记录 ID 无效",
|
||||
"invalid_authentication_source_id_8d95b39c": "认证源 ID 无效",
|
||||
"invalid_cache_rules_for_route_s_0b419f3f": "路由 %s 缓存规则无效",
|
||||
"invalid_certificate_pem_content_82644642": "证书 PEM 内容不合法",
|
||||
"invalid_cloudflare_connection_source_0f6d01bb": "无效的 Cloudflare 连接来源",
|
||||
"invalid_cloudflare_failover_check_parameters_w_ef353c9b": "无效的 Cloudflare 故障回退检查参数: %w",
|
||||
"invalid_cloudflare_group_synchronization_parameters_w_545b7a80": "无效的 Cloudflare 分组同步参数: %w",
|
||||
"invalid_cloudflare_member_synchronization_parameters_w_43aa2390": "无效的 Cloudflare 成员同步参数: %w",
|
||||
"invalid_cloudflare_node_synchronization_parameters_3f4794f4": "无效的 Cloudflare 节点同步参数",
|
||||
"invalid_configuration_for_node_s_w_86c7c706": "节点 %s 的配置无效: %w",
|
||||
"invalid_configuration_snapshot_format_6ecb7b3c": "配置快照格式无效",
|
||||
"invalid_cron_expression_df504099": "无效的 Cron 表达式",
|
||||
"invalid_cursor_parameter_315ceadf": "无效的 cursor 参数",
|
||||
"invalid_custom_request_headers_for_route_s_705aeb8a": "路由 %s 自定义请求头无效",
|
||||
"invalid_custom_user_agent_pattern_in_node_s_6a73d813": "节点 %s 的自定义 UA 正则无效: %s",
|
||||
"invalid_deployment_archive_url_only_http_and_https_23d257c7": "部署包下载链接无效,仅支持 http/https",
|
||||
"invalid_discovery_token_980df46c": "discovery Token 无效",
|
||||
"invalid_dns_record_value_check_the_domain_name_eb1b034a": "DNS 记录值无效,请检查域名或 IP 地址",
|
||||
"invalid_domain_name_format_614e6afb": "域名格式不合法",
|
||||
"invalid_email_address_format_4e992d96": "邮箱格式不正确",
|
||||
"invalid_expression_in_automatic_rule_s_w_a9ea3421": "自动规则 %s Expr 无效: %w",
|
||||
"invalid_file_id_619affa0": "无效的文件 ID",
|
||||
"invalid_github_release_asset_digest_format_3e38c702": "GitHub Release 资源摘要格式无效",
|
||||
"invalid_github_release_metadata_response_190ecf90": "GitHub Release 元数据响应无效",
|
||||
"invalid_github_release_request_parameters_4ceabd70": "GitHub Release 请求参数无效",
|
||||
"invalid_github_release_selection_mode_d644ae98": "GitHub Release 选择方式无效",
|
||||
"invalid_github_repository_url_use_https_github_com_4a255a79": "GitHub 仓库地址无效,仅支持 https://github.com/{owner}/{repo}",
|
||||
"invalid_graph_data_for_waf_rule_s_w_529ff00b": "WAF 规则 %s 的图数据无效: %w",
|
||||
"invalid_graph_for_waf_rule_s_w_8a87d07b": "WAF 规则 %s 的图无效: %w",
|
||||
"invalid_historical_version_snapshot_format_0424b7b0": "历史版本快照格式不合法",
|
||||
"invalid_id_c0d026c8": "无效的 ID",
|
||||
"invalid_id_value_s_2be5b057": "无效的 ID 值: %s",
|
||||
"invalid_image_cache_warmup_parameters_v_94273376": "图片缓存预热参数无效: %v",
|
||||
"invalid_image_cache_warmup_parameters_w_285d734c": "图片缓存预热参数格式无效: %w",
|
||||
"invalid_ip_address_format_c6084aa5": "ip 格式无效",
|
||||
"invalid_ip_address_format_f988e58e": "IP 格式无效",
|
||||
"invalid_ip_group_type_2c9b1982": "IP 组类型无效",
|
||||
"invalid_ip_match_configuration_in_active_waf_rule_9acb007b": "活动配置 WAF 规则 %d 节点 %s 的 IP 匹配配置无效: %w",
|
||||
"invalid_json_format_w_be1f4f8e": "无效的 JSON 格式: %w",
|
||||
"invalid_login_request_f39483be": "非法登录请求",
|
||||
"invalid_lookback_format_use_a_duration_such_as_63f37246": "lookback 格式不合法,请使用 60m、1h 等时长",
|
||||
"invalid_lookback_minutes_w_d9589ae4": "lookback_minutes 无效: %w",
|
||||
"invalid_metadata_json_format_59d64290": "元数据 JSON 格式不合法",
|
||||
"invalid_node_ip_address_format_6101324f": "节点 IP 格式无效",
|
||||
"invalid_origin_address_format_0f1c1a36": "源站地址格式不合法",
|
||||
"invalid_pages_configuration_for_route_s_active_pages_8a53c746": "路由 %s Pages 配置无效: pages 激活部署不匹配",
|
||||
"invalid_pages_configuration_for_route_s_active_pages_bc33eb91": "路由 %s Pages 配置无效: pages 激活部署不存在",
|
||||
"invalid_pages_configuration_for_route_s_no_pages_f8128192": "路由 %s Pages 配置无效: 未绑定 Pages 项目",
|
||||
"invalid_pages_configuration_for_route_s_pages_deployment_296fe10f": "路由 %s Pages 配置无效: pages 部署校验和缺失",
|
||||
"invalid_pages_configuration_for_route_s_pages_module_52fe9ed1": "路由 %s Pages 配置无效: pages 模块不可用",
|
||||
"invalid_pages_configuration_for_route_s_pages_project_10fdf9a7": "路由 %s Pages 配置无效: pages 项目未启用",
|
||||
"invalid_pages_configuration_for_route_s_pages_project_146a248a": "路由 %s Pages 配置无效: pages 项目没有激活部署",
|
||||
"invalid_pages_configuration_for_route_s_pages_project_b6dacd48": "路由 %s Pages 配置无效: pages 项目不存在",
|
||||
"invalid_pages_configuration_for_route_s_w_e055a8aa": "路由 %s Pages 配置无效: %w",
|
||||
"invalid_pages_configuration_missing_pages_project_id_644ff7ea": "pages 配置无效: 缺少 pages_project_id",
|
||||
"invalid_pages_deployment_source_task_parameters_329e38dc": "pages 部署源任务参数无效",
|
||||
"invalid_pages_entry_file_w_dd997325": "pages 入口文件不合法: %w",
|
||||
"invalid_pages_root_directory_w_288d75ab": "pages 根目录不合法: %w",
|
||||
"invalid_pages_route_configuration_6e3033f8": "pages 路由配置无效",
|
||||
"invalid_parameters_68abb8d5": "无效的参数",
|
||||
"invalid_parameters_889c2534": "参数错误",
|
||||
"invalid_port_format_301a25e5": "端口格式不合法",
|
||||
"invalid_release_asset_size_d_71275aec": "release 资产大小无效: %d",
|
||||
"invalid_remote_archive_url_use_http_https_without_cec74305": "远程部署包地址无效,仅支持不含用户信息和片段的 http/https 地址",
|
||||
"invalid_remote_source_archive_size_limit_ed9a749a": "远程来源部署包大小限制无效",
|
||||
"invalid_request_rate_use_a_rate_such_as_7d899f0e": "请求频率格式不合法,请使用类似 10r/s、100r/m,或 -1 禁用",
|
||||
"invalid_rule_graph_w_51b132a5": "规则图无效: %w",
|
||||
"invalid_s_format_use_512k_1m_or_a_7ae562cc": "%s 格式不合法,请使用 512k、1m 或纯数字,空表示关闭",
|
||||
"invalid_s_format_use_a_rate_such_as_285ef3fc": "%s 格式不合法,请输入类似 10r/s、100r/m,或留空关闭",
|
||||
"invalid_schedule_id_5439796e": "无效的定时任务ID",
|
||||
"invalid_since_timestamp_rfc3339_is_required_e4d815e5": "since 时间格式无效,需为 RFC3339",
|
||||
"invalid_smtp_configuration_use_a_temporary_code_to_707c19c2": "smtp 配置无效,使用临时码登录",
|
||||
"invalid_spa_fallback_path_65e9fab1": "spa fallback 回退路径不合法",
|
||||
"invalid_status_code_range_s_ea6a6bba": "无效状态码区间: %s",
|
||||
"invalid_status_code_s_5fcf3c49": "无效状态码: %s",
|
||||
"invalid_subscription_url_5e4fd4ef": "订阅 URL 无效",
|
||||
"invalid_target_log_database_s_f49a2783": "目标日志库不合法: %s",
|
||||
"invalid_task_execution_id_6a0914c6": "无效的任务执行记录 ID",
|
||||
"invalid_task_type_42c573e7": "无效的任务类型",
|
||||
"invalid_time_range_205ddcad": "无效的时间范围",
|
||||
"invalid_time_range_select_24h_7d_or_30d_7315b848": "时间范围无效,请选择 24h、7d 或 30d",
|
||||
"invalid_token_id_6493bfb3": "无效的令牌ID",
|
||||
"invalid_until_timestamp_rfc3339_is_required_ff8c418e": "until 时间格式无效,需为 RFC3339",
|
||||
"invalid_upload_id_5af291c3": "无效的上传ID",
|
||||
"invalid_upstream_configuration_for_route_s_868edc8c": "路由 %s 上游配置无效",
|
||||
"invalid_upstream_repository_url_1865af39": "上游仓库地址无效",
|
||||
"invalid_upstream_version_response_fa50f23a": "上游版本响应无效",
|
||||
"invalid_version_identifier_31e5ed95": "无效的版本号",
|
||||
"ip_address_must_not_be_empty_4272c9f3": "IP 不能为空",
|
||||
"ip_group_d_was_not_found_7b101cd1": "IP 组 %d 不存在",
|
||||
"ip_group_is_referenced_by_waf_rules_remove_bd6b2cb2": "IP 组已被 WAF 规则引用,请先移除引用",
|
||||
"ip_group_name_must_not_be_empty_56680071": "IP 组名称不能为空",
|
||||
"ip_group_was_not_found_21fa23de": "IP 组不存在",
|
||||
"ip_must_not_be_empty_fe4591d4": "ip 不能为空",
|
||||
"json_mapping_rule_q_did_not_match_any_feb34054": "JSON 映射规则 %q 未匹配到内容",
|
||||
"latitude_must_be_between_90_and_90_0b929ed3": "纬度必须在 -90 到 90 之间",
|
||||
"leave_empty_to_use_the_built_in_interactive_1817bda4": "可选,留空则默认使用系统内置的精美互动卡片",
|
||||
"less_than_d_minutes_since_the_last_synchronization_7e3c8aac": "距上次同步不足 %d 分钟,跳过执行",
|
||||
"log_cleanup_completed_access_log_retention_d_days_c0f19eea": "日志清理完成:访问日志保留 %d 天,性能指标保留 %d 天,删除 %d 条",
|
||||
"log_database_configuration_is_empty_2cf975c3": "日志主库配置为空",
|
||||
"log_database_switched_from_s_to_s_32746f98": "日志数据库已从 %s 切换为 %s",
|
||||
"log_database_switched_to_s_writes_resumed_66f1d3fc": "日志数据库已切换为 %s,写入恢复",
|
||||
"log_storage_is_disabled_access_logs_cannot_be_4f3d313d": "日志存储未启用,无法检索访问日志",
|
||||
"log_storage_is_disabled_analytics_are_unavailable_2633ef1d": "日志存储未启用,无法获取分析数据",
|
||||
"longitude_must_be_between_180_and_180_3b3f5968": "经度必须在 -180 到 180 之间",
|
||||
"lookback_must_be_a_whole_number_of_minutes_bd7a069b": "lookback 数值必须为整数分钟",
|
||||
"lookback_window_must_not_exceed_s_ec8227f8": "回看窗口不能超过 %s",
|
||||
"lua_directory_must_not_be_empty_73c45ce8": "lua dir 不能为空",
|
||||
"lua_file_path_must_not_be_empty_ad5ec475": "lua file path 不能为空",
|
||||
"main_configuration_path_must_not_be_empty_4257a895": "main config path 不能为空",
|
||||
"match_mode_for_node_s_must_be_and_65944b17": "节点 %s 的匹配模式必须为 and 或 or",
|
||||
"match_path_is_required_when_the_api_reverse_8b41181e": "启用 API 反代时,匹配路径不能为空",
|
||||
"maximum_number_of_access_tokens_reached_3c769ae3": "已达到访问令牌最大创建数量限制",
|
||||
"maximum_retry_8bf02f4c": "已达到最大重试",
|
||||
"maximum_retry_count_d_reached_d961828b": "已达到最大重试次数 %d",
|
||||
"maximum_retry_count_reached_122b9d92": "已达到最大重试次数",
|
||||
"member_id_a4c4a726": "成员 ID",
|
||||
"member_id_must_be_nonzero_dbec6bb1": "成员 ID 不能为空或零",
|
||||
"member_primary_key_in_the_of_cf_pointing_95a864b8": "of_cf_pointing_members 表中的成员主键 ID",
|
||||
"migrate_file_storage_f03b672a": "迁移文件存储",
|
||||
"migrate_files_from_active_storage_to_the_target_89752f95": "将活动存储中的文件迁移到待切换的目标存储,迁移期间文件系统保持只读",
|
||||
"migration_skipped_identical_file_already_exists_in_target_729b4c99": "[跳过迁移] 目标存储已存在相同文件: %s",
|
||||
"migration_started_reading_file_from_source_storage_s_001c53d6": "[迁移开始] 正在从源存储读取文件: %s",
|
||||
"migration_succeeded_file_migration_completed_s_9c0b6a24": "[迁移成功] 文件已完成迁移: %s",
|
||||
"migration_target_postgres_for_a_postgresql_primary_sqlite_a542bb6f": "迁移目标:postgres(主库为 PG 时)、sqlite(主库为 SQLite 时)或 clickhouse",
|
||||
"minutes_c5e1cb2c": " 分钟 ",
|
||||
"missing_agent_token_ad736eb5": "缺少 Agent Token",
|
||||
"missing_certificate_file_eb3adf78": "缺少证书文件",
|
||||
"missing_discovery_token_038af7e9": "缺少 Discovery Token",
|
||||
"missing_pages_deployment_archive_0e2feedd": "缺少 Pages 部署包",
|
||||
"missing_private_key_file_5b2ce6fe": "缺少私钥文件",
|
||||
"missing_release_version_identifier_179171c9": "缺少发布版本号",
|
||||
"mmdb_update_interval_must_be_greater_than_0_7b371ae5": "mmdb_update_interval 必须大于 0",
|
||||
"monitor_scope_must_be_all_or_selected_sites_956be94b": "监控范围必须为全部站点 (all) 或选择站点 (selected)",
|
||||
"months_15e40097": " 个月 ",
|
||||
"multiple_cloudflare_dns_records_have_the_same_name_0487505e": "检测到 Cloudflare 中存在多条同名 DNS 记录,请先手动清理",
|
||||
"must_be_an_integer_dfd6c0ce": "必须为整数",
|
||||
"new_password_generated_randomly_if_omitted_acbf0a56": "新密码(若不指定,则自动生成随机密码)",
|
||||
"new_password_must_contain_at_least_8_characters_16160d33": "新密码长度不能少于 8 位",
|
||||
"new_password_s_c7c43a90": "新密码: %s\n",
|
||||
"no_active_configuration_version_60f8a99b": "当前没有激活版本",
|
||||
"no_available_authentication_source_is_configured_326f6438": "未配置可用认证源",
|
||||
"no_certificate_is_configured_for_route_s_83ba5214": "路由 %s 未配置证书",
|
||||
"no_cloudflare_connection_is_configured_6ff882c7": "尚未配置 Cloudflare 连接",
|
||||
"no_compatible_release_was_found_4d9a5ae5": "未找到兼容的 Release",
|
||||
"no_enabled_rules_are_available_to_publish_8dc1e2c9": "没有可发布的启用规则",
|
||||
"no_expired_logs_require_cleanup_access_log_retention_c72c5317": "没有需要清理的过期日志 (访问日志保留 %d 天,性能指标保留 %d 天)",
|
||||
"no_github_release_asset_matches_the_configuration_8c8ac16a": "未找到符合配置的 GitHub Release 资源",
|
||||
"no_ip_addresses_or_ranges_were_parsed_from_1fcb1209": "JSON 订阅没有解析到 IP/IP 段",
|
||||
"no_ip_geolocation_result_was_returned_6cb0600f": "未获取到 IP 归属结果",
|
||||
"no_members_selected_dd913716": "未选择任何成员",
|
||||
"no_notification_history_requires_cleanup_cutoff_s_a2893d9b": "没有需要清理的历史推送记录 (截止时间: %s)",
|
||||
"no_preview_release_is_currently_available_558f10ae": "当前没有可用的 preview 发布",
|
||||
"no_release_asset_was_found_for_the_current_a2eb352a": "未找到当前系统对应的 Release 资产",
|
||||
"no_unique_cloudflare_zone_found_for_s_c20b7e4b": "cloudflare 中未找到唯一 Zone %s",
|
||||
"no_valid_file_records_were_found_to_archive_89022def": "没有找到任何有效的文件记录进行打包",
|
||||
"node_2410d860": "节点",
|
||||
"node_id_must_not_be_empty_51a5de58": "节点 ID 不能为空",
|
||||
"node_id_must_not_be_empty_5aa87f2e": "node_id 不能为空",
|
||||
"node_identifier_conflict_please_try_again_8e2acef7": "节点标识生成冲突,请重试",
|
||||
"node_ip_must_not_be_empty_f589f59a": "node_ip 不能为空",
|
||||
"node_ip_must_not_exceed_64_characters_86cbe000": "节点 IP 不能超过 64 个字符",
|
||||
"node_is_offline_or_the_synchronization_command_could_c560bf64": "节点不在线或通过 WebSocket 发送同步指令失败",
|
||||
"node_location_name_must_not_exceed_128_characters_87961927": "节点位置名不能超过 128 个字符",
|
||||
"node_name_must_not_be_empty_03dc8468": "节点名不能为空",
|
||||
"node_name_must_not_be_empty_c7c245c4": "node_name 不能为空",
|
||||
"node_s_cannot_validate_ip_group_d_37bca244": "节点 %s 无法校验 IP 组 %d",
|
||||
"node_s_contains_invalid_browser_tag_s_66a80660": "节点 %s 的浏览器标签 %s 无效",
|
||||
"node_s_contains_invalid_cidr_s_3cf57f3e": "节点 %s 的 CIDR %s 无效",
|
||||
"node_s_contains_invalid_country_code_s_c3a43e69": "节点 %s 的国家代码 %s 无效",
|
||||
"node_s_contains_invalid_ip_s_0c3bdf3f": "节点 %s 的 IP %s 无效",
|
||||
"node_s_contains_invalid_operating_system_tag_s_5f6a6ddd": "节点 %s 的操作系统标签 %s 无效",
|
||||
"node_s_contains_invalid_region_code_s_736f6724": "节点 %s 的地区代码 %s 无效",
|
||||
"node_s_failed_to_validate_ip_group_d_ce8c1581": "节点 %s 校验 IP 组 %d 失败: %w",
|
||||
"node_s_has_no_path_to_a_terminal_8286bb22": "节点 %s 不存在通往终止节点的路径",
|
||||
"node_s_has_unknown_type_s_f090b1d7": "节点 %s 的类型 %s 未知",
|
||||
"node_s_is_not_reachable_from_the_start_5eacc4af": "节点 %s 无法从开始节点到达",
|
||||
"node_s_must_have_at_least_one_incoming_7c8aac64": "节点 %s 必须至少有一条入边",
|
||||
"node_s_must_not_contain_more_than_d_404db8ac": "节点 %s 的自定义 UA 正则不能超过 %d 条",
|
||||
"node_s_output_s_is_connected_to_multiple_05e9cddf": "节点 %s 的 %s 出口连接了多个目标",
|
||||
"node_s_output_s_is_not_connected_6de47feb": "节点 %s 的 %s 出口未连接",
|
||||
"node_s_references_an_invalid_ip_group_id_27bdf145": "节点 %s 引用的 IP 组 ID 无效",
|
||||
"node_s_references_missing_ip_group_d_40d3c647": "节点 %s 引用的 IP 组 %d 不存在",
|
||||
"node_s_requires_at_least_one_pattern_when_480bade2": "节点 %s 开启屏蔽自定义 UA 时至少需要一条正则",
|
||||
"node_was_not_found_7b451929": "节点不存在",
|
||||
"nonce_mismatch_possible_replay_attack_8b3e6356": "nonce 不匹配,可能存在重放攻击",
|
||||
"none_484d5561": "无",
|
||||
"not_found_4e51b67d": "不存在",
|
||||
"not_signed_in_c1f65837": "未登录",
|
||||
"notification_channel_test_245d0001": "测试通道推送",
|
||||
"notification_failed_v_263fc07a": "推送失败: %v",
|
||||
"notification_sent_s_s_e52650c7": "推送成功: [%s] -> %s",
|
||||
"notification_sent_title_s_content_summary_s_097becda": "消息推送成功 (标题: %s, 内容摘要: %s)",
|
||||
"observability_replay_minutes_must_be_greater_than_0_fc964575": "observability_replay_minutes 必须大于 0",
|
||||
"oidc_authentication_sources_require_a_discovery_url_566d40ba": "OIDC 认证源必须配置 Discovery URL",
|
||||
"only_administrators_can_create_tokens_with_administrator_privileges_b2e4ad01": "只有管理员才能创建具有管理员权限的令牌",
|
||||
"only_automatic_and_subscription_ip_groups_support_synchronization_b7d7995c": "只有自动和订阅类型 IP 组支持同步",
|
||||
"only_failed_tasks_464688af": "只有失败的任务",
|
||||
"only_failed_tasks_can_be_retried_279c69a0": "只有失败的任务才能重试",
|
||||
"only_failed_tasks_can_be_retried_current_status_9346f42a": "只有失败的任务才能重试,当前状态: %s",
|
||||
"only_jpg_png_and_webp_images_are_supported_c7c3c323": "只支持 JPG、PNG、WEBP 格式的图片",
|
||||
"openflare_automatic_ssl_renewal_cf123a50": "OpenFlare SSL 自动续期",
|
||||
"openflare_pages_deployment_source_operation_866f0285": "OpenFlare Pages 部署源操作",
|
||||
"openflare_pages_deployment_source_scan_6932f24c": "OpenFlare Pages 部署源扫描",
|
||||
"openflare_single_certificate_ssl_renewal_a531316e": "OpenFlare 单证书 SSL 续期",
|
||||
"openflare_uptime_kuma_synchronization_b2168d61": "OpenFlare Uptime Kuma 同步",
|
||||
"openflare_waf_ip_group_synchronization_f7213a53": "OpenFlare WAF IP 组同步",
|
||||
"openresty_observability_port_must_be_between_1_and_69074f9c": "openresty_observability_port 必须在 1-65535 之间",
|
||||
"openrestymainconfigtemplate_must_not_be_empty_3ac2d43c": "OpenRestyMainConfigTemplate 不能为空",
|
||||
"openrestymainconfigtemplate_must_retain_placeholder_s_cfc00d9c": "OpenRestyMainConfigTemplate 必须保留占位符 %s",
|
||||
"operation_not_authorized_invalid_agent_token_307a5b9a": "无权进行此操作,Agent Token 无效",
|
||||
"operation_not_authorized_invalid_registration_token_a1264630": "无权进行此操作,注册 Token 无效",
|
||||
"operation_not_authorized_invalid_tunnel_token_641a1499": "无权进行此操作,Tunnel Token 无效",
|
||||
"operation_not_permitted_286a8d3f": "无权操作",
|
||||
"origin_address_already_exists_0013db55": "源站地址已存在",
|
||||
"origin_address_is_missing_a_port_7b7c2ebf": "源站地址缺少端口",
|
||||
"origin_address_must_not_be_empty_f49f8b30": "源站地址不能为空",
|
||||
"origin_path_must_not_contain_a_protocol_8e0af122": "源站路径不能包含协议",
|
||||
"origin_path_must_start_with_or_4bf64d2c": "源站路径需以 / 或 ? 开头",
|
||||
"origin_protocol_must_be_http_or_https_ab499f2a": "源站协议仅支持 http 或 https",
|
||||
"origin_was_not_found_0752eb2d": "源站不存在",
|
||||
"other_d2909f16": "其他",
|
||||
"pages_archives_support_zip_tar_gz_tar_xz_83bca097": "pages 部署包仅支持 zip、tar.gz、tar.xz、tar.bz2、tar、7z 格式",
|
||||
"pages_deployment_archive_hash_is_missing_4d740a0d": "pages 部署包哈希缺失",
|
||||
"pages_deployment_archive_is_not_a_valid_compressed_9b2cefd1": "pages 部署包不是有效的压缩文件",
|
||||
"pages_deployment_archive_is_not_a_valid_zip_0dd602e6": "pages 部署包不是有效 zip 文件",
|
||||
"pages_deployment_archive_must_be_a_zip_file_ab5b4552": "pages 部署包必须是 .zip 文件",
|
||||
"pages_deployment_archive_must_not_be_empty_ff4d94e4": "pages 部署包不能为空",
|
||||
"pages_deployment_archive_must_not_exceed_d_mib_3c1a0b6a": "pages 部署包不能超过 %d MiB",
|
||||
"pages_deployment_archive_path_is_empty_87435085": "pages 部署包路径为空",
|
||||
"pages_deployment_archive_upload_record_was_not_found_9990e33d": "pages 部署包上传记录不存在",
|
||||
"pages_deployment_archive_upload_type_mismatch_s_cd5886f7": "pages 部署包上传类型不匹配: %s",
|
||||
"pages_deployment_archive_was_not_found_w_39714023": "pages 部署包不存在: %w",
|
||||
"pages_deployment_does_not_belong_to_this_project_374852db": "pages 部署不属于该项目",
|
||||
"pages_deployment_is_not_included_in_the_active_26b4dcae": "pages 部署尚未进入激活配置",
|
||||
"pages_deployment_must_not_contain_more_than_d_80d2f448": "pages 部署文件数不能超过 %d",
|
||||
"pages_deployment_source_configuration_changed_task_skipped_ed018def": "pages 部署源配置已变化,本次任务已跳过",
|
||||
"pages_deployment_source_operation_failed_please_try_again_19363b45": "pages 部署源操作失败,请稍后重试",
|
||||
"pages_deployment_source_synchronization_failed_86c51b71": "pages 部署源同步失败",
|
||||
"pages_deployment_source_synchronized_and_published_successfully_0bf1e5dd": "Pages 部署源同步并发布成功",
|
||||
"pages_deployment_source_task_ownership_is_no_longer_35aa212a": "pages 部署源任务执行权已失效",
|
||||
"pages_deployment_source_was_not_found_c9af468e": "pages 部署源不存在",
|
||||
"pages_deployment_was_not_found_e90bdf07": "pages 部署不存在",
|
||||
"pages_entry_file_must_not_exceed_512_characters_3e7fb206": "pages 入口文件长度不能超过 512",
|
||||
"pages_project_has_no_active_deployment_6d7971f7": "pages 项目没有激活部署",
|
||||
"pages_project_is_disabled_98847c64": "pages 项目未启用",
|
||||
"pages_project_is_referenced_by_rules_and_cannot_416af718": "pages 项目已被规则引用,不能删除",
|
||||
"pages_project_name_must_not_be_empty_717063ef": "pages 项目名称不能为空",
|
||||
"pages_project_or_deployment_is_empty_ddcf5875": "pages 项目或部署为空",
|
||||
"pages_project_slug_already_exists_b7c6e058": "pages 项目标识已存在",
|
||||
"pages_project_slug_may_only_contain_lowercase_letters_56675232": "pages 项目标识只能包含小写字母、数字和连字符",
|
||||
"pages_project_was_not_found_b6f46c90": "pages 项目不存在",
|
||||
"pages_root_directory_must_not_exceed_512_characters_29d92328": "pages 根目录长度不能超过 512",
|
||||
"pages_source_content_is_unchanged_existing_deployment_reactivated_1441d50c": "Pages 部署源内容未变化,已重新激活现有部署",
|
||||
"pages_source_scan_completed_recovered_d_leases_compensated_de889c15": "Pages 部署源扫描完成:恢复 %d 个租约,补偿 %d 个孤儿记录,检查 %d 个来源,投递 %d 个自动更新,积压 %d 个",
|
||||
"parse_fbff7b50": "解析",
|
||||
"parse_task_parameters_w_21ea4f33": "解析任务参数: %w",
|
||||
"password_changed_successfully_c5299b82": "密码修改成功",
|
||||
"password_encryption_failed_please_try_again_ef84e8d4": "密码加密失败,请重试",
|
||||
"password_login_is_disabled_by_the_administrator_54c5d88a": "管理员关闭了密码登录",
|
||||
"password_must_contain_at_least_8_characters_ab81f8d4": "密码长度不能少于 8 位",
|
||||
"password_reset_successfully_bf63ac4e": "成功重置密码!",
|
||||
"periodically_remove_unused_uploads_historical_notifications_and_expired_68ae5d13": "定期清理未使用上传文件、历史推送记录和过期任务执行日志",
|
||||
"pg_dump_is_unavailable_install_the_postgresql_client_759ad5ae": "pg_dump 不可用,请确保服务器已安装 PostgreSQL 客户端工具",
|
||||
"please_sign_in_first_48144f96": "请先登录",
|
||||
"port_must_not_be_empty_e53d74a2": "端口不能为空",
|
||||
"postgresql_is_disabled_and_sqlite_is_the_primary_3234d0c2": "PostgreSQL 未启用(当前主库为 SQLite),无法迁移到 PostgreSQL",
|
||||
"postgresql_is_the_primary_database_sqlite_cannot_be_4d638671": "当前主库为 PostgreSQL,日志库不能设置为 SQLite",
|
||||
"pow_algorithm_for_node_s_must_be_fast_97989167": "节点 %s 的 PoW 算法必须为 fast 或 slow",
|
||||
"pow_challenge_ttl_for_node_s_must_be_87482278": "节点 %s 的 PoW 挑战 TTL 不能小于 30 秒",
|
||||
"pow_difficulty_for_node_s_must_be_between_4eaec0b8": "节点 %s 的 PoW 难度必须在 1-16 之间",
|
||||
"pow_session_ttl_for_node_s_must_be_98ed3573": "节点 %s 的 PoW 会话 TTL 不能小于 60 秒",
|
||||
"precreated_target_postgresql_partitions_from_s_to_s_0bc5358f": "已为目标 PG 预建分区 %s ~ %s",
|
||||
"preparing_group_synchronization_group_s_id_d_enabled_9d8361f3": "准备分组同步: group=%s id=%d enabled=%v target=%s default_proxied=%v",
|
||||
"preparing_node_synchronization_node_s_id_d_ip_61c8f04a": "准备节点同步: node=%s id=%d ip=%s",
|
||||
"preparing_to_issue_or_renew_a_certificate_for_18326882": "准备为域名 [%s] 申请/续期证书",
|
||||
"preparing_to_send_email_to_s_subject_s_1f6fad47": "开始准备发送邮件到: %s, 主题: %s",
|
||||
"previous_pages_deployment_source_task_lease_expired_4de3ac84": "上次 pages 部署源任务租约已过期",
|
||||
"primary_and_standby_nodes_must_be_different_7f96a264": "主节点和备用节点不能相同",
|
||||
"provide_the_remote_deployment_archive_url_887e4ef2": "请提供远程部署包地址",
|
||||
"querying_next_migration_batch_migrated_d_d_c481c987": "正在查询待迁移对象批次,当前已完成迁移: %d/%d",
|
||||
"rebuild_file_storage_statistics_fe52d825": "重算文件存储统计",
|
||||
"rebuild_w_upload_stats_from_active_w_uploads_08023859": "根据当前 w_uploads 活跃记录全量重建 w_upload_stats(总量、类型、分类、趋势)",
|
||||
"rebuilding_file_storage_statistics_active_records_d_60a4199b": "开始重算文件存储统计,活跃记录数: %d",
|
||||
"receiving_this_message_confirms_that_the_notification_channel_79c41407": "当您收到这条消息,说明当前渠道连通性测试通过。",
|
||||
"recipient_b013dc37": "目标接收者",
|
||||
"recipient_email_to_88e59c15": "接收邮箱 (To)",
|
||||
"record_was_not_found_e4ba0386": "记录不存在",
|
||||
"recover_recovered_expired_source_lease_source_id_d_c4a7c01f": "[recover] 已恢复过期来源租约:source_id=%d",
|
||||
"registration_failed_please_try_again_later_a4807a5d": "注册失败,请稍后再试",
|
||||
"registration_is_disabled_by_the_administrator_420d53e6": "管理员关闭了注册",
|
||||
"remote_addr_must_not_be_empty_ba45da61": "remote_addr 不能为空",
|
||||
"remote_source_redirect_limit_exceeded_3fdd16bf": "远程来源重定向次数超过限制",
|
||||
"remote_url_sources_do_not_support_update_checks_1ecca79c": "远程地址来源不支持检查更新,请使用立即同步",
|
||||
"remote_url_sources_must_not_include_github_or_48c0b153": "远程地址来源不能包含 GitHub 或自动更新配置",
|
||||
"renew_a_single_specified_acme_certificate_a27fd4e1": "对单个指定的 ACME 证书执行续期",
|
||||
"renewal_certificate_data_saved_9d25aae9": "【续签任务】证书数据存储完成!",
|
||||
"renewal_certificate_issued_securely_storing_certificate_and_private_cfaa1b37": "【续签任务】证书签发成功,正在将证书内容与私钥安全写入数据库...",
|
||||
"renewal_decrypting_dns_account_credentials_and_acme_account_6ac3acd9": "【续签任务】正在解密 DNS 账号凭据及 ACME 账户私钥...",
|
||||
"renewal_requested_domains_v_e4bf6bab": "【续签任务】待申请的域名列表: %v",
|
||||
"renewal_requesting_ssl_certificate_issuance_through_the_acme_98e351ee": "【续签任务】正在调用 ACME 客户端(通过 DNS-01 挑战)发起 SSL 证书签发请求,请稍候...",
|
||||
"renewal_resolving_acme_account_1bc0d71a": "【续签任务】正在解析 ACME 账户...",
|
||||
"renewal_resolving_dns_account_information_id_d_89687757": "【续签任务】正在解析 DNS 账户信息 (ID=%d)...",
|
||||
"renewal_saving_acme_account_changes_15275665": "【续签任务】正在保存 ACME 账户可能的变更...",
|
||||
"renewal_starting_renewal_setting_application_status_to_applying_a167afb3": "【续签任务】开始续签,设置申请状态为 applying...",
|
||||
"request_body_json_77cfb393": "请求体 (JSON)",
|
||||
"request_url_65a1f546": "请求地址",
|
||||
"reset_the_password_for_a_specified_account_ef0bf7e5": "重置指定账号密码",
|
||||
"resolve_acquiring_source_task_ownership_8bb0e8c7": "[resolve] 正在获取来源执行权",
|
||||
"resolve_another_source_task_is_running_skipping_task_a4e1db69": "[resolve] 已有来源任务正在执行,本次任务跳过",
|
||||
"resolve_resolving_github_release_repo_s_asset_s_6915eea4": "[resolve] 正在解析 GitHub Release:repo=%s asset=%s",
|
||||
"resolve_source_configuration_changed_skipping_task_4b3e6282": "[resolve] 来源配置已变化,本次任务跳过",
|
||||
"resolve_source_configuration_or_ownership_changed_skipping_task_d8b6d56a": "[resolve] 来源配置或执行权已变化,本次任务跳过",
|
||||
"resolve_source_no_longer_exists_skipping_task_c4e25edd": "[resolve] 来源已不存在,本次任务跳过",
|
||||
"result_must_be_success_warning_or_failed_7bca2806": "result 仅支持 success、warning 或 failed",
|
||||
"retention_days_must_be_between_1_and_3650_3b6a649b": "retention_days 必须在 1 到 3650 之间",
|
||||
"retention_days_must_be_between_1_and_90_371a59a7": "retention_days 必须在 1 到 90 之间",
|
||||
"root_domain_still_contains_domains_delete_them_all_277bc1d6": "根域下仍有域名,请先删除全部域名",
|
||||
"route_configuration_path_must_not_be_empty_f70cb124": "route config path 不能为空",
|
||||
"route_s_w_0efcb499": "路由 %s %w",
|
||||
"rule_graph_contains_multiple_start_nodes_e13cd7e2": "规则图包含多个开始节点",
|
||||
"rule_graph_is_missing_a_start_node_1efe3116": "规则图缺少开始节点",
|
||||
"rule_graph_must_contain_exactly_one_allow_node_a05ca0b3": "规则图必须恰好包含一个通过节点",
|
||||
"rule_graph_must_contain_exactly_one_start_node_3140d98e": "规则图必须恰好包含一个开始节点",
|
||||
"rule_graph_must_not_contain_cycles_fd6fe797": "规则图不能包含循环",
|
||||
"rule_graph_must_not_contain_more_than_d_3289a255": "规则图边数不能超过 %d",
|
||||
"rule_graph_must_not_contain_more_than_d_76688447": "规则图节点数不能超过 %d",
|
||||
"rule_graph_must_not_exceed_256_kib_855948bb": "规则图大小不能超过 256 KiB",
|
||||
"rule_graph_schema_version_must_be_d_38d452c4": "规则图 schema_version 必须为 %d",
|
||||
"rule_was_updated_by_another_operation_reload_it_bba246a7": "规则已被其他操作更新,请重新加载",
|
||||
"s_contains_an_empty_domain_name_e4a83686": "%s 包含空域名",
|
||||
"s_contains_duplicate_domain_name_s_15451d4d": "%s 包含重复域名 %s",
|
||||
"s_contains_invalid_characters_enter_valid_ip_addresses_59634931": "%s 包含非法字符,请填入有效的 IP 地址或域名,以空格分隔",
|
||||
"s_contains_invalid_network_range_q_ce167d93": "%s 包含无效网段 %q",
|
||||
"s_contains_unsupported_value_q_6208a8c5": "%s 包含不支持的值 %q",
|
||||
"s_domain_name_must_be_lowercase_without_surrounding_59ed3d2c": "%s 域名必须为小写且不含首尾空格:%s",
|
||||
"s_is_not_a_valid_ip_address_643806a5": "%s 不是合法 IP",
|
||||
"s_is_not_a_valid_ip_range_4835d8bf": "%s 不是合法 IP 段",
|
||||
"s_must_be_a_duration_with_a_unit_b97fceb4": "%s 格式必须为带单位的时长,例如 30m 或 5s",
|
||||
"s_must_be_a_json_array_of_strings_dbcb2bd7": "%s 必须为 JSON 字符串数组",
|
||||
"s_must_be_a_nonnegative_integer_0_means_efc94604": "%s 必须为大于等于 0 的整数(0 表示不限制)",
|
||||
"s_must_be_a_nonnegative_integer_0bbc7814": "%s 必须为大于等于 0 的整数",
|
||||
"s_must_be_a_whole_number_of_days_c0ac3325": "%s 必须为大于等于 1 的整数天",
|
||||
"s_must_be_an_integer_between_1_and_3f9a159c": "%s 必须为 1~2048 的整数(MiB)",
|
||||
"s_must_be_an_integer_greater_than_0_9553dcdf": "%s 必须为大于 0 的整数",
|
||||
"s_must_be_an_integer_or_a_size_2e9fba45": "%s 格式必须为整数或带 k/m/g 单位的大小值",
|
||||
"s_must_be_between_100_and_999_6b9e594f": "%s 必须在 100 到 999 之间",
|
||||
"s_must_be_disabled_mmdb_ip_api_geojs_deba53da": "%s 仅支持 disabled、mmdb、ip-api、geojs、ipinfo",
|
||||
"s_must_be_epoll_kqueue_poll_select_rtsig_3177cbf8": "%s 仅支持 epoll、kqueue、poll、select、rtsig、/dev/poll、eventport 或留空",
|
||||
"s_must_be_true_or_false_3a8153ff": "%s 必须为 true 或 false",
|
||||
"s_must_contain_at_least_one_status_code_15395d65": "%s 至少包含一个状态码标签",
|
||||
"s_must_contain_at_most_d_network_ranges_6b0b78c4": "%s 最多允许 %d 个网段",
|
||||
"s_must_not_be_empty_2d5ac8f7": "%s 不能为空",
|
||||
"s_must_not_be_empty_after_expansion_e814e9ef": "%s 展开后不能为空",
|
||||
"s_must_not_contain_newlines_54742aef": "%s 不能包含换行",
|
||||
"s_must_not_contain_newlines_or_tabs_ff4de73f": "%s 不能包含换行或制表符",
|
||||
"s_must_not_exceed_d_4b586e57": "%s 不能大于 %d",
|
||||
"s_must_not_exceed_d_bytes_256_kib_2f297bdb": "%s 长度不能超过 %d 字节(256 KiB)",
|
||||
"s_must_use_a_format_such_as_16_1042e770": "%s 格式必须类似 \"16 16k\"",
|
||||
"s_must_use_a_format_such_as_1_5a9d67e2": "%s 格式必须类似 \"1:2\" 或 \"1:2:2\"",
|
||||
"s_supports_at_most_d_domain_names_4f3d5128": "%s 最多支持 %d 个域名",
|
||||
"scan_acme_certificates_nearing_expiration_and_renew_them_c53289c4": "扫描即将到期的 ACME 证书并触发自动续期",
|
||||
"scan_due_sources_d_batch_d_ab93c95c": "[scan] 到期来源=%d,本批=%d",
|
||||
"scan_sources_still_due_after_this_batch_d_da73edba": "[scan] 本批处理后仍到期来源=%d",
|
||||
"scanning_certificates_due_for_renewal_7f9e9ca0": "开始扫描待续期证书",
|
||||
"scanning_unused_uploads_cutoff_s_5c2fbb16": "开始扫描未使用上传文件,阈值: %s",
|
||||
"schedule_was_not_found_6205508a": "定时任务不存在",
|
||||
"seconds_00fe8dda": " 秒",
|
||||
"select_a_cname_a_or_aaaa_record_type_80ac9137": "请选择 CNAME、A 或 AAAA 记录类型",
|
||||
"select_a_file_to_upload_a3a97de2": "请选择要上传的文件",
|
||||
"select_a_pages_deployment_source_type_70065e2c": "请选择 pages 部署源类型",
|
||||
"select_a_valid_cloudflare_dns_account_97385483": "请选择有效的 Cloudflare DNS 账号",
|
||||
"select_a_valid_edge_node_0fafe682": "请选择有效的边缘节点",
|
||||
"select_a_valid_target_mode_9a0c6691": "请选择有效的指向方式",
|
||||
"selected_certificate_was_not_found_3772e60e": "所选证书不存在",
|
||||
"send_data_to_an_external_webhook_using_a_068df6b3": "使用自定义 HTTP POST 请求向外部 Webhook 发送数据。",
|
||||
"send_email_c268c1b1": "发送邮件",
|
||||
"send_failed_v_a04ce62f": "发送失败: %v",
|
||||
"send_notification_e70e3a00": "推送通知",
|
||||
"send_system_email_asynchronously_63d68e86": "异步发送系统邮件",
|
||||
"sequentially_convert_managed_images_to_webp_at_the_05d39459": "串行将文件管理中的图片转换为指定质量的 WebP 并写入永久缓存",
|
||||
"serialize_289c64ad": "序列化",
|
||||
"server_address_server_address_is_not_configured_configure_9e094296": "服务器地址 (server_address) 未配置或配置为空,请在后台系统设置中配置后再试",
|
||||
"server_url_must_not_be_empty_269fe8ad": "server_url 不能为空",
|
||||
"signature_verification_key_from_the_feishu_group_bot_6090b176": "飞书群机器人安全设置中的签名校验 Key",
|
||||
"signing_secret_optional_9dcdda03": "签名校验密钥 (Secret) (可选)",
|
||||
"since_and_until_must_be_provided_together_4fdc9431": "since 与 until 需同时提供",
|
||||
"since_must_be_an_rfc3339_timestamp_ad87e410": "since 必须为 RFC3339 时间",
|
||||
"source_database_contains_no_logs_skipping_partition_precreation_c2753081": "源库无日志数据,跳过分区预建",
|
||||
"spa_fallback_path_contains_unsupported_characters_14eecbe2": "spa fallback 回退路径包含不支持的字符",
|
||||
"spa_fallback_path_must_not_contain_or_segments_eee02366": "spa fallback 回退路径不能包含 . 或 .. 路径段",
|
||||
"spa_fallback_path_must_not_contain_whitespace_or_a7661241": "spa fallback 回退路径不能包含空白或控制字符",
|
||||
"spa_fallback_path_must_not_exceed_512_characters_8be1ecf7": "spa fallback 回退路径长度不能超过 512",
|
||||
"spa_fallback_path_must_point_to_a_specific_dff5905a": "spa fallback 回退路径必须指向具体文件",
|
||||
"spa_fallback_path_must_start_with_91d66834": "spa fallback 回退路径必须以 / 开头",
|
||||
"specified_version_was_not_found_s_eeec8487": "未找到指定版本: %s",
|
||||
"sql_statement_must_not_be_empty_c3a52981": "SQL 语句不能为空",
|
||||
"start_api_worker_and_scheduler_together_3e558997": "以融合模式同时启动 API、Worker 和 Scheduler",
|
||||
"start_node_s_must_not_have_incoming_edges_0501404b": "开始节点 %s 不能有入边",
|
||||
"starting_certificate_renewal_id_d_034783ec": "开始续期证书,ID: %d",
|
||||
"starting_domain_synchronization_domain_s_zone_s_group_49f9cc95": "开始域名同步: domain=%s zone=%s group=%s(#%d) target=%s proxied=%v member_id=%d",
|
||||
"starting_log_database_migration_s_s_6a587927": "开始切换日志数据库:%s -> %s",
|
||||
"starting_notification_event_s_channel_s_recipient_s_561117aa": "开始推送通知: 事件 = %s, 渠道 = %s, 接收目标 = %s",
|
||||
"starting_s_synchronization_name_s_id_d_target_ce5444ff": "开始%s同步: name=%s id=%d target=%s 域名数=%d",
|
||||
"starting_sequential_compressed_image_cache_warmup_quality_s_ec690c4f": "开始串行预热图片压缩缓存,质量: %s,每批: %d",
|
||||
"starting_storage_migration_s_s_total_objects_d_43cbe32d": "开始存储迁移: %s -> %s,总对象数: %d",
|
||||
"status_code_must_be_an_integer_between_100_3328ab45": "status_code 必须为 100-599 之间的整数",
|
||||
"status_code_must_be_between_d_and_d_f8229da8": "状态码须在 %d–%d: %s",
|
||||
"status_code_range_endpoints_are_reversed_s_afcfd994": "状态码区间左右端点反序: %s",
|
||||
"status_code_tag_must_not_be_empty_21235ebf": "状态码标签不能为空",
|
||||
"storage_configuration_updated_active_storage_remains_s_917066ca": "存储配置已更新,活动存储保持为 %s",
|
||||
"storage_configuration_updated_directly_failed_migration_task_marked_c9d7148d": "存储配置直接更新,故障迁移任务自动标记为已解决",
|
||||
"storage_connectivity_4038ce91": "存储连通性",
|
||||
"storage_connectivity_test_failed_w_08dabbf5": "存储连通性测试失败: %w",
|
||||
"storage_migration_completed_migrated_d_objects_active_storage_332fb1de": "存储迁移完成,共迁移 %d 个对象,活动存储已切换为 %s",
|
||||
"storage_migration_maintenance_is_active_files_are_read_4bf9e57d": "存储迁移维护中,当前仅允许读取文件",
|
||||
"subject_line_of_the_email_to_send_c3aa0753": "发送邮件的主题标题",
|
||||
"subscription_content_must_not_exceed_d_bytes_f40541e2": "订阅内容不能超过 %d 字节",
|
||||
"subscription_returned_status_code_d_2c185ec6": "订阅返回状态码 %d",
|
||||
"subscription_url_must_use_http_or_https_e43cbb99": "订阅 URL 仅支持 http 或 https",
|
||||
"succeeded_053461ce": "成功",
|
||||
"switch_group_primary_and_standby_nodes_based_on_b2d78b3f": "根据节点在线和应用状态切换分组主备节点",
|
||||
"switch_log_database_da446b57": "切换日志数据库",
|
||||
"synchronization_completed_d_ip_addresses_or_ranges_7b645ca2": "同步成功,共 %d 条 IP/IP 段",
|
||||
"synchronization_succeeded_bca900e9": "同步成功",
|
||||
"synchronize_all_domains_currently_targeting_the_specified_node_3488196a": "同步当前指向指定节点的全部域名",
|
||||
"synchronize_all_domains_in_a_target_group_b2397009": "同步指向分组内全部域名",
|
||||
"synchronize_automatic_and_subscription_waf_ip_groups_that_ac3d686e": "同步到期的自动规则与订阅类型 WAF IP 组",
|
||||
"synchronize_cloudflare_dns_records_for_a_single_domain_a06ce84b": "同步单个域名的 Cloudflare DNS 记录",
|
||||
"synchronize_enabled_proxy_routes_with_uptime_kuma_monitors_8f761ebe": "将启用的代理规则同步到 Uptime Kuma 监控",
|
||||
"synchronizing_proxy_routes_with_uptime_kuma_2d26b523": "开始同步代理规则到 Uptime Kuma",
|
||||
"synchronizing_waf_ip_groups_due_for_an_update_e96ea0b3": "开始同步到期的 WAF IP 组",
|
||||
"system_5b50d7c4": "系统",
|
||||
"system_channel_test_415dd03a": "系统通道测试",
|
||||
"system_cleanup_6c08e88d": "系统垃圾清理",
|
||||
"system_cleanup_completed_removed_d_d_unused_uploads_5eca4159": "系统清理完成。成功清理未使用的上传文件 %d/%d 个;清理历史推送审计日志 %d 条;清理任务执行日志 %d 条。",
|
||||
"system_configuration_was_not_found_00210cae": "系统配置不存在",
|
||||
"system_manual_retry_created_and_enqueued_original_task_3c9cbd5d": "[系统] 手动触发重试,已重新创建任务并入队 (原任务ID: %s, 重试次数: %d/%d)",
|
||||
"system_notification_94b7513e": "系统通知",
|
||||
"system_reserved_file_types_cannot_be_managed_through_9369ffe7": "系统保留的文件类型不能通过通用文件接口操作",
|
||||
"system_smtp_configuration_is_incomplete_291bb369": "系统 SMTP 邮件服务配置不完整",
|
||||
"system_starting_asynchronous_task_name_s_type_s_90c6e5e2": "[系统] 开始执行异步任务 [名称: %s, 类型: %s],重试次数: %d/%d",
|
||||
"system_starting_asynchronous_task_type_s_caca3e5b": "[系统] 开始执行异步任务 [类型: %s]",
|
||||
"system_task_enqueued_waiting_for_execution_queue_s_86a50bcc": "[系统] 任务已成功入队,等待调度执行 (队列: %s, 最大重试次数: %d)",
|
||||
"system_task_failed_duration_d_ms_error_v_63653548": "[系统] 任务执行失败,耗时: %d ms,错误原因: %v",
|
||||
"system_task_succeeded_duration_d_ms_result_s_161aa7ca": "[系统] 任务执行成功,耗时: %d ms,执行结果: %s",
|
||||
"target_group_is_disabled_08c76979": "指向分组已停用",
|
||||
"target_group_must_differ_from_the_current_group_2702a3d3": "目标分组不能为当前分组",
|
||||
"target_group_was_not_found_71c24083": "目标分组不存在",
|
||||
"target_log_database_febc306d": "目标日志库",
|
||||
"target_log_database_is_already_active_no_migration_92ab4313": "目标日志库与当前日志库相同,无需迁移",
|
||||
"target_storage_configuration_json_884c1a08": "目标存储配置 (JSON)",
|
||||
"task_cannot_continue_53c9c59a": "任务无法继续执行",
|
||||
"task_completed_0b4c0784": "任务完成: ",
|
||||
"task_execution_was_not_found_fc632d27": "任务执行记录不存在",
|
||||
"task_execution_was_not_found_w_284e6bfc": "任务执行记录不存在: %w",
|
||||
"task_parameters_must_not_be_empty_bdc11114": "任务参数不能为空",
|
||||
"telegram_bot_b0edcbcc": "Telegram 机器人",
|
||||
"template_content_must_not_be_empty_6fce7653": "模板内容不能为空",
|
||||
"template_identifier_already_exists_93895c12": "模板标识符已存在",
|
||||
"template_identifier_must_not_be_empty_7a1e41d3": "模板标识符不能为空",
|
||||
"template_name_must_not_be_empty_da00e8dc": "模板名称不能为空",
|
||||
"template_s_was_not_found_or_is_unavailable_70f4fa4e": "模板 %s 不存在或不可用: %w",
|
||||
"template_was_not_found_37b0cea2": "模板不存在",
|
||||
"terminal_node_s_must_not_have_outgoing_edges_8ece7ac6": "终止节点 %s 不能有出口",
|
||||
"the_active_node_requires_a_valid_ipv4_address_edf71cfe": "生效节点必须配置合法 IPv4",
|
||||
"the_active_pages_deployment_cannot_be_deleted_9f0bb393": "不能删除当前激活的 Pages 部署",
|
||||
"the_confirmed_version_has_changed_refresh_and_confirm_8a40d0fc": "确认的版本已变化,请刷新后重新确认",
|
||||
"the_current_rules_have_not_changed_and_cannot_c8b88f7d": "当前规则没有变更,不能重复发布",
|
||||
"the_currently_signed_in_user_cannot_be_deleted_e47df151": "不能删除当前登录用户",
|
||||
"the_log_database_is_clickhouse_but_clickhouse_is_bc5e49a0": "当前日志主库为 ClickHouse 但 ClickHouse 未启用。请先重新启用 ClickHouse 配置并启动,在任务管理运行『切换日志数据库』迁移到 PostgreSQL/SQLite 后再禁用 ClickHouse",
|
||||
"the_log_database_is_postgresql_but_postgresql_is_01f3b8d3": "当前日志主库为 PostgreSQL 但 PostgreSQL 未启用(当前为 SQLite 主库)。请运行『切换日志数据库』迁回 SQLite 或启用 PostgreSQL",
|
||||
"the_log_database_is_sqlite_but_postgresql_is_8cfdfdaa": "当前日志主库为 SQLite 但当前主库为 PostgreSQL。请运行『切换日志数据库』迁移到 PostgreSQL",
|
||||
"the_selected_version_is_not_a_preview_release_15d2f434": "指定版本不是 preview 发布",
|
||||
"the_specified_entry_file_does_not_exist_in_f029c906": "当前激活部署中不存在指定入口文件",
|
||||
"the_specified_uploaded_asset_was_not_found_in_942c8d4d": "GitHub Release 中未找到指定的已上传 asset",
|
||||
"this_access_token_has_no_administrator_privileges_and_9005f2b0": "该访问令牌没有管理员权限,无法访问管理端点",
|
||||
"this_account_has_no_email_address_contact_an_4e504171": "该账号未绑定邮箱,请联系管理员绑定邮箱后再登录",
|
||||
"this_account_has_no_email_address_use_a_e29bb819": "该账号未绑定邮箱,使用临时码登录",
|
||||
"this_configuration_is_managed_by_system_tasks_and_1930e327": "该配置项由系统任务管理,禁止手动修改",
|
||||
"this_dns_account_is_used_by_certificates_and_54842b64": "该 DNS 账号已被证书使用,无法删除",
|
||||
"this_domain_already_belongs_to_another_target_group_1f6c5889": "该域名已加入其他指向分组",
|
||||
"this_email_address_is_bound_to_another_account_48d6a2fa": "该邮箱已被其他账号绑定",
|
||||
"this_endpoint_does_not_allow_access_token_authentication_93ced189": "该端点不允许使用访问令牌进行身份验证",
|
||||
"this_external_account_is_bound_to_another_user_029fce16": "该外部账号已绑定到其他用户",
|
||||
"this_is_a_system_notification_channel_connectivity_test_cbd9d668": "这是一条来自系统的消息通道连通性测试消息。",
|
||||
"this_node_is_not_a_tunnelclient_0a666f7a": "此节点不是 TunnelClient 类型",
|
||||
"this_node_is_not_a_tunnelrelay_49925484": "此节点不是 TunnelRelay 类型",
|
||||
"this_origin_is_still_referenced_by_rules_and_fad589f1": "该源站仍被规则引用,无法删除",
|
||||
"this_task_cannot_be_retried_be95f1db": "该任务不支持重试",
|
||||
"time_range_must_not_exceed_30_days_93f190e7": "时间范围不能超过 30 天",
|
||||
"to_subject_and_body_must_not_be_empty_614c8b17": "to、subject、body 不能为空",
|
||||
"token_name_must_not_be_empty_cd7ba9f4": "令牌名称不能为空",
|
||||
"token_was_not_found_or_access_is_not_b430e116": "令牌不存在或无权操作",
|
||||
"too_many_login_attempts_try_again_later_3245d6d9": "登录尝试过于频繁,请稍后再试",
|
||||
"too_many_login_requests_please_try_again_later_4bcd0be6": "登录请求过于频繁,请稍后再试",
|
||||
"transfer_uploading_file_to_target_storage_s_size_8118b17d": "[传输中] 正在向目标存储上传文件: %s (大小: %d 字节, 类型: %s)",
|
||||
"triggered_when_an_administrator_signs_in_successfully_0ff0cfc5": "当管理员成功登录系统时触发此通知",
|
||||
"tunnel_token_must_not_be_empty_67a53536": "tunnel_token 不能为空",
|
||||
"unable_to_compile_configuration_for_node_s_w_66b38ddb": "节点 %s 的配置无法编译: %w",
|
||||
"unable_to_create_database_export_file_c78edf48": "无法创建数据库导出文件",
|
||||
"unable_to_enqueue_cloudflare_synchronization_task_4fc208da": "无法投递 Cloudflare 同步任务",
|
||||
"unable_to_export_database_9f34252c": "无法导出数据库",
|
||||
"unable_to_generate_an_available_username_dec720c4": "无法生成可用用户名",
|
||||
"unable_to_get_the_currently_active_configuration_version_6a36cf1a": "无法获取当前激活的配置版本:%s",
|
||||
"unable_to_get_the_currently_active_configuration_version_c8a24858": "无法获取当前激活的配置版本:%w",
|
||||
"unable_to_get_username_from_authentication_source_973bd1db": "无法从认证源获取用户名",
|
||||
"unable_to_identify_the_current_user_9a5f999b": "无法识别当前用户",
|
||||
"unable_to_open_database_file_df3e8a7f": "无法打开数据库文件: ",
|
||||
"unable_to_read_database_file_information_52111f56": "无法读取数据库文件信息: ",
|
||||
"unable_to_save_session_please_try_again_58acb751": "无法保存会话信息,请重试",
|
||||
"unable_to_serialize_rule_graph_w_48c45bb9": "规则图无法序列化: %w",
|
||||
"unauthorized_access_f0d65927": "未经授权访问",
|
||||
"unknown_4d8c1c5b": "未知",
|
||||
"unknown_log_database_configuration_s_98368584": "未知的日志主库配置: %s",
|
||||
"unknown_node_type_s_332fe973": "未知节点类型 %s",
|
||||
"unknown_task_type_s_b04735f2": "未知的任务类型: %s",
|
||||
"unregistered_task_handler_s_271644ad": "未注册的任务处理器: %s",
|
||||
"unsupported_pages_deployment_source_type_5b4321a7": "pages 部署源类型不受支持",
|
||||
"unsupported_verification_scenario_e2264302": "不支持的验证场景",
|
||||
"until_must_be_an_rfc3339_timestamp_ce5dee46": "until 必须为 RFC3339 时间",
|
||||
"until_must_be_later_than_since_a541175c": "until 必须晚于 since",
|
||||
"update_archive_size_mismatch_got_d_want_d_195807e8": "升级归档大小不匹配: got %d, want %d",
|
||||
"upstream_response_s_a987ca9f": "上游返回: %s",
|
||||
"uptime_kuma_address_is_required_when_the_integration_2a83e4ea": "启用 Uptime Kuma 时地址不能为空",
|
||||
"uptime_kuma_address_must_start_with_http_or_87425cf2": "uptime Kuma 地址必须以 http:// 或 https:// 开头",
|
||||
"uptime_kuma_integration_is_disabled_skipping_execution_30faa46e": "Uptime Kuma 集成未启用,跳过执行",
|
||||
"uptime_kuma_password_is_required_when_the_integration_6eed6c4c": "启用 Uptime Kuma 时密码不能为空",
|
||||
"uptime_kuma_synchronization_completed_dfb5cd80": "Uptime Kuma 同步完成",
|
||||
"uptime_kuma_synchronization_failed_v_0f0e24be": "Uptime Kuma 同步失败: %v",
|
||||
"uptime_kuma_synchronization_is_already_running_skipping_this_3e44a54f": "Uptime Kuma 同步任务正在执行,跳过本次调度",
|
||||
"uptime_kuma_username_is_required_when_the_integration_f43559eb": "启用 Uptime Kuma 时用户名不能为空",
|
||||
"user_id_is_required_5f1165d8": "用户ID必填",
|
||||
"user_id_must_not_be_empty_07bc47a7": "用户 ID 不能为空",
|
||||
"user_was_not_found_8a2ea403": "未找到该用户",
|
||||
"user_was_not_found_a82de572": "用户不存在",
|
||||
"username_already_exists_d1ee5409": "用户名已存在",
|
||||
"username_must_not_be_empty_390ccdec": "用户名不能为空",
|
||||
"username_must_not_be_empty_fb128ac0": "用户名不能为空\n",
|
||||
"username_of_the_account_whose_password_will_be_29c265c9": "重置密码的目标用户名",
|
||||
"username_or_email_address_is_already_in_use_18fa1479": "用户名或邮箱已被占用",
|
||||
"username_s_264d6306": "用户名: %s\n",
|
||||
"validate_154723a1": "验证",
|
||||
"verification_checking_target_file_consistency_sha_256_s_daef3bb0": "[校验中] 正在对目标文件进行数据一致性校验 (SHA-256): %s",
|
||||
"verification_code_is_incorrect_or_expired_62fb7904": "验证码错误或已过期",
|
||||
"verification_codes_are_being_requested_too_frequently_try_84835f1c": "验证码发送频繁,请稍后再试",
|
||||
"verified_file_consistency_check_succeeded_s_09148b16": "[校验通过] 文件一致性校验成功: %s",
|
||||
"verify_verifying_archive_structure_and_entry_file_dcc5d692": "[verify] 正在校验归档结构与入口文件",
|
||||
"verify_verifying_github_release_archive_and_entry_file_a00c1f16": "[verify] 正在校验 GitHub Release 归档与入口",
|
||||
"version_identifier_conflict_please_try_again_c81c8dad": "版本号生成冲突,请重试",
|
||||
"version_must_not_be_empty_09fabcb3": "version 不能为空",
|
||||
"videos_c20f7618": "视频",
|
||||
"waf_ip_group_snapshot_size_d_bytes_exceeds_4bdc932a": "WAF IP 组快照大小 %d 字节超过上限 %d 字节",
|
||||
"waf_ip_group_synchronization_completed_8c799689": "WAF IP 组同步完成",
|
||||
"waf_ip_group_synchronization_failed_v_3524af2d": "WAF IP 组同步失败: %v",
|
||||
"waf_rule_group_d_was_not_found_4e2d4084": "WAF 规则组 %d 不存在",
|
||||
"waf_rule_name_must_not_be_empty_92c1a213": "WAF 规则名称不能为空",
|
||||
"waf_rule_operation_failed_4e01c228": "WAF 规则操作失败",
|
||||
"waf_rule_was_not_found_d3a18a2e": "WAF 规则不存在",
|
||||
"waiting_for_image_cache_warmup_lock_quality_s_88fe5819": "等待获取图片缓存预热执行锁,质量: %s",
|
||||
"warm_up_compressed_image_cache_bd2f3c3f": "预热图片压缩缓存",
|
||||
"warning_source_file_is_missing_marking_it_deleted_552b422a": "警告: 源存储中物理文件不存在,标记为已删除并跳过: %s (错误: %v)",
|
||||
"webhook_url_658c6265": "Webhook 地址",
|
||||
"webp_compression_quality_must_be_low_medium_or_866b5127": "WebP 压缩质量,仅支持 low、medium、high",
|
||||
"wildcard_domain_names_are_not_supported_e40045cc": "不支持通配符域名",
|
||||
"years_cda14918": " 年 ",
|
||||
"zone_must_be_a_valid_registered_root_domain_cc7d1d33": "zone 必须是有效的注册根域",
|
||||
"zone_was_not_found_86db3707": "Zone 不存在",
|
||||
"public_error_a7274b96774b": "请填写通道名称",
|
||||
"public_error_9f24cd1da554": "通道名称只能包含英文字母、数字和下划线",
|
||||
"public_error_1b139d2dcf79": "请填写请求 URL 或地址",
|
||||
"public_error_88df46747841": "为确保安全,请求 URL 必须使用 HTTPS 协议",
|
||||
"public_error_29d0f4706829": "请填写请求体模板",
|
||||
"public_error_2127b11c4518": "请填写 Telegram 机器人 Token",
|
||||
"public_error_22bcab9337f1": "请求体模板必须是有效的 JSON 格式",
|
||||
"public_error_7c511ae7174a": "尚未配置人机验证",
|
||||
"public_error_71759e624238": "会话上下文无效",
|
||||
"public_error_b9cbe3209e14": "OAuth 状态与当前会话不匹配",
|
||||
"public_error_ff5184f57c49": "OAuth 绑定用户与当前会话不匹配",
|
||||
"public_error_b5121d590135": "ID 无效",
|
||||
"public_error_519c7fed477a": "通道 ID 无效",
|
||||
"public_error_190df01d2076": "通道不存在",
|
||||
"public_error_cbd9709fbd01": "此通知事件已配置",
|
||||
"public_error_b93a32137fc1": "自定义模板必须是有效的 JSON 格式",
|
||||
"public_error_add0341f2152": "请先配置至少一个推送通道,再启用事件",
|
||||
"public_error_e59e34f32d9f": "通道名称已存在",
|
||||
"public_error_cdb14a9d218e": "不支持的任务类型",
|
||||
"public_error_02fbf8eef643": "请提供 event_key 或 task_type",
|
||||
"public_error_7f64283d20ea": "不支持的内置事件标识",
|
||||
"public_error_eac68fcd302d": "事件 ID 无效",
|
||||
"public_error_c854c958bd9c": "通知事件不存在",
|
||||
"public_error_a37526e5d726": "自动注册重试凭证无效",
|
||||
"public_error_452209a49676": "自动注册凭证已更换,请使用分配的 Agent Token",
|
||||
"public_error_da739b170c48": "节点列表查询参数无效",
|
||||
"public_error_79e7e0ad56c0": "无法加载节点"
|
||||
}
|
||||
@@ -33,7 +33,7 @@ func ValidateWAFIPGroupSnapshotSize(groups map[string]WAFIPGroup) error {
|
||||
return err
|
||||
}
|
||||
if len(data) > MaxWAFIPGroupSnapshotBytes {
|
||||
return fmt.Errorf("WAF IP 组快照大小 %d 字节超过上限 %d 字节", len(data), MaxWAFIPGroupSnapshotBytes)
|
||||
return fmt.Errorf("WAF IP group snapshot size %d bytes exceeds the limit of %d bytes", len(data), MaxWAFIPGroupSnapshotBytes)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
defaultTitle = "系统通知"
|
||||
defaultTitle = "System notification"
|
||||
levelInfo = "INFO"
|
||||
defaultHTTPClientTimeout = 10 * time.Second
|
||||
)
|
||||
|
||||
@@ -83,11 +83,11 @@ func RenderMainConfig(doc Document) string {
|
||||
func ValidateMainConfigTemplate(templateText string) error {
|
||||
trimmed := strings.TrimSpace(templateText)
|
||||
if trimmed == "" {
|
||||
return errors.New("OpenRestyMainConfigTemplate 不能为空")
|
||||
return errors.New("OpenRestyMainConfigTemplate must not be empty")
|
||||
}
|
||||
for _, placeholder := range requiredMainConfigTemplatePlaceholders {
|
||||
if !strings.Contains(trimmed, placeholder) {
|
||||
return fmt.Errorf("OpenRestyMainConfigTemplate 必须保留占位符 %s", placeholder)
|
||||
return fmt.Errorf("OpenRestyMainConfigTemplate must retain placeholder %s", placeholder)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
||||
@@ -117,7 +117,7 @@ func renderPagesRoute(builder *strings.Builder, route Route, displayName, server
|
||||
certIDs := certificateIDsFromDomainCertIDs(route.DomainCertIDs)
|
||||
domainCertIDs := route.DomainCertIDs
|
||||
if len(certIDs) == 0 {
|
||||
return fmt.Errorf("路由 %s 未配置证书", route.SiteName)
|
||||
return fmt.Errorf("no certificate is configured for route %s", route.SiteName)
|
||||
}
|
||||
partition := partitionRouteDomainsByCert(normalizedRouteDomains(route), certIDs, domainCertIDs)
|
||||
if err := validateRouteCertificates(route, displayName, certIDs, partition, certificates); err != nil {
|
||||
@@ -143,7 +143,7 @@ func renderProxyRoute(builder *strings.Builder, route Route, displayName, server
|
||||
certIDs := certificateIDsFromDomainCertIDs(route.DomainCertIDs)
|
||||
domainCertIDs := route.DomainCertIDs
|
||||
if len(certIDs) == 0 {
|
||||
return fmt.Errorf("路由 %s 未配置证书", route.SiteName)
|
||||
return fmt.Errorf("no certificate is configured for route %s", route.SiteName)
|
||||
}
|
||||
partition := partitionRouteDomainsByCert(normalizedRouteDomains(route), certIDs, domainCertIDs)
|
||||
if err := validateRouteCertificates(route, displayName, certIDs, partition, certificates); err != nil {
|
||||
|
||||
@@ -20,11 +20,11 @@ const (
|
||||
|
||||
// DefaultSWOfflineHTML is the built-in contact page shown when the domain is blocked.
|
||||
const DefaultSWOfflineHTML = `<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>网站暂时无法访问 | 联系站长</title>
|
||||
<title>Website unavailable | Contact the administrator</title>
|
||||
<style>
|
||||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background: #ffffff; color: #333333; height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 48px 24px; }
|
||||
@@ -33,8 +33,8 @@ const DefaultSWOfflineHTML = `<!DOCTYPE html>
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>网站暂时无法访问</h1>
|
||||
<p>当前域名暂时无法从网络访问。请通过其他方式联系网站管理员获取最新访问入口。</p>
|
||||
<h1>Website temporarily unavailable</h1>
|
||||
<p>This domain is temporarily unreachable. Contact the website administrator through another channel for the latest access address.</p>
|
||||
</body>
|
||||
</html>
|
||||
`
|
||||
|
||||
@@ -23,29 +23,29 @@ const (
|
||||
func ParseStatusCodeTag(tag string) (lo, hi int, err error) {
|
||||
tag = strings.TrimSpace(tag)
|
||||
if tag == "" {
|
||||
return 0, 0, errors.New("状态码标签不能为空")
|
||||
return 0, 0, errors.New("status code tag must not be empty")
|
||||
}
|
||||
if before, after, ok := strings.Cut(tag, "-"); ok {
|
||||
lo, err = strconv.Atoi(before)
|
||||
if err != nil {
|
||||
return 0, 0, fmt.Errorf("无效状态码区间: %s", tag)
|
||||
return 0, 0, fmt.Errorf("invalid status code range: %s", tag)
|
||||
}
|
||||
hi, err = strconv.Atoi(after)
|
||||
if err != nil {
|
||||
return 0, 0, fmt.Errorf("无效状态码区间: %s", tag)
|
||||
return 0, 0, fmt.Errorf("invalid status code range: %s", tag)
|
||||
}
|
||||
} else {
|
||||
lo, err = strconv.Atoi(tag)
|
||||
if err != nil {
|
||||
return 0, 0, fmt.Errorf("无效状态码: %s", tag)
|
||||
return 0, 0, fmt.Errorf("invalid status code: %s", tag)
|
||||
}
|
||||
hi = lo
|
||||
}
|
||||
if lo > hi {
|
||||
return 0, 0, fmt.Errorf("状态码区间左右端点反序: %s", tag)
|
||||
return 0, 0, fmt.Errorf("status code range endpoints are reversed: %s", tag)
|
||||
}
|
||||
if lo < StatusCodeMin || hi > StatusCodeMax {
|
||||
return 0, 0, fmt.Errorf("状态码须在 %d–%d: %s", StatusCodeMin, StatusCodeMax, tag)
|
||||
return 0, 0, fmt.Errorf("status code must be between %d and %d: %s", StatusCodeMin, StatusCodeMax, tag)
|
||||
}
|
||||
return lo, hi, nil
|
||||
}
|
||||
|
||||
+14
-7
@@ -43,28 +43,35 @@ func Bytes2Size(num int64) string {
|
||||
return numStr + " " + unit
|
||||
}
|
||||
|
||||
// Seconds2Time converts a number of seconds to a human-readable Chinese duration string.
|
||||
// Seconds2Time converts a number of seconds to a human-readable English duration string.
|
||||
func Seconds2Time(num int) (time string) {
|
||||
if num/secondsPerYear > 0 {
|
||||
time += strconv.Itoa(num/secondsPerYear) + " 年 "
|
||||
time += durationPart(num/secondsPerYear, "year") + " "
|
||||
num %= secondsPerYear
|
||||
}
|
||||
if num/secondsPerMonth > 0 {
|
||||
time += strconv.Itoa(num/secondsPerMonth) + " 个月 "
|
||||
time += durationPart(num/secondsPerMonth, "month") + " "
|
||||
num %= secondsPerMonth
|
||||
}
|
||||
if num/secondsPerDay > 0 {
|
||||
time += strconv.Itoa(num/secondsPerDay) + " 天 "
|
||||
time += durationPart(num/secondsPerDay, "day") + " "
|
||||
num %= secondsPerDay
|
||||
}
|
||||
if num/secondsPerHour > 0 {
|
||||
time += strconv.Itoa(num/secondsPerHour) + " 小时 "
|
||||
time += durationPart(num/secondsPerHour, "hour") + " "
|
||||
num %= secondsPerHour
|
||||
}
|
||||
if num/secondsPerMinute > 0 {
|
||||
time += strconv.Itoa(num/secondsPerMinute) + " 分钟 "
|
||||
time += durationPart(num/secondsPerMinute, "minute") + " "
|
||||
num %= secondsPerMinute
|
||||
}
|
||||
time += strconv.Itoa(num) + " 秒"
|
||||
time += durationPart(num, "second")
|
||||
return
|
||||
}
|
||||
|
||||
func durationPart(value int, unit string) string {
|
||||
if value != 1 {
|
||||
unit += "s"
|
||||
}
|
||||
return strconv.Itoa(value) + " " + unit
|
||||
}
|
||||
|
||||
@@ -35,12 +35,12 @@ func TestSeconds2Time(t *testing.T) {
|
||||
input int
|
||||
expected string
|
||||
}{
|
||||
{0, "0 秒"},
|
||||
{30, "30 秒"},
|
||||
{60, "1 分钟 0 秒"},
|
||||
{125, "2 分钟 5 秒"},
|
||||
{3600, "1 小时 0 秒"},
|
||||
{86400, "1 天 0 秒"},
|
||||
{0, "0 seconds"},
|
||||
{30, "30 seconds"},
|
||||
{60, "1 minute 0 seconds"},
|
||||
{125, "2 minutes 5 seconds"},
|
||||
{3600, "1 hour 0 seconds"},
|
||||
{86400, "1 day 0 seconds"},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
|
||||
Reference in New Issue
Block a user