Initial commit
This commit is contained in:
444
resources/js/locales/en/common.json
Normal file
444
resources/js/locales/en/common.json
Normal file
@@ -0,0 +1,444 @@
|
||||
{
|
||||
"active": "Active",
|
||||
"close": "Close",
|
||||
"email": "Email",
|
||||
"email_and_password_required": "Email and password are required.",
|
||||
"enter_email": "Enter your email",
|
||||
"enter_password": "Enter your password",
|
||||
"forgot_password": "Forgot password?",
|
||||
"inactive": "Inactive",
|
||||
"login_dialog_label": "Login to VCM admin",
|
||||
"logout_failed": "Logout failed",
|
||||
"password": "Password",
|
||||
"qso_count_one": "{{count}} QSO",
|
||||
"qso_count_other": "{{count}} QSOs",
|
||||
"remember_me": "Remember me",
|
||||
"sign_in": "Sign in",
|
||||
"title": "VKV Contests",
|
||||
"unable_to_sign_in": "Unable to sign in.",
|
||||
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
|
||||
"rounds_loading": "Loading rounds…",
|
||||
"unable_to_load_rounds": "Unable to load rounds.",
|
||||
"rounds_empty": "No rounds available.",
|
||||
"round_name": "Round",
|
||||
"round_contest": "Contest",
|
||||
"round_schedule": "Schedule",
|
||||
"round_active": "Active",
|
||||
"round_test": "Test",
|
||||
"round_logs_deadline": "Logs deadline",
|
||||
"round_logs_deadline_passed": "The deadline for uploading logs has passed.",
|
||||
"edit_round": "Edit round",
|
||||
"upload_log_title": "Upload log",
|
||||
"select_file": "Select file",
|
||||
"upload": "Upload file to server",
|
||||
"upload_pband_mapped": "PBand \"{{original}}\" from EDI matches band \"{{mapped}}\".",
|
||||
"upload_pband_missing": "PBand is missing in the file, choose a band.",
|
||||
"upload_file_not_supported": "Unsupported file: missing [REG1TEST;1] header.",
|
||||
"upload_spowe_normalized_from": "SPowe normalized from \"{{from}}\" to \"{{to}}\".",
|
||||
"upload_spowe_normalized_to": "SPowe normalized to \"{{value}}\".",
|
||||
"upload_filename_missing_fields": "Fill in PCall, PSect, and PBand so the filename can be checked.",
|
||||
"upload_filename_unknown_code": "Unable to determine the filename prefix for the selected category and band.",
|
||||
"upload_filename_valid": "The filename matches the required format.",
|
||||
"upload_filename_invalid": "The filename does not match the required format. Suggested: {{expected}}",
|
||||
"upload_filename_normalize": "Normalize name",
|
||||
"upload_filename_used": "Upload will use: {{name}}",
|
||||
"upload_error_pick_file": "Select a file.",
|
||||
"upload_error_pick_band": "Select a band (PBand).",
|
||||
"upload_error_band_unknown": "PBand \"{{band}}\" does not match known bands, choose a valid one.",
|
||||
"upload_error_pwwlo_required": "PWWLo is required.",
|
||||
"upload_error_pwwlo_format": "PWWLo must have 6 characters in locator format (AA00AA).",
|
||||
"upload_error_rhbbs_required": "RHBBS is required.",
|
||||
"upload_error_rhbbs_format": "RHBBS must be a valid email.",
|
||||
"upload_warning_rhbbs_required": "RHBBS is missing. The log can be uploaded, but we recommend filling it in.",
|
||||
"upload_warning_rhbbs_format": "RHBBS is not a valid email address. The log can be uploaded, but we recommend fixing it.",
|
||||
"upload_error_tname_required": "TName is required.",
|
||||
"upload_error_pcall_required": "PCall is required.",
|
||||
"upload_error_pcall_format": "PCall must be a valid callsign.",
|
||||
"upload_error_psect_required": "PSect is required.",
|
||||
"upload_error_psect_invalid": "PSect is not valid.",
|
||||
"upload_error_psect_not_iaru": "PSect is not in IARU format.",
|
||||
"upload_error_spowe_required": "SPowe is required.",
|
||||
"upload_error_spowe_format": "SPowe must be a number (decimals allowed, without units).",
|
||||
"upload_error_spowe_length": "SPowe can be at most 12 characters.",
|
||||
"upload_error_spowe_limit": "SPowe ({{value}} W) exceeds limit for category {{category}} ({{limit}} W).",
|
||||
"upload_error_sante_required": "SAnte is required.",
|
||||
"upload_error_sante_length": "SAnte can be at most 12 characters.",
|
||||
"upload_warn_sante_length": "Only the first 12 characters will be shown in results; your antenna description is longer and will be truncated.",
|
||||
"upload_error_rcall_required": "RCall is required for this category.",
|
||||
"upload_error_rcall_format": "RCall must be a valid callsign.",
|
||||
"upload_error_mope_missing": "Fill at least MOpe1 or MOpe2 (you can enter multiple calls separated by space/semicolon/comma).",
|
||||
"upload_error_mope_invalid": "Invalid calls in MOpe1/MOpe2 ({{invalid}}).",
|
||||
"upload_error_not_allowed": "Uploading is not allowed.",
|
||||
"upload_file_drop_hint": "Drag & drop an EDI file here or click to choose.",
|
||||
"upload_psect_format_button": "Adjust categories by IARU",
|
||||
"upload_error_psect_normalize": "PSect cannot be normalized, fix errors and try again.",
|
||||
"upload_error_missing_round": "Missing round ID.",
|
||||
"upload_error_power_band_mismatch": "PSect \"{{psect}}\" contains a power category, but band \"{{band}}\" does not support it.",
|
||||
"upload_error_file_read": "The file could not be read.",
|
||||
"upload_failed": "Upload failed.",
|
||||
"files_uploaded": "Uploaded: {{files}}",
|
||||
"upload_hint_authenticated": "You can upload multiple files at once.",
|
||||
"upload_hint_closed": "Uploads are allowed during contest until logs deadline, or sign in.",
|
||||
"upload_hint_anonymous_once": "Anonymous upload allows only one file.",
|
||||
"upload_hint_anonymous": "Anonymous upload allows one file during contest until logs deadline.",
|
||||
"declared_note_line1": "Declared results are preliminary results for OK and OL stations.",
|
||||
"declared_note_line2": "Displayed international results are not official and are for comparison only.",
|
||||
"declared_note_line3": "Declared results are ordered based on the EDI header field CQSOP=. Other columns also show log data that are only checked for proper format.",
|
||||
"logs_loading": "Loading logs…",
|
||||
"logs_empty": "No logs available.",
|
||||
"unable_to_load_logs": "Unable to load logs.",
|
||||
"logs_waiting_processing": "Waiting for processing",
|
||||
"confirm_delete_log": "Really delete the log?",
|
||||
"edi_pcall_hint": "Callsign used during contest (PCall).",
|
||||
"edi_padr1_hint": "QTH address line 1 (PAdr1).",
|
||||
"edi_padr2_hint": "QTH address line 2 (PAdr2).",
|
||||
"edi_mope1_hint": "Multi-operator line 1 (MOpe1).",
|
||||
"edi_mope2_hint": "Multi-operator line 2 (MOpe2).",
|
||||
"edi_rcall_hint": "Responsible operator callsign (RCall).",
|
||||
"edi_radr1_hint": "Responsible operator address line 1 (RAdr1).",
|
||||
"edi_radr2_hint": "Responsible operator address line 2 (RAdr2).",
|
||||
"edi_rpoco_rcity_hint": "Postal code / city of responsible operator (RPoCo / RCity).",
|
||||
"edi_rcoun_hint": "Country of responsible operator (RCoun).",
|
||||
"edi_rphon_hint": "Phone of responsible operator (RPhon).",
|
||||
"edi_rhbbs_hint": "Home BBS of responsible operator (RHBBS).",
|
||||
"edi_stxeq_hint": "TX equipment (STXEq).",
|
||||
"edi_srxeq_hint": "RX equipment (SRXEq).",
|
||||
"edi_spowe_hint": "TX power in watts (SPowe).",
|
||||
"edi_sante_hint": "Antenna used (SAnte).",
|
||||
"edi_santh_hint": "Antenna height above ground/sea (SAntH).",
|
||||
"six_hr_band_warning": "6H category is allowed only for bands 145 MHz and 435 MHz.",
|
||||
"override_pre_match_title": "Manual overrides before matching",
|
||||
"override_pre_match_hint": "Changes take effect after clicking “Continue”. IGNORED excludes the log from matching.",
|
||||
"override_loading_logs": "Loading logs…",
|
||||
"override_no_logs": "No logs to edit.",
|
||||
"override_detail": "Detail",
|
||||
"override_detail_title": "Log detail",
|
||||
"override_reason_prefix": "Reason",
|
||||
"override_status_label": "Status",
|
||||
"override_status_auto": "AUTO",
|
||||
"override_status_ignored": "IGNORED",
|
||||
"override_status_check": "CHECK",
|
||||
"override_status_ok": "OK",
|
||||
"override_status_dq": "DQ",
|
||||
"override_band_label": "Band",
|
||||
"override_category_label": "Category",
|
||||
"override_power_label": "Power",
|
||||
"override_sixhr_label": "6H",
|
||||
"override_reason_label": "Reason for change",
|
||||
"override_auto": "AUTO",
|
||||
"override_save": "Save",
|
||||
"override_saving": "Saving…",
|
||||
"override_saved": "Saved.",
|
||||
"override_no_changes": "No changes.",
|
||||
"override_reason_required": "Please provide a reason for the change.",
|
||||
"override_save_failed": "Failed to save override.",
|
||||
"override_prev_page": "Previous",
|
||||
"override_next_page": "Next",
|
||||
"override_page_label": "Page {{page}} / {{lastPage}}",
|
||||
"qso_problem_label": "Problem",
|
||||
"qso_problem_reason": "Reason",
|
||||
"qso_problem_errors": "Errors",
|
||||
"qso_problem_side": "Side",
|
||||
"qso_problem_confidence": "Match",
|
||||
"qso_error_detail_exchange_serial_missing": "Serial is missing in the exchange.",
|
||||
"qso_error_detail_exchange_wwl_missing": "Locator (WWL) is missing in the exchange.",
|
||||
"qso_error_detail_exchange_custom_mismatch": "CUSTOM exchange does not match the expected format.",
|
||||
"qso_error_detail_exchange_serial_mismatch": "Serial mismatch between stations.",
|
||||
"qso_error_detail_exchange_wwl_mismatch": "Locator (WWL) mismatch between stations.",
|
||||
"qso_error_detail_exchange_serial_wwl_mismatch": "Serial and locator (WWL) mismatch.",
|
||||
"qso_error_detail_exchange_mismatch": "Exchange mismatch between stations.",
|
||||
"upload_hint_bulk_auth": "Bulk upload is available only for signed-in users.",
|
||||
|
||||
"results_table_rank": "Rank",
|
||||
"results_table_callsign": "Callsign",
|
||||
"results_table_locator": "Locator",
|
||||
"results_table_category": "Category",
|
||||
"results_table_band": "Band",
|
||||
"results_table_power_watt": "Power [W]",
|
||||
"results_table_power_category": "Power category",
|
||||
"results_table_score_total": "Total score",
|
||||
"results_table_claimed_score": "Declared score",
|
||||
"results_table_qso_count": "QSO count",
|
||||
"results_table_discarded_qso": "Discarded QSOs",
|
||||
"results_table_discarded_qso_help": "Count of QSOs with is_valid=false.",
|
||||
"results_table_discarded_points": "Discarded points",
|
||||
"results_table_unique_qso": "Unique QSOs",
|
||||
"results_table_score_per_qso": "Score / QSO",
|
||||
"results_table_odx": "ODX",
|
||||
"results_table_antenna": "Antenna",
|
||||
"results_table_antenna_height": "Antenna height",
|
||||
"results_table_status": "Status",
|
||||
"results_table_override_reason": "Referee note",
|
||||
"results_evaluating": "Evaluation in progress",
|
||||
"results_tab": "Results",
|
||||
"declared_results_tab": "Declared results",
|
||||
"uploaded_logs_tab": "Uploaded logs",
|
||||
"results_filter_all": "All results",
|
||||
"results_filter_ok_ol": "OK/OL competitors",
|
||||
"declared_recalculate": "Recalculate",
|
||||
"declared_recalculate_started": "Recalculation started.",
|
||||
"declared_recalculate_failed": "Failed to start recalculation.",
|
||||
"round_detail_title": "Round detail",
|
||||
"round_detail_tabs_aria": "Round detail tabs",
|
||||
"footer_rights": "© {{year}} VKV. All rights reserved.",
|
||||
"footer_docs": "Documentation",
|
||||
"footer_support": "Support",
|
||||
"results_type_final": "Final results",
|
||||
"results_type_declared": "Declared results",
|
||||
"results_type_log_collection_open": "Open for log collection",
|
||||
"results_type_not_started": "Contest not started yet",
|
||||
"results_type_preliminary": "Preliminary results",
|
||||
"results_type_test": "Test results",
|
||||
"evaluation_incremental_hint": "Restarting will reuse overrides from the last run.",
|
||||
"contests_title": "Contests",
|
||||
"contest_rounds_title": "Contest rounds",
|
||||
"open_rounds_title": "Contests:",
|
||||
"contest_index_page": "Contests overview",
|
||||
"select_none": "No contest selected",
|
||||
"select_contest": "Select contest",
|
||||
|
||||
"admin_form_close": "Close form",
|
||||
"admin_form_confirm_close": "The form has unsaved changes. Do you really want to close it?",
|
||||
"value_na": "—",
|
||||
"validation_number": "Must be a number.",
|
||||
"validation_integer": "Must be an integer.",
|
||||
"validation_json": "Invalid JSON.",
|
||||
"validation_name_required": "Name is required.",
|
||||
"validation_code_required": "Code is required.",
|
||||
"validation_range_1_100": "Range 1–100.",
|
||||
"validation_min_one": "Must be at least 1.",
|
||||
"validation_min_zero": "Must be at least 0.",
|
||||
"validation_range_0_2": "Range 0–2.",
|
||||
|
||||
"contest_new": "New contest",
|
||||
"contest_edit": "Edit contest",
|
||||
"contest_add_new": "Add new contest",
|
||||
"contest_rounds_title_named": "Contest rounds \"{{name}}\":",
|
||||
"round_new": "New round",
|
||||
"round_edit": "Edit round",
|
||||
"round_add_new": "Add new round",
|
||||
|
||||
"admin_news_title": "News",
|
||||
"admin_news_create": "New news",
|
||||
"admin_news_loading": "Loading news…",
|
||||
"admin_news_load_failed": "Failed to load news.",
|
||||
"admin_news_title_required": "Fill in the title in at least one language.",
|
||||
"admin_news_content_required": "Fill in the content in at least one language.",
|
||||
"admin_news_created": "News item created.",
|
||||
"admin_news_updated": "News item updated.",
|
||||
"admin_news_save_failed": "Failed to save news item.",
|
||||
"admin_news_table_aria": "News table",
|
||||
"admin_news_title_cs": "Title (cs)",
|
||||
"admin_news_title_en": "Title (en)",
|
||||
"admin_news_published_at": "Published",
|
||||
"admin_news_published_flag": "Visible",
|
||||
"admin_news_edit_aria": "Edit news item",
|
||||
"admin_news_form_title_cs": "Title (cs)",
|
||||
"admin_news_form_title_en": "Title (en)",
|
||||
"admin_news_form_excerpt_cs": "Excerpt (cs)",
|
||||
"admin_news_form_excerpt_en": "Excerpt (en)",
|
||||
"admin_news_form_content_cs": "Content (cs)",
|
||||
"admin_news_form_content_en": "Content (en)",
|
||||
"admin_news_form_published_from": "Published from",
|
||||
"admin_news_form_publish": "Publish",
|
||||
"admin_news_form_save": "Save changes",
|
||||
"admin_news_form_create": "Create news",
|
||||
|
||||
"admin_rulesets_title": "Rule sets",
|
||||
"admin_rulesets_loading": "Loading rule sets…",
|
||||
"admin_rulesets_load_failed": "Failed to load rule sets.",
|
||||
"admin_rulesets_fix_errors": "Fix the errors in the form.",
|
||||
"admin_rulesets_options_invalid_json": "Options are not valid JSON.",
|
||||
"admin_rulesets_updated": "Rule set updated.",
|
||||
"admin_rulesets_created": "Rule set created.",
|
||||
"admin_rulesets_save_failed": "Failed to save rule set.",
|
||||
"admin_rulesets_help": "Help",
|
||||
"admin_rulesets_help_title": "Ruleset documentation",
|
||||
"admin_rulesets_table_aria": "Rule sets table",
|
||||
"admin_rulesets_table_name": "Name",
|
||||
"admin_rulesets_table_code": "Code",
|
||||
"admin_rulesets_table_scoring": "Scoring",
|
||||
"admin_rulesets_table_multiplier": "Multiplier",
|
||||
"admin_rulesets_table_updated": "Updated",
|
||||
"admin_rulesets_edit_aria": "Edit rule set",
|
||||
"admin_rulesets_section_base_title": "Basics",
|
||||
"admin_rulesets_section_base_desc": "Rule set identity and a short description for referees.",
|
||||
"admin_rulesets_label_name": "Name",
|
||||
"admin_rulesets_label_code": "Code",
|
||||
"admin_rulesets_label_description": "Description",
|
||||
"admin_rulesets_section_scoring_title": "Scoring",
|
||||
"admin_rulesets_section_scoring_desc": "How points are calculated and distance rounding.",
|
||||
"admin_rulesets_label_scoring_mode": "Scoring mode",
|
||||
"admin_rulesets_label_points_per_qso": "Points / QSO",
|
||||
"admin_rulesets_label_points_per_km": "Points / km",
|
||||
"admin_rulesets_label_distance_rounding": "Distance rounding",
|
||||
"admin_rulesets_label_min_distance_km": "Min. distance (km)",
|
||||
"admin_rulesets_section_operating_window_title": "Operating window",
|
||||
"admin_rulesets_section_operating_window_desc": "Best 6H operating window selection (up to two segments separated by >=2h).",
|
||||
"admin_rulesets_label_operating_window_enabled": "6H operating window",
|
||||
"admin_rulesets_label_operating_window_hours": "Operating window (hours)",
|
||||
"admin_rulesets_label_sixhr_ranking_mode": "6H ranking mode",
|
||||
"admin_rulesets_section_matching_title": "Matching",
|
||||
"admin_rulesets_section_matching_desc": "Rules for pairing and callsign normalization.",
|
||||
"admin_rulesets_label_time_tolerance_sec": "Time tolerance (s)",
|
||||
"admin_rulesets_label_allow_time_shift": "Allow time shift",
|
||||
"admin_rulesets_label_time_shift_seconds": "Time shift (s)",
|
||||
"admin_rulesets_label_time_mismatch_policy": "Time mismatch policy",
|
||||
"admin_rulesets_label_allow_time_mismatch_pairing": "Pair outside tolerance",
|
||||
"admin_rulesets_label_time_mismatch_max_sec": "Max time mismatch (s)",
|
||||
"admin_rulesets_label_dup_resolution_strategy": "Dup resolution order",
|
||||
"admin_rulesets_label_dup_resolution_placeholder": "paired_first, ok_first, earlier_time, lower_id",
|
||||
"admin_rulesets_label_callsign_suffix_len": "Max suffix length",
|
||||
"admin_rulesets_label_callsign_levenshtein": "Levenshtein max",
|
||||
"admin_rulesets_label_callsign_normalization": "Callsign normalization",
|
||||
"admin_rulesets_label_checklog_matching": "Include CHECK logs in matching",
|
||||
"admin_rulesets_label_time_diff_dq_percent": "Time diff DQ %",
|
||||
"admin_rulesets_label_time_diff_dq_sec": "Time diff DQ (s)",
|
||||
"admin_rulesets_label_bad_qso_dq_percent": "Bad QSO DQ %",
|
||||
"admin_rulesets_label_match_require_locator": "Matching requires locator",
|
||||
"admin_rulesets_label_match_require_exchange": "Matching requires exchange",
|
||||
"admin_rulesets_label_tiebreak_order": "Tiebreak order",
|
||||
"admin_rulesets_label_tiebreak_placeholder": "time_diff, exchange_match, locator_match",
|
||||
"admin_rulesets_label_ignore_suffix": "Ignore suffix in call",
|
||||
"admin_rulesets_label_ignore_third_part": "Ignore 3rd part of call",
|
||||
"admin_rulesets_label_rst_ignore_third_char": "Ignore 3rd RST character",
|
||||
"admin_rulesets_label_letters_in_rst": "RST with letters",
|
||||
"admin_rulesets_section_exchange_title": "Exchange",
|
||||
"admin_rulesets_section_exchange_desc": "Exchange type and required parts.",
|
||||
"admin_rulesets_label_exchange_type": "Exchange type",
|
||||
"admin_rulesets_label_exchange_requires_wwl": "Require WWL",
|
||||
"admin_rulesets_label_exchange_requires_serial": "Require serial",
|
||||
"admin_rulesets_label_exchange_requires_report": "Report is part of exchange",
|
||||
"admin_rulesets_label_exchange_pattern": "Exchange regex",
|
||||
"admin_rulesets_warning_report_required": "Busted RST is evaluated only when “Report is part of exchange” is enabled.",
|
||||
"admin_rulesets_section_errors_title": "Duplicates and busted",
|
||||
"admin_rulesets_section_errors_desc": "How DUP/NIL/BUSTED situations are marked and scored.",
|
||||
"admin_rulesets_label_dupe_scope": "Dupe scope",
|
||||
"admin_rulesets_label_unique_qso": "Unique QSO",
|
||||
"admin_rulesets_label_busted_call_rx": "Busted call (RX)",
|
||||
"admin_rulesets_label_busted_call_tx": "Busted call (TX)",
|
||||
"admin_rulesets_label_busted_rst_rx": "Busted RST (RX)",
|
||||
"admin_rulesets_label_busted_rst_tx": "Busted RST (TX)",
|
||||
"admin_rulesets_label_busted_serial_rx": "Busted serial (RX)",
|
||||
"admin_rulesets_label_busted_serial_tx": "Busted serial (TX)",
|
||||
"admin_rulesets_label_busted_wwl_rx": "Busted WWL (RX)",
|
||||
"admin_rulesets_label_busted_wwl_tx": "Busted WWL (TX)",
|
||||
"admin_rulesets_label_busted_exchange_rx": "Busted exchange (RX)",
|
||||
"admin_rulesets_label_busted_exchange_tx": "Busted exchange (TX)",
|
||||
"admin_rulesets_label_dup_policy": "DUP policy",
|
||||
"admin_rulesets_label_nil_policy": "NIL policy",
|
||||
"admin_rulesets_label_no_counterpart_policy": "No counterpart policy",
|
||||
"admin_rulesets_label_not_in_counterpart_policy": "Not in counterpart policy",
|
||||
"admin_rulesets_label_unique_policy": "Unique policy",
|
||||
"admin_rulesets_label_busted_call_policy": "Busted call policy",
|
||||
"admin_rulesets_label_busted_rst_policy": "Busted RST policy",
|
||||
"admin_rulesets_label_busted_exchange_policy": "Busted exchange policy",
|
||||
"admin_rulesets_label_busted_serial_policy": "Busted serial policy",
|
||||
"admin_rulesets_label_busted_locator_policy": "Busted locator policy",
|
||||
"admin_rulesets_section_out_of_window_title": "Out-of-window",
|
||||
"admin_rulesets_section_out_of_window_desc": "Behavior for QSOs outside the contest time window.",
|
||||
"admin_rulesets_label_out_of_window_policy": "Out-of-window policy",
|
||||
"admin_rulesets_label_out_of_window_dq_threshold": "DQ threshold (out-of-window)",
|
||||
"admin_rulesets_label_require_locators": "Require locators",
|
||||
"admin_rulesets_section_multipliers_title": "Multipliers",
|
||||
"admin_rulesets_section_multipliers_desc": "Multiplier type and scope settings.",
|
||||
"admin_rulesets_label_use_multipliers": "Use multipliers",
|
||||
"admin_rulesets_label_multiplier_type": "Multiplier type",
|
||||
"admin_rulesets_label_multiplier_scope": "Multiplier scope",
|
||||
"admin_rulesets_label_multiplier_source": "Multiplier source",
|
||||
"admin_rulesets_label_wwl_level": "WWL level",
|
||||
"admin_rulesets_section_penalties_title": "Penalties",
|
||||
"admin_rulesets_section_penalties_desc": "Penalty values per error type.",
|
||||
"admin_rulesets_label_penalty_dup": "Penalty DUP",
|
||||
"admin_rulesets_label_penalty_nil": "Penalty NIL",
|
||||
"admin_rulesets_label_penalty_busted_call": "Penalty busted call",
|
||||
"admin_rulesets_label_penalty_busted_rst": "Penalty busted RST",
|
||||
"admin_rulesets_label_penalty_busted_exchange": "Penalty busted exchange",
|
||||
"admin_rulesets_label_penalty_busted_serial": "Penalty busted serial",
|
||||
"admin_rulesets_label_penalty_busted_locator": "Penalty busted locator",
|
||||
"admin_rulesets_label_penalty_out_of_window": "Penalty out-of-window",
|
||||
"admin_rulesets_section_advanced_title": "Advanced",
|
||||
"admin_rulesets_section_advanced_desc": "Optional JSON rules extensions.",
|
||||
"admin_rulesets_label_options_json": "Options (JSON)",
|
||||
"admin_rulesets_create": "New rule set",
|
||||
"admin_rulesets_save": "Save changes",
|
||||
"admin_rulesets_form_create_title": "New rule set",
|
||||
"admin_rulesets_form_edit_title": "Edit rule set",
|
||||
|
||||
"edi_error_file_empty": "{{name}}: file is empty.",
|
||||
"edi_error_missing_header": "{{name}}: missing header [REG1TEST;1].",
|
||||
"edi_error_missing_field": "{{name}}: missing {{field}}.",
|
||||
"edi_error_tdate_format": "{{name}}: TDate must be in YYYYMMDD;YYYYMMDD format and the first date must not be after the second.",
|
||||
"edi_error_pwwlo_format": "{{name}}: PWWLo must be a 6-character locator (AA00AA).",
|
||||
"edi_error_pcall_format": "{{name}}: PCall must be a valid callsign.",
|
||||
"edi_error_rcall_for_psect": "{{name}}: missing or invalid RCall for PSect {{psect}}.",
|
||||
"edi_error_mope_missing": "{{name}}: MOpe1/MOpe2 is required for multi operators.",
|
||||
"edi_error_mope_invalid": "{{name}}: invalid callsigns in MOpe1/MOpe2 ({{invalid}}).",
|
||||
"edi_error_missing_qso_records": "{{name}}: missing section [QSORecords;N].",
|
||||
"edi_error_qso_fields_min": "{{name}}: QSO #{{index}} has too few fields (at least {{min}} expected).",
|
||||
"edi_error_qso_date_format": "{{name}}: QSO #{{index}} has invalid date (YYMMDD).",
|
||||
"edi_error_qso_year_out_of_range": "{{name}}: QSO #{{index}} year is outside TDate range.",
|
||||
"edi_error_qso_date_out_of_range": "{{name}}: QSO #{{index}} date is outside TDate range.",
|
||||
"edi_error_qso_time_format": "{{name}}: QSO #{{index}} has invalid time (HHMM UTC).",
|
||||
"edi_error_qso_callsign": "{{name}}: QSO #{{index}} has invalid callsign.",
|
||||
"edi_error_qso_edit_in_file": "{{name}}: QSO records cannot be edited in the form, fix them in the file and upload again.",
|
||||
"edi_warning_qso_count_mismatch": "{{name}}: Declared QSO count ({{expected}}) does not match actual ({{actual}}).",
|
||||
"edi_error_psect_multiple_power": "PSect contains multiple power categories.",
|
||||
"edi_error_psect_time_not_allowed": "PSect contains 6H time category which is not allowed for this round.",
|
||||
"edi_warning_psect_time_not_allowed": "PSect contains 6H time category which is not allowed for this round. Upload is allowed, but we recommend fixing the value.",
|
||||
"edi_error_psect_multiple_time": "PSect contains multiple time categories.",
|
||||
"edi_error_psect_missing_operator": "PSect must contain SO or MO.",
|
||||
"edi_error_psect_check_extra": "PSect CHECK must not contain any other tokens.",
|
||||
"edi_error_psect_unknown_tokens": "PSect contains unknown tokens: {{tokens}}.",
|
||||
"edi_warning_psect_unknown_tokens": "Unknown tokens in PSect: {{tokens}}.",
|
||||
"edi_field_tname": "contest name (TName)",
|
||||
"edi_field_tdate": "contest date (TDate=YYYYMMDD;YYYYMMDD)",
|
||||
"edi_field_pcall": "callsign (PCall)",
|
||||
"edi_field_pwwlo": "locator (PWWLo)",
|
||||
"edi_field_psect": "section/category (PSect)",
|
||||
"edi_field_pband": "band used (PBand)",
|
||||
"edi_field_spowe": "power (SPowe)",
|
||||
"edi_field_sante": "antenna (SAnte)",
|
||||
"edi_field_cqsop": "QSO points (CQSOP)",
|
||||
"edi_field_ctosc": "total score (CToSc)",
|
||||
|
||||
"about_link": "About",
|
||||
"admin_contests_link": "Contests",
|
||||
"admin_news_link": "News",
|
||||
"admin_rulesets_link": "Rule sets",
|
||||
"admin_users_link": "Users",
|
||||
"admin_users_title": "Users",
|
||||
"admin_users_create": "New user",
|
||||
"admin_users_load_failed": "Failed to load users.",
|
||||
"admin_users_save_failed": "Failed to save user.",
|
||||
"admin_users_deactivate_failed": "Failed to deactivate user.",
|
||||
"admin_users_search": "Search name or email",
|
||||
"admin_users_name": "Name",
|
||||
"admin_users_email": "Email",
|
||||
"admin_users_password": "Password",
|
||||
"admin_users_password_hint": "Leave empty to keep unchanged",
|
||||
"admin_users_is_admin": "Admin",
|
||||
"admin_users_is_active": "Active",
|
||||
"admin_users_actions": "Actions",
|
||||
"admin_users_loading": "Loading...",
|
||||
"admin_users_empty": "No users.",
|
||||
"admin_users_edit": "Edit",
|
||||
"admin_users_deactivate": "Deactivate",
|
||||
"admin_users_edit_title": "Edit user",
|
||||
"admin_users_create_title": "New user",
|
||||
"admin_users_saving": "Saving…",
|
||||
"admin_users_save": "Save",
|
||||
"admin_link": "Administration",
|
||||
"contests_link": "Contests",
|
||||
"contests_left_title": "Contests",
|
||||
"home_link": "Home",
|
||||
"login_link": "Login",
|
||||
"logout_link": "Logout",
|
||||
"back": "Back",
|
||||
"log": "Log",
|
||||
|
||||
"news_show_more": "Show more"
|
||||
}
|
||||
78
resources/js/locales/en/ruleset.json
Normal file
78
resources/js/locales/en/ruleset.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"ruleset_help_name": "Ruleset name for administration; it does not affect scoring.",
|
||||
"ruleset_help_code": "Stable ruleset identifier for links, exports, and API; changing it can break references.",
|
||||
"ruleset_help_description": "Description for referees; it does not change the calculation.",
|
||||
"ruleset_help_scoring_mode": "Scoring method: DISTANCE = points from km; FIXED_POINTS = fixed points per valid QSO.",
|
||||
"ruleset_help_points_per_qso": "Used only in FIXED_POINTS; valid QSO gets this many points.",
|
||||
"ruleset_help_points_per_km": "Used only in DISTANCE; points = distance_km * points_per_km (after rounding).",
|
||||
"ruleset_help_use_multipliers": "Enables multipliers in aggregation; when off, multiplier_count=1.",
|
||||
"ruleset_help_multiplier_type": "Multiplier type to collect from QSOs (WWL/DXCC/SECTION/COUNTRY).",
|
||||
"ruleset_help_multiplier_scope": "PER_BAND counts per band; OVERALL counts all together.",
|
||||
"ruleset_help_multiplier_source": "VALID_ONLY uses valid QSOs; ALL_MATCHED uses all matched (even invalid).",
|
||||
"ruleset_help_wwl_multiplier_level": "WWL level (2/4/6) used to count uniques.",
|
||||
"ruleset_help_checklog_matching": "When off, CHECK logs are excluded from matching and cannot form pairs.",
|
||||
"ruleset_help_dupe_scope": "Duplicate scope: BAND within band only; BAND_MODE also by mode.",
|
||||
"ruleset_help_callsign_normalization": "How callsigns are normalized for matching and busted checks.",
|
||||
"ruleset_help_callsign_suffix_max_len": "Max suffix length after slash to ignore (longer suffix is kept).",
|
||||
"ruleset_help_callsign_levenshtein_max": "Maximum Levenshtein distance for tolerant callsign matching (0–2).",
|
||||
"ruleset_help_distance_rounding": "How distance_km is rounded before scoring (FLOOR/ROUND/CEIL).",
|
||||
"ruleset_help_min_distance_km": "QSOs below this distance get 0 points or can be marked invalid.",
|
||||
"ruleset_help_operating_window_mode": "Enables the 6H operating window: up to two segments separated by >=2h are counted (total duration <= 6 hours).",
|
||||
"ruleset_help_operating_window_hours": "Total operating time is fixed (6 hours).",
|
||||
"ruleset_help_sixhr_ranking_mode": "IARU = one combined 6H table without SO/MO; CRK = separate SO and MO rankings.",
|
||||
"ruleset_help_time_tolerance_sec": "Max time delta for matching; outside tolerance reduces matching or yields NIL.",
|
||||
"ruleset_help_allow_time_shift_one_hour": "Allows time shift (typically +1h) during matching and flags QSOs as TIME_SHIFT.",
|
||||
"ruleset_help_time_shift_seconds": "Time shift in seconds used as an alternative matching window (e.g. 3600).",
|
||||
"ruleset_help_time_mismatch_policy": "How to handle time mismatch: INVALID marks QSO invalid; ZERO_POINTS keeps valid but 0 points; FLAG_ONLY keeps points; PENALTY sets 0 points and adds penalty.",
|
||||
"ruleset_help_allow_time_mismatch_pairing": "Allow pairing outside time tolerance; resulting QSO is flagged TIME_MISMATCH.",
|
||||
"ruleset_help_time_mismatch_max_sec": "Maximum time delta (seconds) for pairing outside tolerance; NULL = unlimited.",
|
||||
"ruleset_help_time_diff_dq_threshold_percent": "If more than this share of matched QSOs exceeds the time threshold, the log is marked DQ.",
|
||||
"ruleset_help_time_diff_dq_threshold_sec": "Time threshold in seconds used to compute the share of QSOs with large time difference.",
|
||||
"ruleset_help_bad_qso_dq_threshold_percent": "If the share of bad QSOs (NIL/DUP/BUSTED/OUT) reaches this value, the log is disqualified (DQ).",
|
||||
"ruleset_help_out_of_window_dq_threshold": "Out-of-window QSO count that flips the log to DQ.",
|
||||
"ruleset_help_require_locators": "Without locators, QSOs are marked invalid or score 0.",
|
||||
"ruleset_help_require_unique_qso": "Duplicate QSOs are marked DUP and do not score.",
|
||||
"ruleset_help_out_of_window_policy": "How to handle out-of-window QSOs: IGNORE/0 points/PENALTY/INVALID.",
|
||||
"ruleset_help_exchange_type": "Defines what is part of the exchange and checked for busted_exchange.",
|
||||
"ruleset_help_exchange_requires_wwl": "If WWL is missing, the QSO is marked invalid/busted per rules.",
|
||||
"ruleset_help_exchange_requires_serial": "If serial is missing, the QSO is marked invalid/busted per rules.",
|
||||
"ruleset_help_exchange_requires_report": "RST is part of the exchange; mismatch can lead to BUSTED_RST.",
|
||||
"ruleset_help_exchange_pattern": "Regex for CUSTOM exchange; non-matching value => busted_exchange.",
|
||||
"ruleset_help_match_tiebreak_order": "Tie-break order when choosing a candidate (time, exchange, locator...).",
|
||||
"ruleset_help_match_require_locator_match": "Matching allows only candidates with matching locator; otherwise NIL.",
|
||||
"ruleset_help_match_require_exchange_match": "Matching allows only candidates with matching exchange; otherwise NIL.",
|
||||
"ruleset_help_letters_in_rst": "Allow alphanumeric RST; otherwise only digits are valid.",
|
||||
"ruleset_help_ignore_slash_part": "Ignore suffix after slash during normalization (e.g. /P).",
|
||||
"ruleset_help_ignore_third_part": "Ignore the third part of a callsign (e.g. OK1ABC/0/P).",
|
||||
"ruleset_help_rst_ignore_third_char": "Ignores the 3rd character of RST when comparing (e.g. 59X).",
|
||||
"ruleset_help_discard_qso_rec_diff_call": "If the received callsign (DX call) differs from the other station’s sent callsign, the QSO is flagged BUSTED_CALL with error_side=RX. Points are zero; penalties apply per busted_call_policy.",
|
||||
"ruleset_help_discard_qso_sent_diff_call": "If the sent callsign differs from the other station’s received callsign, the QSO is flagged BUSTED_CALL with error_side=TX. Points for the current station stay; penalties belong to the counterpart.",
|
||||
"ruleset_help_discard_qso_rec_diff_rst": "Received RST mismatch flags BUSTED_RST with error_side=RX. Points 0; penalty per busted_rst_policy.",
|
||||
"ruleset_help_discard_qso_sent_diff_rst": "Sent RST mismatch flags BUSTED_RST with error_side=TX. Points stay for current station; penalties belong to the counterpart.",
|
||||
"ruleset_help_discard_qso_rec_diff_serial": "Received serial mismatch flags BUSTED_SERIAL with error_side=RX. Policy uses busted_serial_policy.",
|
||||
"ruleset_help_discard_qso_sent_diff_serial": "Sent serial mismatch flags BUSTED_SERIAL with error_side=TX. Points stay for current station; penalties belong to the counterpart.",
|
||||
"ruleset_help_discard_qso_rec_diff_wwl": "Received locator mismatch flags BUSTED_LOCATOR with error_side=RX. Policy uses busted_locator_policy.",
|
||||
"ruleset_help_discard_qso_sent_diff_wwl": "Sent locator mismatch flags BUSTED_LOCATOR with error_side=TX. Points stay for current station; penalties belong to the counterpart.",
|
||||
"ruleset_help_discard_qso_rec_diff_code": "Received exchange mismatch flags BUSTED_SERIAL or BUSTED_LOCATOR (by exchange type) with error_side=RX. Policies use busted_serial_policy/busted_locator_policy.",
|
||||
"ruleset_help_discard_qso_sent_diff_code": "Sent exchange mismatch flags BUSTED_SERIAL or BUSTED_LOCATOR (by exchange type) with error_side=TX. Points stay for current station; penalties belong to the counterpart.",
|
||||
"ruleset_help_dup_resolution_strategy": "Order of rules for selecting the survivor among duplicates (paired_first, ok_first, earlier_time, lower_id).",
|
||||
"ruleset_help_dup_qso_policy": "DUP: ZERO_POINTS = 0; PENALTY = 0 + penalty.",
|
||||
"ruleset_help_nil_qso_policy": "NIL: ZERO_POINTS = 0; PENALTY = 0 + penalty.",
|
||||
"ruleset_help_no_counterpart_log_policy": "No counterpart log: INVALID = invalid; ZERO_POINTS = valid with 0; FLAG_ONLY = keep points; PENALTY = 0 + penalty.",
|
||||
"ruleset_help_not_in_counterpart_log_policy": "Not in counterpart log: INVALID = invalid; ZERO_POINTS = valid with 0; FLAG_ONLY = keep points; PENALTY = 0 + penalty.",
|
||||
"ruleset_help_unique_qso_policy": "Unique QSO: INVALID = invalid; ZERO_POINTS = valid with 0; FLAG_ONLY = keep points.",
|
||||
"ruleset_help_busted_call_policy": "BUSTED_CALL: ZERO_POINTS = 0; PENALTY = 0 + penalty.",
|
||||
"ruleset_help_busted_rst_policy": "BUSTED_RST: ZERO_POINTS = 0; PENALTY = keep points + penalty.",
|
||||
"ruleset_help_busted_exchange_policy": "BUSTED exchange fallback: ZERO_POINTS = 0; PENALTY = 0 + penalty.",
|
||||
"ruleset_help_busted_serial_policy": "BUSTED_SERIAL: ZERO_POINTS = 0; PENALTY = 0 + penalty.",
|
||||
"ruleset_help_busted_locator_policy": "BUSTED_LOCATOR: ZERO_POINTS = 0; PENALTY = 0 + penalty.",
|
||||
"ruleset_help_penalty_dup_points": "Penalty points (negative) for DUP when policy= PENALTY.",
|
||||
"ruleset_help_penalty_nil_points": "Penalty points (negative) for NIL when policy= PENALTY.",
|
||||
"ruleset_help_penalty_busted_call_points": "Penalty points (negative) for BUSTED_CALL when policy= PENALTY.",
|
||||
"ruleset_help_penalty_busted_rst_points": "Penalty points (negative) for BUSTED_RST when policy= PENALTY.",
|
||||
"ruleset_help_penalty_busted_exchange_points": "Penalty points (negative) for BUSTED exchange fallback when policy= PENALTY.",
|
||||
"ruleset_help_penalty_busted_serial_points": "Penalty points (negative) for BUSTED_SERIAL when policy= PENALTY.",
|
||||
"ruleset_help_penalty_busted_locator_points": "Penalty points (negative) for BUSTED_LOCATOR when policy= PENALTY.",
|
||||
"ruleset_help_penalty_out_of_window_points": "Penalty points for out-of-window QSOs when out_of_window_policy= PENALTY.",
|
||||
"ruleset_help_options_json": "Optional rule extensions in JSON; they affect scoring only if code reads the key."
|
||||
}
|
||||
Reference in New Issue
Block a user