476 lines
18 KiB
YAML
476 lines
18 KiB
YAML
# Files in the config/locales directory are used for internationalization and
|
|
# are automatically loaded by Rails. If you want to use locales other than
|
|
# English, add the necessary files in this directory.
|
|
#
|
|
# To use the locales, use `I18n.t`:
|
|
#
|
|
# I18n.t "hello"
|
|
#
|
|
# In views, this is aliased to just `t`:
|
|
#
|
|
# <%= t("hello") %>
|
|
#
|
|
# To use a different locale, set it with `I18n.locale`:
|
|
#
|
|
# I18n.locale = :es
|
|
#
|
|
# This would use the information in config/locales/es.yml.
|
|
#
|
|
# To learn more about the API, please read the Rails Internationalization guide
|
|
# at https://guides.rubyonrails.org/i18n.html.
|
|
#
|
|
# Be aware that YAML interprets the following case-insensitive strings as
|
|
# booleans: `true`, `false`, `on`, `off`, `yes`, `no`. Therefore, these strings
|
|
# must be quoted to be interpreted as strings. For example:
|
|
#
|
|
# en:
|
|
# "yes": yup
|
|
# enabled: "ON"
|
|
|
|
en:
|
|
activemodel:
|
|
errors:
|
|
models:
|
|
forms/csv_conversion_form:
|
|
attributes:
|
|
name_column:
|
|
blank: "Participant names are required"
|
|
greater_than: "Participant names are required"
|
|
activerecord:
|
|
attributes:
|
|
category:
|
|
contestant_count: Contestants count
|
|
new: New category
|
|
name: Category
|
|
completion:
|
|
completed: Puzzle completed
|
|
contestant: Participant
|
|
display_time: Time
|
|
display_time_from_start: Time since start
|
|
display_time_from_start_description: Format mm:ss or h:mm:ss
|
|
display_relative_time: Time for this puzzle
|
|
puzzle: Puzzle
|
|
missing_pieces: Missing pieces
|
|
projected_time: Projected time
|
|
remaining_pieces: Remaining pieces (not completed puzzle)
|
|
contest:
|
|
code: Code for onsite judges
|
|
code_description: Optional. Used for organizers on onsite contests, when printing QR codes on tables
|
|
duration: Duration
|
|
duration_description: Format h:mm or hh:mm
|
|
lang: Language for the public scoreboard
|
|
missing_pieces: Ask for missing pieces for completed puzzles
|
|
name: Name
|
|
offline_form: Enable the offline participation form
|
|
offline_form_description: Offline participants will have to fill the form by providing an image taken of the puzzle before starting solving it, and validate their finish time with an upload of an image of the completed puzzle
|
|
offline_form_warning: Only for single-puzzle contests
|
|
organizer_form: Enable the public organizer forms
|
|
organizer_form_description: Required for QR codes to work.
|
|
public: Enable the public scoreboard
|
|
ranking_mode: Ranking mode (public scoreboard & CSV exports)
|
|
show_stopwatch: Display the stopwatch
|
|
team: Team contest
|
|
team_description: For UI display purposes mainly
|
|
allow_registration: Allow registration
|
|
allow_registration_description: Generates a shareable registration form for this contest
|
|
contestant:
|
|
completions: completions
|
|
display_time: Time
|
|
email: Email
|
|
name: Name
|
|
offline: Offline?
|
|
email_description: Optional. Used for sending emails through this app, or for identifying participants whose gmeet handle doesn't match their registered name.
|
|
csv_import:
|
|
file: File
|
|
separator: Separator
|
|
event:
|
|
lang: Language for th shared scoreboard
|
|
name: Name
|
|
shared_scoreboard: Shared scoreboard
|
|
shared_scoreboard_description: If activated, there will be a scoreboard link specific to the event, with tabs for each contest
|
|
message:
|
|
author: Author
|
|
processed: Processed?
|
|
text: Content
|
|
time: Time
|
|
offline:
|
|
completed: Puzzle completed
|
|
name: Your name
|
|
missing_pieces: Missing pieces
|
|
remaining_pieces: Remaining pieces
|
|
puzzle:
|
|
brand: Brand
|
|
hidden: hidden
|
|
hidden_description: When hidden, a puzzle doesn't appear in the public scoreboard, nor public forms
|
|
image: Image
|
|
name: Name
|
|
pieces: Number of pieces
|
|
session:
|
|
email_address: Email address
|
|
password: Password
|
|
user:
|
|
username: Username
|
|
email_address: Email address
|
|
lang: Language
|
|
password: New password
|
|
world_bet:
|
|
name: Name
|
|
errors:
|
|
models:
|
|
completion:
|
|
attributes:
|
|
code:
|
|
mismatch: "Wrong code"
|
|
contestant_id:
|
|
taken: "This contestant has already completed the puzzle"
|
|
display_time_from_start:
|
|
blank: Mandatory
|
|
invalid: "Allowed formats: xx:xx:xx, x:xx:xx, xx:xx, x:xx, xx"
|
|
puzzle_id:
|
|
taken: "This contestant has already completed this puzzle"
|
|
remaining_pieces:
|
|
blank: This is required
|
|
not_an_integer: This is not an integer
|
|
not_a_number: This is not an integer
|
|
too_large: "Cannot be greater than the number of pieces for this puzzle"
|
|
contest:
|
|
attributes:
|
|
duration:
|
|
blank: Must be filled
|
|
invalid: Invalid duration
|
|
name:
|
|
blank: The contest name cannot be empty
|
|
contestant:
|
|
attributes:
|
|
name:
|
|
blank: The participant name cannot be empty
|
|
csv_import:
|
|
attributes:
|
|
file:
|
|
blank: "No file selected"
|
|
empty: "This file is empty"
|
|
not_a_csv_file: "it must be a CSV file"
|
|
event:
|
|
attributes:
|
|
name:
|
|
blank: The event name cannot be empty
|
|
offline:
|
|
attributes:
|
|
end_image:
|
|
blank: Please upload an image
|
|
missing_pieces:
|
|
not_an_integer: This is not an integer
|
|
not_a_number: This is not an integer
|
|
name:
|
|
blank: Please enter a name for your participation
|
|
remaining_pieces:
|
|
blank: You need to provide the number of remaining pieces to assemble
|
|
not_an_integer: This is not an integer
|
|
not_a_number: This is not an integer
|
|
start_image:
|
|
blank: Please upload an image
|
|
puzzle:
|
|
attributes:
|
|
name:
|
|
blank: The puzzle name cannot be empty
|
|
pieces:
|
|
blank: It's mandatory to provide the number of pieces
|
|
user:
|
|
attributes:
|
|
email_address:
|
|
blank: Your email cannot be empty
|
|
username:
|
|
blank: Your username cannot be empty
|
|
taken: This username is already taken
|
|
password:
|
|
blank: Your password cannot be empty
|
|
world_bet:
|
|
attributes:
|
|
bet:
|
|
duplicate: You can't select a participant twice in either of the two selection
|
|
name:
|
|
blank: You must provide a name
|
|
taken: This name is already taken
|
|
categories:
|
|
destroy:
|
|
notice: Category deleted
|
|
new:
|
|
error: The category name can't be empty
|
|
notice: Category added
|
|
completions:
|
|
destroy:
|
|
notice: Completion deleted
|
|
edit:
|
|
notice: Completion updated
|
|
title: Edit completion
|
|
form:
|
|
all_finished: "All puzzles were already completed by %{name}"
|
|
code: Judges code
|
|
completed_no: No
|
|
completed_note: "If only a few pieces are missing and can't be found, answer: yes"
|
|
completed_question: Is the puzzle completed?
|
|
completed_yes: Yes
|
|
pieces_radio_assembled: Assembled pieces
|
|
pieces_radio_remaining: Remaining pieces
|
|
remaining_pieces_question: Did you count the assembled pieces, or the remaining pieces?
|
|
validate_name: "Validate a puzzle for %{name}"
|
|
new:
|
|
notice: Completion added
|
|
title: New completion
|
|
singular: completion
|
|
contests:
|
|
destroy:
|
|
notice: Contest deleted
|
|
edit:
|
|
notice: Contest updated
|
|
title: Edit contest settings
|
|
form:
|
|
offline_single_puzzle_warning: This is not available for contests with more than one puzzle
|
|
index:
|
|
title: Welcome %{username}!
|
|
manage_contests: Manage my contests
|
|
message: Here are all contests not associated with any event.
|
|
new_contest: Create a new contest
|
|
modals:
|
|
destroy:
|
|
button: Delete contest
|
|
text: You are about to delete the contest %{contest} and all its related data (participants, puzzles, ...). This action is non reversible, are you sure to want to proceed?
|
|
title: Deletion of contest %{contest}
|
|
nav:
|
|
categories: Participant categories
|
|
categories_description: Once you add categories, you will be able to assign them to participants on their profiles, and a filter for categories will be available on the public scoreboard
|
|
general: General
|
|
online: Online contests
|
|
onsite: Onsite contests
|
|
onsite_description: Beware once those forms are activated, the puzzle names become findable through guessing the form URL. Later I'll work on better securing them so this setting won't be necessary anymore.
|
|
public: Public scoreboard
|
|
settings: Settings
|
|
stopwatch: Stopwatch
|
|
new:
|
|
notice: Contest added
|
|
title: New jigsaw puzzle contest
|
|
scoreboard:
|
|
all_categories: All categories
|
|
auto_refresh: Auto refresh (30s)
|
|
hide_offline: Hide offline participants
|
|
not_started_message: This contest isn't started yet.
|
|
refresh: Activate auto-refresh (every 5s)
|
|
title: "%{name}"
|
|
show:
|
|
title: "%{name}"
|
|
add_participant: Add participant
|
|
add_puzzle: Add puzzle
|
|
back_to_event: Back to the event
|
|
copy_extension_url: Copy the URL for connecting from the browser extension
|
|
open_offline_form: Open offline form
|
|
open_public_scoreboard: Open public scoreboard
|
|
offline_form_disabled: The offline form is disabled
|
|
public_scoreboard_disabled: The public scoreboard is disabled
|
|
shared_scoreboard_disabled: The public scoreboard is disabled for this contest
|
|
url_copied: URL copied to the clipboard
|
|
stopwatch:
|
|
info: This stopwatch is used for display in the public scoreboard, when allowed in the settings
|
|
contestants:
|
|
convert_csv:
|
|
title: Import participants
|
|
destroy:
|
|
notice: Participant deleted
|
|
edit:
|
|
completions_note: The time doesn't automatically account penalties for missing pieces. The ability to specify time penalties will be added later on, stay tuned!
|
|
end_image: End image
|
|
notice: Participant updated
|
|
not_finished: Not yet finished
|
|
no_puzzles_note: No puzzles were added yet
|
|
offline_participation: Offline participation
|
|
start_image: Start image
|
|
title: Participant
|
|
team_title: Teams
|
|
finalize_import:
|
|
title: Import participants
|
|
generate_qrcodes:
|
|
note: These QR codes allow for judges to fill in results without the need of the organizer's account, for example by printing them and placing them on participant tables
|
|
no_code_note: Those can't be used until a code for judges has been set up in the general settings
|
|
import:
|
|
email_column: Participant email
|
|
import_column: Import?
|
|
name_column: Participant name
|
|
notice: Participants imported
|
|
title: Import participants
|
|
new:
|
|
notice: Participant added
|
|
title: New participant
|
|
team_title: New team
|
|
singular: participant
|
|
plural: participants
|
|
teams:
|
|
singular: team
|
|
plural: teams
|
|
upload_csv:
|
|
title: Import participants
|
|
events:
|
|
destroy:
|
|
notice: Event deleted
|
|
edit:
|
|
notice: Event updated
|
|
form:
|
|
shared_scoreboard_message: As safety measure, for each tab, no information will be shown until the first finish, or if the stopwatch for that contest is started.
|
|
index:
|
|
contest: contest
|
|
contests: contests
|
|
message: New feature! Events offer to groupe multiple contests in one management space. This also offers, if activated, to have a single scoreboard link for all contests of an event.
|
|
my_contests_outside_events: My contests not linked to any event
|
|
new: Create a new event
|
|
other_contest: contest
|
|
other_contests: contests
|
|
subtitle: My events
|
|
title: Welcome %{username}!
|
|
new:
|
|
notice: Event added
|
|
title: New event
|
|
show:
|
|
back_to_events: Back to all events
|
|
manage_contests: Contests in this event
|
|
modify: Settings
|
|
new_contest: Add a contest to this event
|
|
shared_scoreboard_disabled: The shared scoreboard is disabled
|
|
open_shared_scoreboard: Open shared scoreboard
|
|
helpers:
|
|
badges:
|
|
registration: "registration"
|
|
team: "team"
|
|
buttons:
|
|
add: "Add"
|
|
add_completion: "Add completion"
|
|
back: "⬅ Back to the contest"
|
|
back_to_contestant: "⬅ Back to the participant"
|
|
confirm: "Confirm"
|
|
create: "Create"
|
|
details: Open
|
|
delete: "Delete"
|
|
download_qrcodes_archive: "Download in a ZIP archive"
|
|
edit: "Edit"
|
|
end: Click here to submit your completion
|
|
export: Export
|
|
generate_qrcodes: Show QR codes
|
|
import: CSV Import
|
|
open: Open
|
|
open_raw: Open in a raw page
|
|
refresh: Refresh
|
|
settings: Settings
|
|
sign_in: Sign in
|
|
save: Save
|
|
save_password: Save password
|
|
start: Click here to start your participation
|
|
stopwatch_continue: Continue
|
|
stopwatch_pause: Pause
|
|
stopwatch_reset: Reset
|
|
stopwatch_start: Start
|
|
update: Save modifications
|
|
validate: Validate
|
|
field: Field
|
|
none: No field selected
|
|
rank: Rank
|
|
lib:
|
|
ranking:
|
|
actual: First by number of pieces assembled, then by time (recommended if unsure)
|
|
theorical: By time only (projected time calculated with the ppm count)
|
|
messages:
|
|
index:
|
|
info: This section is only used for contests that rely on the connection with Google Meet
|
|
no_messages: No messages received yet
|
|
convert:
|
|
title: New completion
|
|
destroy:
|
|
notice: Message deleted
|
|
plural: "messages"
|
|
singular: "message"
|
|
warning: "You first need to add a puzzle before converting messages to completions."
|
|
nav:
|
|
users: Users
|
|
home: Home
|
|
settings: My account
|
|
log_out: Log out
|
|
offlines:
|
|
form:
|
|
already_submitted: You have already completed the puzzle
|
|
completed_message: Thanks for your participation!
|
|
end_image_select: Take a photo of your completed puzzle, or on the state it is if you decide to give up
|
|
missing_pieces: Indicate the number of missing pieces, if any
|
|
remaining_pieces: Indicate the number of remaining pieces to assemble
|
|
start_image_select: Take a photo of the puzzle with the provided code written on a paper before starting it
|
|
start_message: Let's go %{name}!
|
|
puzzles:
|
|
destroy:
|
|
notice: Puzzle deleted
|
|
edit:
|
|
notice: Puzzle updated
|
|
title: Edit contest puzzle
|
|
form:
|
|
fake_data_recommendation: It is recommended to first enter a fake name and image, and to use the real ones only once the contest starts.
|
|
file_too_big: File too big! Maximum allowed size is 8M
|
|
image_select: Select an image
|
|
new:
|
|
notice: Puzzle added
|
|
title: New contest puzzle
|
|
singular: puzzle
|
|
plural: puzzles
|
|
sessions:
|
|
new:
|
|
notice: Login successful
|
|
title: "Login to the Public Scoreboard app"
|
|
users:
|
|
edit:
|
|
notice: Settings updated
|
|
title: "My settings"
|
|
general_section: "General settings"
|
|
password_section: "Password"
|
|
index:
|
|
title: "All users"
|
|
new:
|
|
notice: User created
|
|
title: "New user"
|
|
worlds:
|
|
about:
|
|
collaborative_filling_message: The ranking is updated collaboratively, see the dedicated tab for more details.
|
|
details_message: To make a bet you'll have to select some contestants (see the dedicated tab for more details on that, and multipliers). You'll score points when they do well in the competition, the table below gives the amount of points you get depending on their ranking on each round, from qualifiers to the finals. This however only accounts for the solo category.
|
|
final_round: Finals
|
|
one_bet_message: Only one bet is allowed per person, please do not overflow the system with bets.
|
|
points: Points
|
|
qualifier_round: Qualifier round
|
|
ranking: Ranking
|
|
semifinal_round: Semifinals
|
|
tab: Rules
|
|
two_rankings_message: There are two rankings, one for the bet over all participants, and one for the bet over French participants.
|
|
collab:
|
|
details_message: Here you will all be able to collaboratively keep up-to-date the ranks of the participants that were selectec by bets. Anyone is able to make any update here, I trust you to do it with care, not cheating, and correcting errors if you see any. I'm doing it this way, so you don't have to wait for me to have the time to update everything :)
|
|
error: An error occured, the rank must be a numerical value in the range [1, 250]
|
|
error_message: If a participant did not qualify, do not fill their ranks for the subsequent rounds. If a rank was filled for them by mistake, please change it to any value above 150 so its score remains 0.
|
|
final: Final
|
|
notice: Participant rank updated
|
|
rank_message: Below should be indicated the *rank* reached by each participant on each round, not the points. Points are automatically calculated.
|
|
semifinal: Semifinal
|
|
tab: Collaborative filling
|
|
main:
|
|
french_participants: French participants
|
|
name: Name
|
|
points: Points
|
|
rank: Rank
|
|
score: Score
|
|
tab: Rankings
|
|
view_bet: View bet
|
|
world_participants: All participants
|
|
new:
|
|
french_section: Bet over French participants
|
|
message: To make a bet, you have to provide two ordered lists of 10 participants, one among all participants, and the other one only among French participants. The order matters! A score multiplier will be applied to each selected contestant (in parenthesis below). You can't select a participant twice on a list, but of course you can totally put a French contestant in both lists ;)
|
|
notice: The bet has been made!
|
|
tab: Make a bet!
|
|
world_section: Bet over all participants
|
|
title: WJPC bets
|
|
view:
|
|
french_participants: On French participants
|
|
multiplier: Multiplier
|
|
participant: Participant
|
|
subtitle: "<b>%{name}</b>'s bet"
|
|
total: Total
|
|
world_participants: On all participants
|