Files

919 lines
44 KiB
YAML

en:
api:
errors:
user_concurrent_stream: "You already have a live stream running on this account. Stop it before starting another."
password_policy:
hint: "At least 8 characters, including 3 of: lowercase, uppercase, numbers and symbols."
activerecord:
errors:
models:
user:
attributes:
password:
too_short: "is too short (minimum is %{count} characters)"
too_long: "is too long (maximum is %{count} characters)"
complexity: "must include at least 3 of: lowercase letters, uppercase letters, numbers and symbols"
admin_account:
attributes:
password:
too_short: "is too short (minimum is %{count} characters)"
too_long: "is too long (maximum is %{count} characters)"
complexity: "must include at least 3 of: lowercase letters, uppercase letters, numbers and symbols"
app_announcement:
no_channel: Select at least one destination (apps, public website or logged-in area).
translation_too_long: "Translation %{locale}: a field is too long."
translation_invalid_url: "Translation %{locale}: the link must be an http(s) URL."
club:
back_to_club: "← Club"
sport_label: Main sport
branding_legend: Club logo and colors
branding:
legend: Visual identity
inherit_hint: Leave blank to use the club's logo and colors.
logo_file_label: Logo (image)
logo_preview_alt: Logo preview
no_logo_placeholder: "No logo — choose a file for the preview"
logo_url_label: Logo (alternative URL)
primary_color_label: Primary color
secondary_color_label: Secondary color
choose_color: Choose color
quick_colors: Quick colors
header_preview_label: Header preview
name_placeholder: Club / team name
cover_legend: Live cover (sponsors)
cover_inherit_hint: Leave blank to use the club cover, otherwise the default Match Live TV cover.
cover_hint: "16:9 image recommended (PNG, JPEG or WebP, max 5 MB). Shown to viewers and YouTube when paused or offline."
cover_file_label: Cover image
cover_preview_alt: Live cover preview
cover_remove_label: Remove custom cover
cover_reset_button: Restore standard cover
cover_reset_pending_hint: The standard cover will be restored when you save.
cover_requires_full: Custom sponsor covers are available on the Premium Full plan.
cover_see_plans: See plans
dashboard:
title: "%{name} — Club"
plan_label: "Plan:"
teams_count_label: "Teams:"
edit_club: Edit club
subscription: Subscription
new_team: New team
tournaments: Tournaments
tournaments_full_badge: FULL
tournaments_locked_hint: Tournaments are available on Premium Full only.
new_tournament: New tournament
tournaments_heading: Tournaments
tournament_dates: Dates
tournament_status: Status
live_streams: Live streams
replay_archive: Replay archive
replay_heading: Replay
available: available
expiring_soon: "expiring soon (7 days)"
space_used: storage used
views: views
teams_heading: Teams
team_col: Team
branding_col: Branding
branding_custom: Custom
branding_inherited: Inherits from club
public_page: Public page
details: Details
matches: Matches
edit: Edit
no_teams_html: "No teams yet. %{link}."
add_first_team: Add the first one
footer_note: "Each team has its own broadcast managers. The score from a second phone uses the control-room link (no account needed). The subscription covers the whole club."
edit:
title: "Edit club — %{name}"
heading: Edit club
name_label: Club name
save: Save
new:
title: "Register a club — Match Live TV"
meta_description: Create your sports club and its first team on Match Live TV.
heading: Your club
lead: "Register the club: you'll be able to add more teams (Under 13, Under 15, first team…)."
section_club: Club
name_label: Club name
name_placeholder: "e.g. Team MLTV"
section_first_team: First team
default_first_team_name: First team
first_team_name_label: Team name
first_team_name_placeholder: "e.g. Under 15"
plan_label: "Starting plan (for the whole club)"
plan_free: "Free — 1 transmitter account per team, 1 live stream"
plan_light: "Premium Light — €59/year"
plan_full: "Premium Full — €199/year"
plan_hint: "Card, bank transfer or monthly billing are chosen later on the Subscription page. A paid plan activates only after payment."
submit: Create club
billing:
title: "Subscription — %{name}"
comped:
title: Complimentary Match Live TV subscription
plan_prefix: "— plan"
no_payment_html: "No payment is required. To make changes or switch to a paid plan, contact %{email_link}."
youtube:
heading: YouTube Live
connected_notice: Club YouTube channel connected successfully.
light_body_html: "With the <strong>Premium Light</strong> plan, YouTube live streams for all teams go to the official <strong>Match Live TV</strong> channel. You don't need to connect a club channel."
light_ready: "Channel ready · select «YouTube Live» in the mobile app."
light_configuring: Match Live TV channel being configured server-side. Contact support if YouTube doesn't appear in the app.
full_connected_html: "Channel connected for <strong>the whole club</strong>: <strong>%{channel}</strong>"
full_connected_hint: All teams can stream to this channel when they choose the club channel in the app.
disconnect: Disconnect channel
disconnect_confirm: Disconnect the YouTube channel? Streams will use the Match Live TV channel until you reconnect yours.
full_not_connected_html: "Without a connected channel, YouTube streams from the app go to the official <strong>Match Live TV</strong> channel. Connect your club's YouTube channel here (applies to all teams)."
ready_in_app: "YouTube ready in the app (Match Live TV channel until you connect yours)."
connect: Connect the club's YouTube channel
oauth_not_configured: YouTube OAuth not configured on the server yet.
requires_full: YouTube on the club channel requires the Premium Full plan.
see_plans: See plans
team:
back_to_details: "← Team details"
sport_label: Sport
details:
title: "Details — %{name}"
meta_description: "%{name} team details on Match Live TV."
nav_aria: Team breadcrumb
edit_team: Edit team
plan_label: "Plan:"
plan_scope_club: (club)
staff_label: "Broadcast managers:"
active_matches_label: "Active matches:"
unlimited: unlimited
no_description: No description yet.
add_description_link: Add one from edit team
roster_count_label: on the roster
no_photo: Team photo not uploaded yet
add_photo_link: Add one from edit team
public_page: Public page
streaming_managers: Broadcast managers
schedule_matches: Schedule matches
live_streams: Live streams
no_people_in_category: No one in this category yet.
youtube_hint_html: "The club's YouTube channel is set up from the %{club_link} page (YouTube Live section)."
footer_note: Use the mobile app with the same credentials to start matches and streams.
edit:
title: "Edit team — %{name}"
club_label: "Club:"
name_label: Team name
description_label: Team description
description_placeholder: "Team introduction, achievements, season goals…"
photo_label: "Team photo (group or crest)"
photo_alt: Team photo
branding_legend: Team branding (override)
slug_label: Public page address
slug_hint_html: "Parents and fans find the team at <strong>%{base_url}/teams/%{slug}</strong>"
slug_title: "Lowercase letters, numbers and hyphens only"
roster_public_label: Show the roster on the public page
roster_public_hint: When enabled, players and staff are visible to anyone with the link. You can leave it off for privacy.
club_colors_label: "Club colors:"
submit: Save team
new:
title: "New team — %{name}"
heading: New team
club_label: "Club:"
name_label: Team name
name_placeholder: "e.g. U15 boys"
branding_legend: Branding override (optional)
submit: Add team
invite:
title: "Broadcast staff — %{name}"
heading: Broadcast managers
assigned_label: "Assigned:"
per_team_note: (per team, renewed yearly)
info: "The broadcast manager starts the live stream from the app (camera on a tripod). For scoring from a second phone, no account is needed: they share the <strong>control-room link</strong> from the broadcast screen (WhatsApp, email, SMS, etc.)."
self_assign_hint_html: "<strong>%{email}</strong> — you can handle both camera and score yourself, or invite others for the broadcast."
self_assign_submit: I'll do it — broadcast manager
invite_other_heading: Invite another email
email_label: Broadcast manager's email
submit: Send invite by email
share_hint: "Link also sent by email (valid for 7 days):"
billing:
title: "Subscription — %{name}"
team_label: "Team:"
current_plan_label: "Current plan:"
staff_line: "Broadcast staff: %{count} / year"
matches_line: "Matches: %{count} concurrent"
replay_line: "Replay: %{value}"
replay_days: "%{count} days"
replay_none: "no"
youtube_line: "YouTube: %{value}"
youtube_mltv: Match Live TV
youtube_club: club channel
youtube_none: "no"
current_plan: Current plan
manage_club_subscription: Manage club subscription
stripe_not_configured: Stripe not configured
contact_lead: "Different needs?"
contact_cta: Contact us
contact_trailer: for a custom offer.
club_payments_link: Club payments and invoices
streaming_staff:
principal_heading: Main account
principal_body_html: "The account used to register the club (<strong>%{email}</strong>) is the one <strong>designated for this team</strong>: use it in the app to start the live stream."
principal_score_hint_html: "For scoring from another phone, share the <strong>control-room link</strong> during the stream (no second account needed)."
extra_staff_heading: Other accounts that can broadcast
self_account_heading: "Your account (%{email})"
self_account_hint: "You can manage streaming from the app. For scoring from another phone, share the <strong>control-room link</strong> during the stream (no second account needed)."
self_assign_submit: I'll do it — broadcast manager
staff_heading: Broadcast managers (app)
col_name: Name
col_email: Email
col_role: Role
role_transmission: Broadcast
you_suffix: (you)
clear_self_staff: Remove staff role
clear_self_staff_confirm: Remove the staff role from your account?
revoke: Revoke
revoke_confirm: "Revoke access for %{name}?"
no_staff: No broadcast managers yet.
invite_someone: Invite someone
invite_form_heading: Invite an account to broadcast
invite_form_hint: "This is not the roster (players/on-court staff). Enter the email: we send the link automatically; you can also copy and share it."
invite_once_note: "If needed, copy the link below for a second share (WhatsApp, SMS)."
copied: Copied
pending_invitations_heading: Pending invitations
col_email_short: Email
col_expires: Expires
cancel_invitation: Cancel
no_pending: No pending requests.
archive_heading: Replay archive
col_match: Match
col_date: Date
col_duration: Duration
col_expiry: Expiry
col_status: Status
watch: Watch
manage_all_replays: Manage all replays
no_recordings: No replays yet. Recordings appear here after Premium live streams end.
matches:
back_to_list: "← Match list"
opponent_label: Opponent
opponent_placeholder: "e.g. Team Guest"
location_label: "Location (optional)"
location_placeholder: "Gym, city"
datetime_label: Date and time
form_hint: "The stream doesn't start automatically: it will show up in the app and on the site. You'll start streaming from your phone once you're on site."
edit:
title: "Edit match — %{name}"
heading: Edit match
submit: Save changes
new:
title: "Schedule match — %{name}"
heading: Schedule match
submit: Save to schedule
index:
title: "Matches — %{name}"
heading: "Matches — %{name}"
lead: "Schedule date, opponent and venue here from your computer. Once you're in the gym, open the Match Live TV app, select this team and start streaming the match."
schedule_match: Schedule match
team_details: Team details
live_and_schedule: Streams and schedule
col_opponent: Opponent
col_datetime: "Date and time"
col_location: Location
col_status: Status
no_time: No time set
no_location: "—"
edit: Edit
delete: Delete
delete_confirm: Delete this match?
empty_html: "No matches scheduled yet. %{link}."
schedule_first: Schedule the first one
club_new:
title: "Schedule match — %{name}"
back_link: "← Streams and matches"
heading: Schedule match
admin_hint: "· You can pick any team in the club"
staff_hint: "· Only teams you're a broadcast manager for"
team_label: Team
submit: Save to schedule
status:
active: In progress / resumable
scheduled: Scheduled
ready: Ready
no_time: No time set
roster:
back_to_details: "← Team details"
category:
staff: Staff
coach: Coaches
manager: Managers
player: Players
role:
coach: Coach
manager: Manager
staff: Staff
player: Player
player_numbered: "Player #%{number}"
errors:
role_invalid: is not a valid role for this sport
photo_invalid_type: must be PNG, JPEG or WebP
role_select_blank: "— Select role —"
edit:
title: "Edit — %{name}"
member_form:
edit_heading: Edit profile
new_heading: Add person
lead: Fill in the fields and save to update the roster.
category_label: Group
full_name_label: Full name
full_name_placeholder: "e.g. Mario Rossi"
role_player_label: On-field role
role_other_label: "Role (optional)"
role_other_placeholder: "e.g. Head coach, President, Physiotherapist"
jersey_label: Jersey number
jersey_placeholder: "e.g. 7"
bio_label: Short description
bio_placeholder: "Brief profile description…"
photo_label: Photo
photo_hint: Without a photo, an avatar with the team's colors will be shown.
submit_edit: Save profile
submit_new: Add to roster
person_card:
edit: Edit
remove: Remove
remove_confirm: "Remove %{name} from the roster?"
billing:
heading: Subscription
entity_types:
company: "Club / non-profit with VAT number"
individual: Private individual
nonprofit: Non-profit association
profile_errors:
entity_type: Billing entity type
legal_name: Legal name or account holder's name
email: Billing email
address: Address
city: City
province: "Province (2-letter code)"
postal_code: Postal code
country: "Country (ISO)"
vat_number: VAT number
fiscal_code: Fiscal code
vat_or_fiscal: VAT number or fiscal code
sdi_or_pec: "SDI recipient code (7 characters) or certified email (PEC)"
sdi_invalid: "SDI recipient code (7 characters)"
actions:
current_plan: Current plan
contact_for_free: "To switch to the Free plan, contact support."
stripe_not_configured: Stripe not configured
stripe_prices_not_configured: Stripe prices not configured
complete_billing_prefix: Complete your billing details before activating a premium plan.
profile_incomplete_default: Complete your billing details before activating a premium plan.
profile_missing: "Missing: %{fields}."
profile:
title: "Billing details — %{name}"
heading: Billing details
lead: "Club: %{name}. Enter the details for invoice headers and delivery via SDI or certified email (PEC)."
required_notice: Required to subscribe to a premium plan.
after_save_hint_html: "After saving, you'll be able to proceed with payment for <strong>%{plan}</strong>."
submit: Save billing details
back_to_billing: "← Subscription"
fields:
legend: Billing details
legend_hint: "All marked fields are required to subscribe to a premium plan and to issue invoices. Clubs need a VAT number; private individuals need a fiscal code. You need either SDI or certified email (PEC). Payments remain securely handled by Stripe."
entity_type_label: "Billing entity type *"
legal_name_label: "Legal name / full name *"
legal_name_placeholder: "e.g. Team MLTV"
vat_number_label: "VAT number * (club)"
fiscal_code_label: "Fiscal code * (private individual)"
fiscal_code_placeholder: RSSMRA80A01H501U
email_label: "Billing email *"
email_placeholder: admin@club.com
phone_label: "Phone (optional)"
address_label: "Address *"
address_placeholder: "123 Main Street"
city_label: "City *"
province_label: "Province *"
province_placeholder: MI
postal_code_label: "Postal code *"
country_label: "Country (ISO) *"
recipient_code_label: "SDI recipient code (7 chars) *"
recipient_code_placeholder: XXXXXXX
pec_label: "Certified email PEC (alternative to SDI) *"
pec_placeholder: pec@club.com
documents:
heading: Payments and invoices
lead: History of the club's payments and invoices issued by Match Live TV.
incomplete_title: Billing details incomplete.
incomplete_body: Fill in legal name, address, VAT/fiscal code and SDI or PEC to receive invoices by email.
complete_now: Complete now
holder_label: "Account holder: %{summary}"
edit_data: Edit details
table_heading: Payments and invoices
col_date: Date
col_description: Description
col_amount: Amount
col_status: Payment status
col_invoice: Invoice
download_pdf: Download PDF
pdf_preparing: PDF being prepared
no_payments: No payments recorded yet. They will appear here after a premium subscription.
subscription_status:
club_label: "Club: %{name}"
current_plan_label: "Current plan: %{plan}"
comped_suffix: (complimentary Match Live TV)
valid_for_all_teams: (valid for all teams)
manage_subscription: Manage subscription
cancel_scheduled_html: "Subscription valid until <strong>%{date}</strong>, then the Free plan."
change_pending_html: "From <strong>%{date}</strong> you'll switch to <strong>%{plan}</strong>%{interval}. Until then <strong>%{current_plan}</strong> stays active."
end_of_period: end of the period
next_renewal: next renewal
next_renewal_label: "Next renewal: %{date}"
plan_change_info:
trigger_label: Plan change and billing info
title: Plan change and billing
subscription_cancel:
scheduled_title: Cancellation scheduled.
scheduled_body_html: "The <strong>%{plan}</strong> plan stays active until <strong>%{date}</strong>. From that day the club will automatically switch to the <strong>Free</strong> plan."
scheduled_end_of_period: end of the already-paid period
scheduled_support_hint: To restore the subscription before it expires, contact Match Live TV support.
info: "You can cancel at any time: the subscription stays valid until the end of the already-paid period, then you switch to the Free plan with no further charges."
cancel_button: Cancel subscription
confirm_with_date: "Confirm cancellation? The %{plan} plan will stay active until %{date}, then you'll switch to Free."
confirm_default: Confirm subscription cancellation?
stripe_secure:
compact_html: "Premium payments securely processed via <strong>Stripe</strong>."
full_html: "Premium plan payments are processed <strong>securely</strong> via <strong>Stripe</strong> (PCI DSS certified). Match Live TV never stores full card numbers."
messages:
upgrade_completed_with_amount: "Upgrade to %{plan} (%{interval}) completed. Immediate charge: %{amount}."
upgrade_completed_pending_charge: "Upgrade to %{plan} (%{interval}) completed. The charge for the difference is being processed on your saved card."
next_renewal: the next renewal
current_plan_generic: the current plan
downgrade_scheduled: "Switch to %{plan} (%{interval}) scheduled: you stay on %{current_name} until %{when}. No additional charge now; you'll pay the new price from the next cycle."
activate_button: "Activate %{plan} — %{price}"
switch_button: "Switch to %{plan} — %{price}"
upgrade_info_line: "Upgrade (higher plan or switch to annual billing): the difference is charged immediately to the saved Stripe card."
downgrade_info_line: "Downgrade between paid plans (e.g. Full → Light): the new plan takes effect from the next renewal; until then the current plan's features remain, with no additional charge now."
already_requested_line: "You already requested %{plan} from %{when}: until then %{current_plan} stays active."
prices:
yearly: "%{amount}/year"
monthly: "%{amount}/month"
regia:
meta_title_fallback: "Control room — Match Live TV"
title: "Control room — %{home} vs %{away}"
subtitle_prefix: "Control room ·"
status:
ended: Ended
paused: Paused
live: Live
waiting: Waiting
live_share_label: Live
share_live: Share live link
share_action: Share
copy_link: Copy link
copy_action: Copy
copy_live: Copy live
copy_regia: Copy room
links_nav: Quick actions
regia_share_label: Control
stream_controls_label: Live
share_regia: Share control room link
preview_ended: Stream ended
preview_waiting: Waiting for signal…
preview_hide: Hide preview
preview_show: Show preview
preview_off_hint: Preview off · no video download
pause: Pause stream
resume: Resume stream
mute: Mute audio
unmute: Unmute audio
stop: End stream
min_quality:
label: Minimum streaming quality
summary: Quality
hint: The encoder will not go below this level. Automatic adapts bitrate to reduce stalls.
recommend: "Automatic is recommended: it adapts to the network and the phone, without forcing maximum quality."
auto: Automatic
telemetry:
label: Phone
waiting: Waiting for the phone…
stale: Phone not responding
just_now: now
seconds_ago: "%{n}s ago"
publisher_on: RTMP ok
publisher_off: RTMP down
battery: Battery
network: Network
bitrate: Bitrate
bitrate_max: "max %{n}"
bitrate_title: "%{current} Mbps current · max %{target} Mbps"
bitrate_tap: Tap to set the minimum quality
fps: FPS
thermal: Temp.
thermal_nominal: OK
thermal_fair: Warm
thermal_serious: Hot
thermal_critical: Critical
modal:
set_won_title: Set won
confirm: Close set
confirm_action: Confirm
cancel: Cancel
board:
next_period: Next quarter
next_half: Next half
close_set: Close set
free_score: Free score
stopwatch: Stopwatch
generic_score: Score
start: Start
pause: Pause
reset: Reset
points_suffix: pts
partials_prefix: "Partials:"
set_label: "Set %{number}"
js:
period_updated: Period updated
now_in_period: "Now in %{period}"
set_won_body: "%{winner} won the set. Close the set?"
match_won_title: Match won
match_won_body: "%{winner} won the match. Close the stream?"
close_set_confirm: Confirm closing the current set?
score_update_error: Score update error
generic_error: Error
sets_line: "Set %{current} · Sets won %{home}-%{away}"
quarter_label: "Q%{n}"
half_label: "Half %{n}"
overtime_basket: "OT%{n}"
overtime_other: OT
unknown_period: "—"
resumed: Stream resumed
paused_cover: "Stream paused — cover on air"
muted: "Audio muted — YouTube is not receiving the microphone"
unmuted: "Microphone audio restored"
closed: Stream closed
resume_error: Error resuming the stream
pause_error: Error pausing the stream
mute_error: Error muting audio
close_error: Error closing
close_confirm: Permanently close the live stream?
pause_confirm_title: Pause the live stream?
pause_confirm_body: The cover slate will stay on air until you resume.
resume_confirm_title: Resume the live stream?
resume_confirm_body: The camera will go back on air instead of the cover slate.
mute_confirm_title: Mute audio?
mute_confirm_body: The microphone will not be sent to the stream until you unmute.
unmute_confirm_title: Unmute audio?
unmute_confirm_body: The microphone will be active on the stream again.
advance_period_title: Advance to the next period?
advance_period_body: The scoreboard will move to the next period and the current period score will be saved.
stop_confirm_title: End the live stream?
link_unavailable: Link not available
link_copied: Link copied
copy_prompt: "Copy the link:"
share_regia_text: "Open this link to manage the live score:"
share_live_text: "Watch the live stream on Match Live TV:"
min_quality_updated: Minimum quality updated
min_quality_error: Error updating minimum quality
recordings:
archive:
back_prefix: "←"
heading: Replay archive
admin_suffix: (admin)
lead_html: "Manage recordings, visibility and downloads. <strong>Private</strong> = unlisted link, doesn't appear on the public <code>/replay</code> page. Deleting a replay also removes the files on the server and the linked YouTube video."
kpi_available: Replays available
kpi_expiring: "Expiring soon (7 days)"
kpi_space: Storage used
kpi_views: Total views
team_label: Team
team_all: All
status_label: Status
status_all: All
status_ready: Available
status_processing: Processing
status_expired: Expired / error
col_preview: Preview
col_match: Match
col_team: Team
col_details: Details
col_status: Status and visibility
col_actions: Actions
watch_replay: Watch replay
processing_title: Processing in progress
not_available_title: Replay not available
views_suffix: views
expires_prefix: Expires
expires_days: "(%{count} days)"
no_expiry: No expiry
new_expiry_title: New expiry date
save: Save
extend_days: "+%{count} days"
extend_title: "Extend the expiry by %{count} days"
privacy_public: Public
privacy_private: Private
privacy_hint_public: "Visible to everyone — click to make private"
privacy_hint_private: "Link only — click to make public"
download_mp4: MP4
download_mp4_title: Download MP4
publish_youtube: "YT"
publish_youtube_title: Publish to YouTube
open_youtube_title: Open on YouTube
delete_title: Delete replay
delete_confirm: Choose where to delete the replay. This action cannot be undone.
no_recordings: No recordings for the selected filters.
confirm:
choice_title: What do you want to delete?
choice_message: Choose where to remove the replay from. This action cannot be undone.
choice_site_label: Site only
choice_site_hint_with_youtube: The video stays on YouTube
choice_site_hint_only: Removes the files from the site
choice_youtube_label: YouTube only
choice_youtube_hint_with_site: Stays available on the site
choice_youtube_hint_only: Removes only the YouTube video
choice_both_label: Site and YouTube
choice_both_hint: Complete deletion
youtube_title: Delete from YouTube?
youtube_message: The video will be removed from YouTube. The replay will remain available on the site.
youtube_ok: Delete from YouTube
site_title: Delete from the site?
site_message_with_youtube: The replay will be removed from the site. The video on YouTube will stay online.
site_message_only: You're about to permanently delete this replay from the site. This action cannot be undone.
site_ok: Delete from site
status:
deleted: Deleted
expired: Expired
failed: Error
processing: Processing
expiring_soon: Expiring soon
available: Available
flash:
web_base:
login_required: Please log in to continue
access_denied: Access not allowed
clubs:
already_registered: You've already registered a club
created: Club and first team created.
created_complete_subscription: Club created. Complete your subscription on this page.
updated: Club updated.
complete_billing_first: Complete your billing details before activating a premium plan.
comped_change_denied: "This plan is a complimentary subscription managed by Match Live TV. To switch to a paid subscription, contact support."
stripe_not_configured: Payments not configured on the server yet
already_on_plan: "You're already on %{plan} (%{price})."
change_already_scheduled: "The switch to %{plan} is already scheduled from %{date}."
stripe_error: "Stripe error: %{message}"
youtube_oauth_not_configured: YouTube OAuth not configured on the server
youtube_disconnected: Club YouTube channel disconnected
portal_not_configured: Payment portal not configured
checkout_success: "Payment completed! Active plan: %{plan}."
checkout_canceled: Payment canceled. No charge was made.
club_billing:
profile_saved_proceed_payment: Details saved. Proceed with payment.
profile_updated: Billing details updated.
stripe_not_configured: Stripe not configured.
subscription_canceled: "Subscription canceled. It stays active until %{date}; from that day you'll switch to the Free plan."
stripe_error: "Stripe error: %{message}"
invoice_pdf_unavailable: Invoice PDF not available.
club_recordings:
not_authorized: Not authorized
teams:
added: "Team «%{name}» added."
updated: Team updated.
now_staff: Your account is now a broadcast manager.
staff_role_removed: Staff role removed from your account.
invite_link_generated: "Invite link generated (valid for 7 days)"
invite_email_sent: "Invite sent to %{email} (link valid for 7 days)"
invite_email_failed: "Invite created, but the email to %{email} could not be sent. Copy and share the link below."
access_revoked: Access revoked
invitation_canceled: Invitation canceled
youtube_disconnected: Club YouTube channel disconnected
matches:
scheduled: "Match scheduled: %{opponent}. Start streaming from the app once you're at the venue."
updated: Match updated.
close_live_before_delete: Close the live stream before deleting this match.
deleted: Match deleted.
schedule_denied: Only a broadcast manager or the club owner can schedule matches.
club_matches:
invalid_team: Select a valid team.
scheduled: "Match scheduled: %{team} vs %{opponent}."
no_schedulable_teams: You don't have permission to schedule matches in this club.
team_roster_members:
added: "%{name} added to the roster."
updated: Profile updated.
removed: "%{name} removed from the roster."
invitations:
invalid_or_expired: Invalid or expired invitation
invalid: Invalid invitation
wrong_email: "This invitation is for %{email}"
joined_team: You've joined the team!
joined_tournament: You're assigned to broadcast this tournament. Open the Match Live TV app to go live.
signup_to_accept: "Sign up with %{email} to accept the invitation"
registrations:
accept_terms_required: You must accept the privacy policy and terms of service to register.
welcome_to_team: Welcome to the team!
account_created: Account created. Now register your club.
sessions:
welcome_back: Welcome back!
invalid_credentials: Invalid email or password
logged_out: Logged out
unauthorized: Unauthorized
invalid_token: Invalid token
password_resets:
email_sent: If the email is registered, you'll receive a password reset link shortly.
invalid_or_expired_link: Invalid or expired link. Request a new password reset.
password_min_length: Password must be at least 8 characters
password_too_short: Password must be at least 8 characters
password_too_long: Password cannot exceed 72 characters
password_too_weak: "Password must include at least 3 of: lowercase, uppercase, numbers and symbols"
password_same_as_current: New password must be different from the current password
password_mismatch: Passwords don't match
password_updated: Password updated. You can now log in.
contacts:
sent: Message sent. We will reply to the email you provided.
throttled: You have sent too many requests. Please try again in an hour.
invalid: Check the required fields and try again.
invalid_email: Enter a valid email address.
invalid_message: The message is too short or too long.
privacy_required: To send the form you must accept the privacy notice.
accounts:
name_required: Name is required
profile_updated: Profile updated.
password_current_incorrect: Current password is incorrect
password_too_short: Password must be at least 8 characters
password_too_long: Password cannot exceed 72 characters
password_too_weak: "Password must include at least 3 of: lowercase, uppercase, numbers and symbols"
password_same_as_current: New password must be different from the current password
password_mismatch: Passwords do not match
password_updated: Password updated.
password_update_failed: Unable to update password
replay:
download_unavailable: Download not available
not_available: Replay not available
live:
index:
meta_title: "Live youth matches happening now — Match Live TV"
meta_description: "Watch live streams of youth matches happening right now and upcoming scheduled games. Search for your team and open the link with no app to install."
club_back_link: "← %{name}"
club_title: "Live streams and matches — %{name}"
club_hint: "Only teams from this club: streams in progress and matches scheduled from the app or website."
club_replay_link: "%{name} replays"
default_title: "Live streams and upcoming matches"
default_hint: "Search by club, team, opponent or venue: find active streams and scheduled matches."
replay_archive_link: "Past live streams — replay archive"
schedule_match_link: "Schedule a match"
search_placeholder_club: "Search club, team, opponent or venue…"
search_placeholder_default: "E.g. Team MLTV, Team Guest…"
search_aria_label: "Search team"
search_button: "Search"
reset_link: "Reset"
results_hint: "Results for «%{query}»%{club_suffix}: %{live_count} live · %{upcoming_count} upcoming"
results_hint_club_suffix: " in %{name}"
section_live_now: "Live now"
badge_on_air: "On air"
badge_live: "Live"
badge_paused: "Paused"
badge_reconnecting: "Reconnecting"
badge_starting: "Starting"
badge_scheduled: "Scheduled"
watch_link: "Watch live →"
section_upcoming: "Upcoming matches"
upcoming_hint: "Scheduled from the app or website: the stream will start once staff begin broadcasting."
empty_soft_title: "No live stream right now."
empty_soft_body: "Check back at the scheduled time: once the team starts streaming, the match will appear under «Live now»."
empty_club_title: "No live streams or scheduled matches for %{name}."
empty_club_schedule_link: "Schedule the first match"
empty_club_schedule_suffix: " or from the Match Live TV app."
empty_club_ask_staff: "Ask the club owner or a streaming manager to schedule a match."
empty_club_add_team_html: "Add a team from the %{club_link} and schedule the first match."
empty_club_page_link: "club page"
empty_club_back_link: "← Back to the club"
empty_hero_title: "No live stream right now — but you can already get organized"
empty_hero_body: "If your team uses Match Live TV, the match can be scheduled from the phone with a date and time. Parents and relatives will find the stream here as kick-off approaches."
empty_hero_list_item1: "Schedule the game from the app (without starting the stream right away)"
empty_hero_list_item2: "The match appears under «Upcoming matches» with time and venue"
empty_hero_list_item3: "Streaming only starts when you press start in the gym"
empty_hero_cta_signup: "Register your team"
empty_hero_cta_features: "See how it works"
demo_aria_label: "Example of an active live stream"
demo_label: "Example — this is how an active stream looks"
demo_meta: "Pala MLTV · Match Live TV"
demo_sets: "Set 2 · Sets won 1-0"
show:
back_to_all: "← All live streams"
title: "%{club_name} · %{team_name} vs %{opponent_name} — Live stream"
meta_description: "Follow %{club_name} live — %{team_name} vs %{opponent_name}%{location}. Watch from your browser, no app to install."
meta_description_location: " — %{location}"
stream_ended_title: "Live stream ended"
stream_ended_body: "The stream for this match has been closed."
stream_ended_closed_at: "Closed on %{date}"
stream_ended_hint: "The score is visible in the video if the stream was still in progress."
stream_ended_reload_hint: "Reload the page for the last recorded status."
all_live_link: "All live streams"
youtube_title: "Live on YouTube"
youtube_available_body: "This match is broadcast on the Match Live TV YouTube channel, not on the site player."
youtube_watch_link: "Watch on YouTube"
youtube_preparing_body: "We're preparing the stream on the YouTube channel. Refresh in a few seconds."
youtube_hint: "Only share the YouTube link with fans and the club."
play_hint: "▶ Start the stream"
offline_msg: "The stream isn't available yet. It updates automatically once it's back on air."
awaiting_msg: "Waiting for the signal from the phone — open the camera in the app and check the stream has started (not paused)."
paused_msg: "Broadcast paused — the stream continues (server cover)."
js_reconnecting_awaiting: "Reconnecting - waiting for video from the event"
overlays:
badge_ended: "Ended"
badge_waiting: "Waiting"
replay:
index:
meta_title: "Replay — Match Live TV"
meta_description: "Replay archive of sports live streams on Match Live TV. Search by club, team or opponent."
back_to_live: "← Live streams"
title: "Past live streams"
hint: "Public replays from sports clubs — covers matches already broadcast."
search_placeholder: "E.g. Team MLTV, Team Guest…"
search_aria_label: "Search replays"
search_button: "Search"
reset_link: "Reset"
club_filter_label: "Club"
club_filter_all: "All clubs"
results_hint: "Results for «%{query}»%{club_suffix}: %{count} replays"
results_hint_club_suffix: " · %{name}"
empty_filtered_title: "No replays found"
empty_filtered_suffix: " with the selected filters."
empty_filtered_show_all: "Show all public replays"
empty_default_title: "No public replays right now."
empty_default_body: "When a club makes a recording public, it will appear here."
empty_default_live_link: "Go to live streams"
show:
title: "Replay — %{title}"
meta_description: "Replay %{title} on Match Live TV."
back_to_replays: "← Past live streams"
processing_title: "Replay processing"
processing_body: "The recording is being prepared. You'll get an email when it's ready."
badge_label: "REPLAY"
meta_line_duration: "Duration %{value}"
meta_line_until: "Until %{date}"
meta_line_public: "Public"
meta_line_private: "Private (link)"
download_link: "Download MP4"
youtube_link: "Open on YouTube"
youtube_only_body: "Replay on YouTube (no server copy available)."
file_missing_title: "File not available"
file_missing_body: "The video is no longer on the server (archive removed or migrating)."
file_missing_meta: "Recorded duration: %{duration} · %{size}"
failed_title: "Replay not available"
failed_default_body: "Error processing the recording."
unavailable_title: "Replay not available"
unavailable_body: "This recording is no longer accessible."
team_pages:
index:
meta_title: "Teams on Match Live TV — Youth sports live streams and replays"
meta_description: "Discover the youth sports teams broadcasting on Match Live TV. Search by name, filter by sport, find live streams in progress and replay archives."
heading: "Teams on Match Live TV"
hint: "Clubs and teams with live streams, public replays or scheduled matches. Search for your team and open the page to follow the schedule and archive."
search_placeholder: "Team name, club, city or gym…"
search_aria_label: "Search team"
search_button: "Search"
sport_label: "Sport"
sport_all: "All sports"
chips_label: "Show"
chip_live: "Live"
chip_replays: "With replays"
reset_link: "Reset"
results_found: "%{count} teams found"
results_active: "%{count} active teams"
results_query_suffix: " for «%{query}»"
results_sport_suffix: " · %{sport}"
badge_live: "Live"
badge_upcoming: "%{count} upcoming"
badge_replay: "%{count} replays"
empty_filtered_title: "No teams found"
empty_filtered_suffix: " with the selected filters."
empty_filtered_show_all: "Show all active teams"
empty_default_title: "No active teams right now."
empty_default_body: "When a club starts streaming or publishes replays, it will appear here."
empty_default_live_link: "Go to live streams"
footer_live_link: "Live streams in progress"
footer_replay_link: "Replay archive"
show:
title: "%{team} — %{club} | Match Live TV"
meta_description: "Follow %{team} (%{club}): live streams, match schedule and replays on Match Live TV."
breadcrumb_all_teams: "← All teams"
live_now_label: "Live now"
watch_live_link: "Watch the live stream"
all_live_link: "All live streams"
replay_archive_link: "Replay archive"
section_live_now: "Live now"
section_upcoming: "Upcoming matches"
upcoming_hint: "Scheduled by the club: the stream will start once staff begin broadcasting."
section_replays: "Recent replays"
replays_more_link: "See all %{team} replays →"
section_roster: "Roster"
empty_title: "No live streams or replays right now."
empty_body: "Check back before the next games: live streams, schedule and the team archive will appear here."
empty_link: "See all live streams"
score:
timer_label: "Timer"
generic_label: "Score"
sets_label: "Set %{set} · Sets won %{home}-%{away}"
partial_entry: "Set %{set} %{home}-%{away}"
partial_entry_no_number: "Set %{home}-%{away}"
partials_prefix: "Partials: %{value}"
points_label: "%{team} %{home} - %{away} %{opponent}"
fallback: "—"
default_club_name: "Club"
scheduled_date_format: "%d/%m/%Y at %H:%M"
scheduled_today: "Today at %{time}"
scheduled_tomorrow: "Tomorrow at %{time}"