diff --git a/app/assets/images/i18n/en.png b/app/assets/images/i18n/en.png new file mode 100644 index 00000000..6d40e2cf Binary files /dev/null and b/app/assets/images/i18n/en.png differ diff --git a/app/assets/images/i18n/en_gb.png b/app/assets/images/i18n/en_gb.png new file mode 100644 index 00000000..ff217a25 Binary files /dev/null and b/app/assets/images/i18n/en_gb.png differ diff --git a/app/assets/images/i18n/es.png b/app/assets/images/i18n/es.png new file mode 100644 index 00000000..9c2e488a Binary files /dev/null and b/app/assets/images/i18n/es.png differ diff --git a/app/assets/images/i18n/es_ar.png b/app/assets/images/i18n/es_ar.png new file mode 100644 index 00000000..c4570c5c Binary files /dev/null and b/app/assets/images/i18n/es_ar.png differ diff --git a/app/assets/images/i18n/es_bo.png b/app/assets/images/i18n/es_bo.png new file mode 100644 index 00000000..dd695022 Binary files /dev/null and b/app/assets/images/i18n/es_bo.png differ diff --git a/app/assets/images/i18n/es_cl.png b/app/assets/images/i18n/es_cl.png new file mode 100644 index 00000000..5b559adf Binary files /dev/null and b/app/assets/images/i18n/es_cl.png differ diff --git a/app/assets/images/i18n/it.png b/app/assets/images/i18n/it.png new file mode 100644 index 00000000..e3fa45e1 Binary files /dev/null and b/app/assets/images/i18n/it.png differ diff --git a/app/assets/images/i18n/ko.png b/app/assets/images/i18n/ko.png new file mode 100644 index 00000000..4413f6d9 Binary files /dev/null and b/app/assets/images/i18n/ko.png differ diff --git a/app/assets/images/i18n/lol.png b/app/assets/images/i18n/lol.png new file mode 100644 index 00000000..1f97effe Binary files /dev/null and b/app/assets/images/i18n/lol.png differ diff --git a/app/assets/images/i18n/pt_br.png b/app/assets/images/i18n/pt_br.png new file mode 100644 index 00000000..856e310c Binary files /dev/null and b/app/assets/images/i18n/pt_br.png differ diff --git a/app/assets/stylesheets/nav.scss b/app/assets/stylesheets/nav.scss index 53fe1b15..94bd9dd9 100644 --- a/app/assets/stylesheets/nav.scss +++ b/app/assets/stylesheets/nav.scss @@ -138,3 +138,8 @@ nav { background-color: #fff !important; color: #000 !important; } + +.locale-flag { + height: 29px; + width: 29px; +} diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 0a9f9707..b98d6dd6 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -2,24 +2,33 @@ class ApplicationController < ActionController::Base include ApplicationHelper include RankingsHelper + before_action :set_locale before_action :build_navigation + def set_locale + I18n.locale = if user_signed_in? + current_user.locale + else + I18n.default_locale + end + end + def build_navigation return unless user_signed_in? @admin_nav = [ - { :name => 'Upload Session', :path => new_session_path }, - { :name => 'Create Season', :path => new_season_path }, - { :name => 'Import Tracks', :path => new_track_path }, - { :name => 'Import Cars', :path => new_car_path }, - # { :name => 'New Team', :path => new_team_path }, - # { :name => 'New Tournament', :path => new_tournament_path }, - { :name => 'Import Users', :path => users_new_path } + { :name => t('nav.user.admin.upload-session'), :path => new_session_path }, + { :name => t('nav.user.admin.create-season'), :path => new_season_path }, + { :name => t('nav.user.admin.import-tracks'), :path => new_track_path }, + { :name => t('nav.user.admin.import-cars'), :path => new_car_path }, + # { :name => t('nav.user.admin.new-team'), :path => new_team_path }, + # { :name => t('nav.user.admin.new-tournament'), :path => new_tournament_path }, + { :name => t('nav.user.admin.import-users'), :path => users_new_path } ] @nav = [ - { :name => 'Admin', :path => '', :sub => @admin_nav, :admin => true }, - { :name => 'My Profile', :path => user_path(current_user.username) }, - { :name => 'Settings', :path => main_app.edit_user_registration_path } + { :name => t('nav.user.admin.title'), :path => '', :sub => @admin_nav, :admin => true }, + { :name => t('nav.user.my-profile'), :path => user_path(current_user.username) }, + { :name => t('nav.user.settings'), :path => main_app.edit_user_registration_path } ] end @@ -75,18 +84,18 @@ def index end def authenticate_admin - redirect_to root_path, :notice => 'You do not have permission' unless user_is_admin? + redirect_to root_path, :notice => t('alerts.no-permission') unless user_is_admin? end def authenticate_mod - redirect_to root_path, :notice => 'You do not have permission' unless user_is_mod? + redirect_to root_path, :notice => t('alerts.no-permission') unless user_is_mod? end def authenticate_organizer - redirect_to root_path, :notice => 'You do not have permission' unless user_is_organizer? + redirect_to root_path, :notice => t('alerts.no-permission') unless user_is_organizer? end def authenticate_staff - redirect_to root_path, :notice => 'You do not have permission' unless user_is_staff? + redirect_to root_path, :notice => t('alerts.no-permission') unless user_is_staff? end end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 46ec1c06..4154324c 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -82,6 +82,21 @@ def edit end end + def update_locale + return if !user_signed_in? || params[:locale].nil? + + current_user.locale = params[:locale] + current_user.update! + + respond_to do |format| + if current_user.update! + format.html { redirect_back fallback_location: root_path, :notice => "Language set to #{SYS::LOCALES_MAP.key(params[:locale].to_sym)}" } + else + format.html { redirect_to root_path, :status => :unprocessable_entity } + end + end + end + def new @user = User.new @user.build_profile diff --git a/app/models/user.rb b/app/models/user.rb index 3a00d2cb..8f606fb0 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -62,7 +62,7 @@ class User field :admin, :type => Boolean, :default => false field :mod, :type => Boolean, :default => false field :organizer, :type => Boolean, :default => false - field :locale, :type => String, :default => 'en_us' + field :locale, :type => String, :default => :en field :country, :type => String def has_team? diff --git a/app/views/application/_footer.haml b/app/views/application/_footer.haml index 0e387edc..7cdfd2ea 100644 --- a/app/views/application/_footer.haml +++ b/app/views/application/_footer.haml @@ -14,9 +14,9 @@ %div.col-xl-3.col-lg-3.col-md-3.col-sm-6.col-xs-6.col-6 %ul.list-unstyled %li.heading - Organization + = t('footer.organization.title') %li - = link_to "Staff Listing", staff_path + = link_to t("footer.organization.staff"), staff_path %li = link_to t('footer.organization.logs'), web_repo_or_first %li diff --git a/app/views/application/_nav.haml b/app/views/application/_nav.haml index f831d3d9..add7c4d1 100644 --- a/app/views/application/_nav.haml +++ b/app/views/application/_nav.haml @@ -15,26 +15,26 @@ %li.nav-item %a.nav-link{:href => tracks_path} %i.fa.fa-map{:"aria-hidden" => "true"} - = "Tracks" + = t("nav.tracks") %li.nav-item %a.nav-link{:href => cars_path} %i.fa.fa-car{:"aria-hidden" => "true"} - = "Cars" + = t("nav.cars") %li.nav-item %a.nav-link{:href => seasons_path} %i.fa.fa-calendar - = "Seasons" + = t("nav.seasons") %li.nav-item.dropdown %a.nav-link.dropdown-toggle{:href => "", :"data-toggle" => "dropdown", :"aria-haspopup" => "true", :"aria-expanded" => "false"} %i.fa.fa-trophy{:"aria-hidden" => true} - = "League" + = t("nav.league.title") %div.dropdown-menu{:"aria-labelledby" => "dropdown01"} %a.dropdown-item{:href => stats_path} %i.fa.fa-line-chart{:"aria-hidden" => "true"} - = "Leaderboard" + = t("nav.league.leaderboard") %a.dropdown-item{:href => points_path} %i.fa.fa-list-ol{:"aria-hidden" => "true"} - = t('nav.rva.points') + = t('nav.league.point-system') %a.dropdown-item{:href => teams_path} %i.fa.fa-users = t('nav.league.teams') @@ -47,8 +47,18 @@ = t('nav.downloads') %li.nav-item %ul.navbar-nav + - if user_signed_in? + %li.dropdown + %a.nav-link.dropdown-toggle{:href => "", :"data-toggle" => "dropdown", :"aria-haspopup" => true, :"aria-expanded" => false} + = image_tag "i18n/#{I18n.locale}.png", :class => "locale-flag" + %ul.dropdown-menu.dropdown-menu-right{:"aria-labelledby" => "dropdown02"} + - I18n.available_locales.each do |l| + %a.dropdown-item{:"data-turbo" => "true", :"data-turbo-method" => "put", :href => users_locale_path(:locale => l)} + = image_tag "i18n/#{l}.png", :class => "locale-flag" + = SYS::LOCALES_MAP.key(l) + %li.dropdown - %a.nav-link.dropdown-toggle{:id => "access-toggle", :style => "outline: none; #{user_signed_in? ? 'line-height: 0px' : ''};", :"data-toggle" => "dropdown", :href => "#"} + %a.nav-link.dropdown-toggle{:id => "access-toggle", :"data-toggle" => "dropdown", :href => "#"} - if user_signed_in? %span.current-username = current_user.username @@ -60,9 +70,9 @@ - @nav.each do |item| = render_navigation(item) %li - = link_to "Log out", destroy_user_session_path, :class => "dropdown-item", data: { turbo: true, turbo_method: :delete } + = link_to t("nav.user.log-out"), destroy_user_session_path, :class => "dropdown-item", data: { turbo: true, turbo_method: :delete } - else %li - = link_to "Login", new_user_session_path, :class => "dropdown-item" + = link_to t("nav.user.login"), new_user_session_path, :class => "dropdown-item" %li - = link_to "Register", new_user_registration_path, :class => "dropdown-item" + = link_to t("nav.user.register"), new_user_registration_path, :class => "dropdown-item" diff --git a/app/views/application/_splash.haml b/app/views/application/_splash.haml index b3c85148..94d96aa4 100644 --- a/app/views/application/_splash.haml +++ b/app/views/application/_splash.haml @@ -4,7 +4,8 @@ %h1 = ORG::NAME %p - The Website for the American community of Re-Volt, 1999 - %br/ - Download the game and meet players from all over the Americas! - %a.btn-important{ href: downloads_path } Downloads » + = t("application.splash.description1") + %br + = t("application.splash.description2") + %a.btn-important{ href: downloads_path } + = t("application.splash.download-button") diff --git a/app/views/application/_subnav.haml b/app/views/application/_subnav.haml index 9412791e..8553c37b 100644 --- a/app/views/application/_subnav.haml +++ b/app/views/application/_subnav.haml @@ -7,7 +7,7 @@ / | Seasons | Tracks | Cars %li.nav-item %a.nav-link{:href => seasons_path, :class => "#{current_page?(seasons_path) ? 'active' : ''}"} - = "Seasons #{(defined?(season)) ? "»" : ""}" + = "#{t('sub-nav.seasons')} #{(defined?(season)) ? "»" : ""}" / Season » - if defined?(season) && !season.nil? @@ -20,26 +20,26 @@ %li.nav-item.dropdown %a.nav-link.dropdown-toggle{:href => "", :"data-toggle" => "dropdown", :"aria-haspopup" => "true", :"aria-expanded" => "false", :class => "#{defined?(ranking) && current_page?(ranking_path(ranking)) ? 'active' : ''}"} - if defined?(ranking) - = "Ranking #{ranking.number}" + = "#{t('sub-nav.ranking')} #{ranking.number}" - else - = "Rankings" + = t('sub-nav.rankings') .dropdown-menu{:"aria-labelledby" => "dropdown04"} - rankings.each do |r| %a.dropdown-item{:href => ranking_path(r), :class => "#{(defined?(ranking) && ranking == r) ? 'active' : ''}"} - = "Ranking #{r.number}" + = t('sub-nav.ranking-n', :n => r.number) -# NOTE: Our Session model name conflicts with ActionDispatch::Request::Session, so we have to check if the -# definition is ours ... - if defined?(session) && session.is_a?(Session) && !session.nil? %li.nav-item %a.nav-link{:href => session_path(session), :class => "#{(current_page?(session_path(session)) || current_page?(edit_session_path(session))) ? 'active' : ''}"} - = "Session #{session.number}" + = t('sub-nav.session-n', :n => session.number) - if current_page?(tracks_path) || (defined?(track) && !track.nil?) / Tracks » %li.nav-item %a.nav-link{:href => tracks_path, :class => "#{current_page?(tracks_path) ? 'active' : ''}"} - = "Tracks #{defined?(track) ? "»" : ""}" + = "#{t('sub-nav.tracks')} #{defined?(track) ? "»" : ""}" - if defined?(track) && !track.nil? %li.nav-item %a.nav-link{:href => track_path(track), :class => "#{(current_page?(track_path(track)) || current_page?(edit_track_path(track))) ? 'active' : ''}"} @@ -47,7 +47,7 @@ / Cars » %li.nav-item %a.nav-link{:href => cars_path, :class => "#{current_page?(cars_path) ? 'active' : ''}"} - = "Cars #{defined?(category) ? "»" : ""}" + = "#{t('sub-nav.cars')} #{defined?(category) ? "»" : ""}" - if defined?(category) && !category.nil? %li.nav-item %a.nav-link{:href => car_category_path(category), :class => "#{current_page?(car_category_path(category)) ? 'active' : ''}"} @@ -60,7 +60,7 @@ / Cars » %li.nav-item %a.nav-link{:href => cars_path, :class => "#{current_page?(cars_path) ? 'active' : ''}"} - = "Cars #{defined?(category) ? "»" : ""}" + = "#{t('sub-nav.cars')} #{defined?(category) ? "»" : ""}" - if defined?(category) && !category.nil? %li.nav-item %a.nav-link{:href => car_category_path(category), :class => "#{current_page?(car_category_path(category)) ? 'active' : ''}"} @@ -72,7 +72,7 @@ / Tracks » %li.nav-item %a.nav-link{:href => tracks_path, :class => "#{current_page?(tracks_path) ? 'active' : ''}"} - = "Tracks #{defined?(track) ? "»" : ""}" + = "#{t('sub-nav.tracks')} #{defined?(track) ? "»" : ""}" - if defined?(track) && !track.nil? %li.nav-item %a.nav-link{:href => track_path(track), :class => "#{(current_page?(track_path(track)) || current_page?(edit_track_path(track))) ? 'active' : ''}"} @@ -88,7 +88,7 @@ / | Seasons | Tracks | Cars %li.nav-item %a{:href => seasons_path, :class => "#{current_page?(seasons_path) ? 'active' : ''}"} - = "Seasons" + = t('sub-nav.seasons') / Season » - if defined?(season) && !season.nil? @@ -101,26 +101,26 @@ %li.nav-item.dropdown %a.dropdown-toggle{:href => "", :"data-toggle" => "dropdown", :"aria-haspopup" => "true", :"aria-expanded" => "false", :class => "#{defined?(ranking) && current_page?(ranking_path(ranking)) ? 'active' : ''}"} - if defined?(ranking) - = "Ranking #{ranking.number}" + = t('sub-nav.ranking-n', :n => ranking.number) - else - = "Rankings" + = t('sub-nav.rankings') .dropdown-menu{:"aria-labelledby" => "dropdown04"} - rankings.each do |r| %a.dropdown-item{:href => ranking_path(r), :class => "#{(defined?(ranking) && ranking == r) ? 'active' : ''}"} - = "Ranking #{r.number}" + = t('sub-nav.ranking-n', :n => r.number) -# NOTE: Our Session model name conflicts with ActionDispatch::Request::Session, so we have to check if the -# definition is ours ... - if defined?(session) && session.is_a?(Session) %li.nav-item %a{:href => session_path(session), :class => "#{(current_page?(session_path(session)) || current_page?(edit_session_path(session))) ? 'active' : ''}"} - = "Session #{session.number}" + = t('sub-nav.session-n', :n => session.number) - if current_page?(tracks_path) || defined?(track) / Tracks » %li.nav-item %a{:href => tracks_path, :class => "#{current_page?(tracks_path) ? 'active' : ''}"} - = "Tracks" + = t('sub-nav.tracks') - if defined?(track) && !track.nil? %li.nav-item %a{:href => track_path(track), :class => "#{(current_page?(track_path(track)) || current_page?(edit_track_path(track))) ? 'active' : ''}"} @@ -128,7 +128,7 @@ / Cars » %li.nav-item %a{:href => cars_path, :class => "#{current_page?(cars_path) ? 'active' : ''}"} - = "Cars" + = t('sub-nav.cars') - if defined?(category) && !category.nil? %li.nav-item %a{:href => car_category_path(category), :class => "#{current_page?(car_category_path(category)) ? 'active' : ''}"} @@ -141,7 +141,7 @@ / Cars » %li.nav-item %a{:href => cars_path, :class => "#{current_page?(cars_path) ? 'active' : ''}"} - = "Cars" + = t('sub-nav.cars') - if defined?(category) && !category.nil? %li.nav-item %a{:href => car_category_path(category), :class => "#{current_page?(car_category_path(category)) ? 'active' : ''}"} @@ -153,7 +153,7 @@ / Tracks » %li.nav-item %a{:href => tracks_path, :class => "#{current_page?(tracks_path) ? 'active' : ''}"} - = "Tracks" + = t('sub-nav.tracks') - if defined?(track) && !track.nil? %li.nav-item %a{:href => track_path(track), :class => "#{(current_page?(track_path(track)) || current_page?(edit_track_path(track))) ? 'active' : ''}"} diff --git a/app/views/application/about.haml b/app/views/application/about.haml index bd0c935e..63ef354a 100644 --- a/app/views/application/about.haml +++ b/app/views/application/about.haml @@ -1,7 +1,9 @@ #about %section.jumbotron.text-center .container - %h1 About Re-Volt America + %h1 + = t('application.about.title') + = t('application.about.description') %p.lead The largest Re-Volt community you'll find in the American Continent. Join our racing sessions, compete in our seasons and meet other Re-Volt players from around the world! diff --git a/app/views/application/index.haml b/app/views/application/index.haml index c1cbbf1c..722fc2e2 100644 --- a/app/views/application/index.haml +++ b/app/views/application/index.haml @@ -6,27 +6,32 @@ .col-lg-4 = image_tag "index/community.png", :class => "img-fluid" %h2 - = t("application.index.community") - %p We are an amazing Re-Volt community mainly made up of South American players, but you will also find people from all over the world playing online with us. + = t("application.index.community.title") + %p + = t("application.index.community.description") %p %a.btn-important{ href: play_path, role: "button" } Play » .col-lg-4 = image_tag "index/competition.png", :class => "img-fluid" - %h2 Competition - %p In Re-Volt America we race in a seasonal format. Throughout each season, you will be able to race online daily and score points for every race you participate in! + %h2 + = t("application.index.competition.title") + %p + = t("application.index.competition.description") %p %a.btn-important{ href: seasons_path, role: "button" } Seasons » .col-lg-4 = image_tag "index/reliability.png", :class => "img-fluid" - %h2 Reliability - %p Re-Volt America has been designed with sustainability and scalability in mind. Most of the features you see here you will not find in any other Re-Volt community. + %h2 + = t("application.index.reliability.title") + %p + = t("application.index.reliability.description") %p %a.btn-important{ href: about_path, role: "button" } About Us » #recent.mt-5 - if @recent_sessions&.any? %h6.pb-2.mb-0 - = "Recent Sessions" + = t("application.index.recent.title") .media-group - @recent_sessions.each do |session| %a.media.text-muted.pt-3{:href => session_path(session) } @@ -37,8 +42,8 @@ .media-body.pb-3.mb-0.small.lh-125 .d-flex.justify-content-between.align-items-center.w-100 %strong.text-gray-dark - = "#{session_category_name(session)} Races" + = t("application.index.recent.races", category: session_category_name(session)) .session-date = pretty_datetime(session.date) %span.d-block.session-host - = "Hosted by #{session.host}" + = t("application.index.recent.hosted-by", host: session.host) diff --git a/app/views/assets/index.haml b/app/views/assets/index.haml index e1c6313a..f5c3667c 100644 --- a/app/views/assets/index.haml +++ b/app/views/assets/index.haml @@ -9,7 +9,7 @@ .row.text-center .col-md-12 %p - = raw t('assets.subtitle') + = t('assets.subtitle_html') .col-md-12 = image_tag "rva-logo-transparent.png", :height => "350" .col-md-12 @@ -90,4 +90,4 @@ %li = t('assets.attribution.1') %li - = raw t('assets.attribution.2') + = t('assets.attribution.2_html') diff --git a/app/views/cars/show.haml b/app/views/cars/show.haml index 702c5cc2..b30f809f 100644 --- a/app/views/cars/show.haml +++ b/app/views/cars/show.haml @@ -18,32 +18,32 @@ %br %dl.dl-horizontal %dt - Speed + = t("rva.cars.features.speed") %dd = "#{@car.speed} km/h" %dt - Acceleration + = t("rva.cars.features.acceleration") %dd = "#{@car.accel} ms²" %dt - Weight + = t("rva.cars.features.weight") %dd = "#{@car.weight} Kg" %dt - Multiplier + = t("rva.cars.features.multiplier") %dd = @car.multiplier %dt - Category + = t("rva.cars.features.category") %dd = category_name(@car.category) - %dt{:style => "cursor: help;", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Original Re-Volt Content"} - Stock? + %dt{:style => "cursor: help;", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("rva.cars.features.stock-tooltip.tooltip")} + = t("rva.cars.features.stock") %dd = "#{@car.stock? ? "Yes" : "No"}" - if @car.season %i - = "This car has been featured in RVA #{@car.season.name}" + = t("rva.cars.features.featured-session", season:@car.season.name) #{@car.season.name} .col-md-6 %img.thumbnail.center-block.img-responsive{src: @car.thumbnail_url} diff --git a/app/views/devise/mailer/confirmation_instructions.haml b/app/views/devise/mailer/confirmation_instructions.haml index 27d48e6d..72e0ecfc 100644 --- a/app/views/devise/mailer/confirmation_instructions.haml +++ b/app/views/devise/mailer/confirmation_instructions.haml @@ -1,4 +1,5 @@ %p - Welcome #{@email}! -%p You can confirm your account email through the link below: + = t("confirmation.welcome", email:@email) #{@email}! +%p + = t("confirmation.description") %p= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) diff --git a/app/views/devise/mailer/email_changed.haml b/app/views/devise/mailer/email_changed.haml index 94ebba05..62edccc5 100644 --- a/app/views/devise/mailer/email_changed.haml +++ b/app/views/devise/mailer/email_changed.haml @@ -1,8 +1,9 @@ %p - Hello #{@email}! + = t("email.changed.greeting", email:@email) #{@email}! - if @resource.try(:unconfirmed_email?) %p - We're contacting you to notify you that your email is being changed to #{@resource.unconfirmed_email}. + = t("email.changed.changing", email:@resource.unconfirmed_email) #{@resource.unconfirmed_email}. - else %p - We're contacting you to notify you that your email has been changed to #{@resource.email}. + = t("email.changed.changed", email:@resource.email) #{@resource.email}. + diff --git a/app/views/devise/mailer/password_change.haml b/app/views/devise/mailer/password_change.haml index ab7c04c4..37486ed4 100644 --- a/app/views/devise/mailer/password_change.haml +++ b/app/views/devise/mailer/password_change.haml @@ -1,3 +1,4 @@ %p - Hello #{@resource.email}! -%p We're contacting you to notify you that your password has been changed. + = t("password.change.greeting", email:@resource.email) #{@resource.email}! +%p + = t("password.change.description") diff --git a/app/views/devise/mailer/reset_password_instructions.haml b/app/views/devise/mailer/reset_password_instructions.haml index 0711cd5a..875e1387 100644 --- a/app/views/devise/mailer/reset_password_instructions.haml +++ b/app/views/devise/mailer/reset_password_instructions.haml @@ -1,6 +1,9 @@ %p - Hello #{@resource.email}! -%p Someone has requested a link to change your password. You can do this through the link below. + = t("password.reset.greeting", email:@resource.email) #{@resource.email}! +%p + = t("password.reset.advise") %p= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @token) -%p If you didn't request this, please ignore this email. -%p Your password won't change until you access the link above and create a new one. +%p + = t("password.reset.advise2") +%p + = t("password.reset.advise3") diff --git a/app/views/devise/mailer/unlock_instructions.haml b/app/views/devise/mailer/unlock_instructions.haml index 282c98a2..562b92b0 100644 --- a/app/views/devise/mailer/unlock_instructions.haml +++ b/app/views/devise/mailer/unlock_instructions.haml @@ -1,5 +1,7 @@ %p - Hello #{@resource.email}! -%p Your account has been locked due to an excessive number of unsuccessful sign in attempts. -%p Click the link below to unlock your account: + = t("account.unlock.greeting", email:@resource.email) #{@resource.email}! +%p + = t("account.unlock.advise") +%p + = t("account.unlock.instruction") %p= link_to 'Unlock my account', unlock_url(@resource, unlock_token: @token) diff --git a/app/views/downloads/index.haml b/app/views/downloads/index.haml index 463b5646..19a6c66e 100644 --- a/app/views/downloads/index.haml +++ b/app/views/downloads/index.haml @@ -1,16 +1,19 @@ - content_for :title, "Re-Volt America - Downloads" -%h1 Downloads +%h1 + = t("downloads.title") + %hr .container .text-center #faq-box - %p If you are new to the community, we strongly recommend that you read the our Frequently Asked Questions page + %p + = t("downloads.faq.title") %a{ href: faq_path } - %button.btn.btn-sm{type: "button"} Take me there! - -%h2 Legacy Downloads + %button.btn.btn-sm{type: "button"}= t("downloads.faq.button") +%h2 + = t("downloads.legacy-downloads ") .container .row diff --git a/app/views/errors/illegal.haml b/app/views/errors/illegal.haml index c2a21344..85ad3aba 100644 --- a/app/views/errors/illegal.haml +++ b/app/views/errors/illegal.haml @@ -1 +1 @@ -= render :partial => 'error', :locals => {:error_code => 422, :error_message => 'Illegal Error'} += render :partial => 'error', :locals => {:error_code => 422, :error_message => t('error.422.message')} diff --git a/app/views/errors/internal_error.haml b/app/views/errors/internal_error.haml index ffda145d..b136ded4 100644 --- a/app/views/errors/internal_error.haml +++ b/app/views/errors/internal_error.haml @@ -1 +1 @@ -= render :partial => 'error', :locals => {:error_code => 500, :error_message => 'Internal Server Error'} += render :partial => 'error', :locals => {:error_code => 500, :error_message => t('error.500.message')} diff --git a/app/views/errors/not_found.haml b/app/views/errors/not_found.haml index 323ea22b..48b800e1 100644 --- a/app/views/errors/not_found.haml +++ b/app/views/errors/not_found.haml @@ -1 +1 @@ -= render :partial => 'error', :locals => {:error_code => 404, :error_message => 'Not Found'} += render :partial => 'error', :locals => {:error_code => 404, :error_message => t('error.404.message')} diff --git a/app/views/play/index.haml b/app/views/play/index.haml index 3c70d669..fb094902 100644 --- a/app/views/play/index.haml +++ b/app/views/play/index.haml @@ -18,7 +18,7 @@ %h6 = t('play.subheader') %h6 - = raw t('play.subheader2') + = t('play.subheader2_html') .col-md-12.mt-3 %iframe{:src => "https://discord.com/widget?id=308469225557721090&theme=dark", :width => "350", diff --git a/app/views/points/index.haml b/app/views/points/index.haml index 8f887bed..b5cb5175 100644 --- a/app/views/points/index.haml +++ b/app/views/points/index.haml @@ -1,34 +1,31 @@ - content_for :title, "Re-Volt America - Points" %h2 - RVA Points System + = t("points.title") %br %h3 - Introduction + = t("points.introduction.title") %p - In Re-Volt America, players score points for each race they get to finish. The amount of points each player scores - will depend on two things: their final position in the race, and the amount of racers in that race. If a race has - 10 or more racers in it, then it's considered a to be a "big" race. + = t("points.introduction.description") .row .col-sm-12.col-md-6.col-lg-6.col-xl-6 - %h4 Normal Race Scoring + %h4 + = t("points.introduction.normal-race") = image_tag "points.png", :class => "img-fluid" .col-sm-12.col-md-6.col-lg-6.col-xl-6 - %h4 Big Race Scoring + %h4 + = t("points.introduction.big-race") = image_tag "points-10.png", :class => "img-fluid" %br %h3 - Car Ratings + = t("points.car-ratings.title") %p - In Re-Volt America, cars are assigned a 'multiplier' depending on their top speed, acceleration, weight, and other - characteristics that may make them better or worse for online racing. We used this multiplayer to reward racers for - playing hard cars, and for regulating really good or overpowered cars as well. Here is how the formula is applied - each race with different car multipliers: + = t("points.car-ratings.description") .row .col-12.text-center @@ -36,17 +33,14 @@ %br %h3 - RVA Desktop Points Parser + = t("points.desktop-parser.titles") %p - The RVA Desktop Points Parser is a Desktop application designed to calculate result tables in the RVA format from - a given RVGL session log. Through this portable tool, we allow anyone to parse session results using our system - locally if they so desire. Here is an example of what you'll get by parsing one of our sessions yourself: - + = t("points.desktop-parser.description") = image_tag 'rva-points.png', :class => 'img-fluid' %h3.mt-4 - Download RVA Points + = t("points.downloads.title") .row = render :partial => "downloads/download_card", :locals => {:icon => "fa-windows", :name => "RVA Points", :img_file => "rva-logo-dark.png", :download_link => DISTRIBUTE::RVA_POINTS_WIN64, :target => "_self"} diff --git a/app/views/rankings/show.haml b/app/views/rankings/show.haml index 3015c52c..6099aa91 100644 --- a/app/views/rankings/show.haml +++ b/app/views/rankings/show.haml @@ -9,12 +9,12 @@ .mt-4 %h5.pb-2.mb-0 %span - = "Sessions" + = t("rankings.sessions.title") %small = "(#{@ranking.sessions.count})" - if @sessions.none? %h5.text-center.mt-3 - = "No sessions to display" + = t("rankings.sessions.no-sessions") - else .mb-3 = paginate @sessions @@ -29,14 +29,14 @@ .media-body.pb-3.mb-0.small.lh-125 .d-flex.justify-content-between.align-items-center.w-100 %strong.text-gray-dark - = "#{session_category_name(session)} #{session.teams? ? 'Team' : ''} Races" + = "#{session.teams? ? t("application.index.recent.team-races", category: session_category_name(session)) : t("application.index.recent.races", category: session_category_name(session))}" .session-date = pretty_datetime(session.date) %span.d-block.session-host - = "Hosted by #{session.host}" + = t("application.index.recent.hosted-by", host: session.host) #{session.host} %h2.mt-4.text-center - = "Leaderboards" + = t("rankings.title2") %ul.nav.nav-tabs{role: "tablist"} %li.nav-item @@ -51,14 +51,14 @@ %thead %tr %th{width: "1%"} # - %th{width: "2%"} Country - %th{width: "16%"} Racer - %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Average Position"} PP - %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Accumulated Points"} PA - %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Participation Multiplier"} MP - %th.po.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Official Score"} PO - %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Race Count"} CC - %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Sessions Played"} SP + %th{width: "2%"}= t("rankings.table.country") + %th{width: "16%"}= t("rankings.table.racer") + %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.average-position")}= t("rankings.table.pp") + %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.accumulated-points")}= t("rankings.table.pa") + %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.participation-multiplier")}= t("rankings.table.mp") + %th.po.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.official-score")}= t("rankings.table.po") + %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.race-count")}= t("rankings.table.cc") + %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.sessions-played")}= t("rankings.table.sp") %tbody - @racer_entries.each do |e| - @count += 1 @@ -101,3 +101,4 @@ %td.score.text-center{:style => "background-color: #{e.color}; color: #{invert_color(e.color, black_white=true)};"} = e.points - @count += 1 + diff --git a/app/views/repositories/show.haml b/app/views/repositories/show.haml index 6e35960c..48208b51 100644 --- a/app/views/repositories/show.haml +++ b/app/views/repositories/show.haml @@ -3,10 +3,11 @@ .container#repositories .page-header %h3 - Revisions - %small Latest git commits in our organization + = t("repositories.title") + %small + = t("repositories.small") - if user_is_admin? - %a.btn.btn-sm.float-right{:href => new_repository_path} New + %a.btn.btn-sm.float-right{:href => new_repository_path}= t("repositories.new-button") %hr.mt-1/ .row .col-md-12 @@ -20,16 +21,16 @@ .col %p= @repository.description .ml-auto.mb-1.mr-3 - %a.btn.btn-sm{:href => @repository.get_url, :target => '_blank'} Repository + %a.btn.btn-sm{:href => @repository.get_url, :target => '_blank'}= t("repositories.repository") .table-container %table.table.table-bordered %thead %tr %th{width: "1%"} # - %th{width: "10%"} Revision - %th{width: "10%"} Author - %th{width: "62%"} Description - %th{width: "17%"} When + %th{width: "10%"}= t("repositories.table.revision") + %th{width: "10%"}= t("repositories.table.author") + %th{width: "62%"}= t("repositories.table.description") + %th{width: "17%"}= t("repositories.table.when") %tbody - @revs.each do |r| %tr diff --git a/app/views/rules/index.haml b/app/views/rules/index.haml index 2186137c..d4999011 100644 --- a/app/views/rules/index.haml +++ b/app/views/rules/index.haml @@ -15,9 +15,9 @@ %li = t('rules.sections.a.1') %li - = raw t('rules.sections.a.2') + = t('rules.sections.a.2_html') %li - = raw t('rules.sections.a.3') + = t('rules.sections.a.3_html') %li = t('rules.sections.a.4') %li @@ -49,30 +49,30 @@ = t('rules.sections.c.2.title') %ul %li - = raw t('rules.sections.c.2.bullet1') + = t('rules.sections.c.2.bullet1_html') %li - = raw t('rules.sections.c.2.bullet2') + = t('rules.sections.c.2.bullet2_html') %li - = raw t('rules.sections.c.2.bullet3') + = t('rules.sections.c.2.bullet3_html') %li - = raw t('rules.sections.c.2.bullet4') + = t('rules.sections.c.2.bullet4_html') %li - = raw t('rules.sections.c.2.bullet5') + = t('rules.sections.c.2.bullet5_html') %li - = raw t('rules.sections.c.3') + = t('rules.sections.c.3_html') %li - = raw t('rules.sections.c.4') + = t('rules.sections.c.4_html') %li - = raw t('rules.sections.c.5') + = t('rules.sections.c.5_html') %li - = raw t('rules.sections.c.6') + = t('rules.sections.c.6') %li = t('rules.sections.c.7.title') %ul %li = t('rules.sections.c.7.bullet1') %li - = t('rules.sections.c.8') + = t('rules.sections.c.8_html') .pb-2-mt-4.mb-2.border-bottom %h3 = t('rules.sections.d.title') @@ -80,13 +80,13 @@ .col-md-12 %ol %li - = raw t('rules.sections.d.1') + = t('rules.sections.d.1_html') %li = t('rules.sections.d.2') %li = t('rules.sections.d.3') %li - = t('rules.sections.d.4') + = t('rules.sections.d.4_html') .pb-2-mt-4.mb-2.border-bottom %h3 = t('rules.sections.e.title') @@ -94,9 +94,9 @@ .col-md-12 %ol %li - = raw t('rules.sections.e.1') + = t('rules.sections.e.1_html') %li - = raw t('rules.sections.e.2') + = t('rules.sections.e.2_html') %li = t('rules.sections.e.3') %li @@ -105,9 +105,9 @@ .col-md-12 %p.clarification-index %small.text-success - = raw t('rules.precisions.1.term') + = t('rules.precisions.1.term') = t('rules.precisions.1.precision') %p.clarification-index %small.text-success - = raw t('rules.precisions.2.term') + = t('rules.precisions.2.term') = t('rules.precisions.2.precision') diff --git a/app/views/rules/privacy.haml b/app/views/rules/privacy.haml index 086b439b..99ca8504 100644 --- a/app/views/rules/privacy.haml +++ b/app/views/rules/privacy.haml @@ -1,7 +1,7 @@ - content_for :title, "Re-Volt America - Privacy" :markdown - ## **#{t('privacy.title')}** + ## **#{t('privacy.title_html')}** --- #{ORG::NAME} collects and stores information about users in very few ways: diff --git a/app/views/rules/terms.haml b/app/views/rules/terms.haml index 3e4173e1..4d005f33 100644 --- a/app/views/rules/terms.haml +++ b/app/views/rules/terms.haml @@ -1,7 +1,7 @@ - content_for :title, "Re-Volt America - Terms" :markdown - ## **#{t('terms.title')}** + ## **#{t('terms.title_html')}** --- By using any services of #{ORG::NAME}, you are agreeing to be bound by the following terms and conditions. diff --git a/app/views/seasons/index.haml b/app/views/seasons/index.haml index 3023e46b..8b79fbd5 100644 --- a/app/views/seasons/index.haml +++ b/app/views/seasons/index.haml @@ -10,23 +10,20 @@ .col-lg-8.col-xl-7.col-xxl-6 .my-5.text-center.text-xl-start %h2.display-5.fw-bolder.text-white.mb-2 - What are RVA Seasons? + = t("seasons.explanation.title") %p.lead.fw-normal.text-white-80.mb-4 - In RVA, we follow a seasonal format for online racing. Every Season consists of 6 Rankings, and each ranking - consists of 28 Sessions, 18 of which are for Single races and the other 10 for Team races. Players score - points for every race. + = t("seasons.explanation.description") .justify-content-sm-center %a{href: "#{current_season.nil? ? '' : season_path(current_season) }", :class => "btn-important btn-lg px-4 me-sm-3 mr-4 #{current_season.nil? ? 'disabled' : ''}"} - Current Season + = t("seasons.buttons.current-season") %a.btn-important.btn-lg.px-4{href: points_path} - Learn More + = t("seasons.buttons.learn-more") .col-xl-5.col-xxl-6.text-center = image_tag "seasons.png", :class => "img-fluid rounded-3 my-5" - if @seasons.any? %h3.text-center - All Seasons - + = t("seasons.bottom.title") %h3.border-bottom.border-gray.pb-2.mb-0 - @seasons.each do |season| - if season.eql?(current_season) @@ -36,7 +33,7 @@ %strong.text-gray-dark = season.name %span.d-block.session-host - = "#{season.start_date} — #{season.end_date.nil? ? 'Present' : season.end_date }" + = "#{season.start_date} — #{season.end_date.nil? ? t("seasons.bottom.present") : season.end_date }" - else %a.media.text-muted.pt-3.border-bottom.border-gray{:href => season_path(season) } .media-body.pb-3.mb-0.small.lh-125 @@ -44,4 +41,4 @@ %strong.text-gray = season.name %span.d-block.session-host - = "#{season.start_date} — #{season.end_date.nil? ? 'Present' : season.end_date }" + = "#{season.start_date} — #{season.end_date.nil? ? t("seasons.bottom.present") : season.end_date }" diff --git a/app/views/seasons/show.haml b/app/views/seasons/show.haml index 86982144..24a0783d 100644 --- a/app/views/seasons/show.haml +++ b/app/views/seasons/show.haml @@ -3,13 +3,13 @@ = render :partial => "application/subnav", :locals => { :season => @season, :rankings => @season.rankings } %h2.mt-4.text-center - = "#{@season.name} Leaderboards" + = t("rankings.title2") %ul.nav.nav-tabs{role: "tablist"} %li.nav-item - %a#singles-tab.nav-link.active{"aria-controls" => "singles", "aria-selected" => "true", "data-toggle" => "tab", href: "#singles", role: "tab"} Singles + %a#singles-tab.nav-link.active{"aria-controls" => "singles", "aria-selected" => "true", "data-toggle" => "tab", href: "#singles", role: "tab"}= t("rankings.nav.singles") %li.nav-item - %a#teams-tab.nav-link{"aria-controls" => "teams", "aria-selected" => "false", "data-toggle" => "tab", href: "#teams", role: "tab"} Teams + %a#teams-tab.nav-link{"aria-controls" => "teams", "aria-selected" => "false", "data-toggle" => "tab", href: "#teams", role: "tab"}= t("rankings.nav.teams") .tab-content #singles.tab-pane.fade.show.active{:"aria-labelledby" => "singles-tab", role: "tabpanel"} .table-responsive#singles-stats-table @@ -17,14 +17,14 @@ %thead %tr %th{width: "1%"} # - %th{width: "2%"} Country - %th{width: "16%"} Racer - %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Average Position"} PP - %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Accumulated Points"} PA - %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Participation Multiplier"} MP - %th.po.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Official Score"} PO - %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Race Count"} CC - %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Sessions Played"} SP + %th{width: "2%"}= t("rankings.table.country") + %th{width: "16%"}= t("rankings.table.racer") + %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.average-position")}= t("rankings.table.pp") + %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.accumulated-points")}= t("rankings.table.pa") + %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.participation-multiplier")}= t("rankings.table.mp") + %th.po.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.official-score")}= t("rankings.table.po") + %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.race-count")}= t("rankings.table.cc") + %th.text-center{width: "14%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.sessions-played")}= t("rankings.table.sp") %tbody - @racer_entries.each do |e| %tr @@ -50,7 +50,7 @@ #teams.tab-pane.fade.show{:"aria-labelledby" => "teams-tab", role: "tabpanel"} - if @team_entries.none? %h5.text-center.mt-2 - = "No team results to display" + = t("rankings.results.no-team-results") - else .table-responsive#teams-table %table.table.table-bordered.table-striped @@ -69,20 +69,20 @@ - @count += 1 = paginate @racer_entries - - if user_is_admin? - = link_to 'Edit Season', edit_season_path(@season), :class => "btn mt-2" - = link_to 'Delete Season', '', :"data-target" => "#deleteSeasonModal", :"data-toggle" => "modal", :type => "button", :class => "btn mt-2" + = link_to t("rankings.admin.season.edit.button"), edit_season_path(@season), :class => "btn mt-2" + = link_to t("rankings.admin.season.delete.button"), '', :"data-target" => "#deleteSeasonModal", :"data-toggle" => "modal", :type => "button", :class => "btn mt-2" #deleteSeasonModal.modal.fade{"aria-hidden" => "true", "aria-labelledby" => "deleteSeasonModalLabel", role: "dialog", tabindex: "-1"} .modal-dialog{:role => "document"} .modal-content .modal-header - %h5#deleteSeasonModalLabel.modal-title Warning! + %h5#deleteSeasonModalLabel.modal-title + = t("rankings.admin.season.delete.warning.title") %button.close{"aria-label" => "Close", "data-dismiss" => "modal", type: "button"} %span{"aria-hidden" => "true"} × .modal-body - = "Deleting a Season will PERMANENTLY delete all its rankings, sessions, cars and tracks! This action is irreversible." + = t("rankings.admin.season.delete.warning.body") .modal-footer - = link_to 'Close', '', :"data-dismiss" => "modal", :type => "button", :class => "btn" - = link_to 'Delete Season', @season, :data => { turbo: true, turbo_method: :delete }, :class => "btn" + = link_to t("rankings.admin.season.delete.warning.close"), '', :"data-dismiss" => "modal", :type => "button", :class => "btn" + = link_to t("rankings.admin.season.delete.warning.delete-season"), @season, :data => { turbo: true, turbo_method: :delete }, :class => "btn" diff --git a/app/views/sessions/_singles_results_table.haml b/app/views/sessions/_singles_results_table.haml index 0888efd1..b8ec0ebd 100644 --- a/app/views/sessions/_singles_results_table.haml +++ b/app/views/sessions/_singles_results_table.haml @@ -9,60 +9,59 @@ .col-xl-5.col-lg-5.col-md-12.col-xs-12 .session-details.mb-4 %h2 - = "#{category_name(@session.category)} Races (Session #{@session.number})" + = t("results.title", category:category_name(@session.category), number:@session.number ) #{category_name(@session.category)} Races (Session #{@session.number}) %ul %li - = "Version: #{@session.version}" + = t("results.version", version:@session.version) #{@session.version}" %li - = "Connection: #{@session.protocol} (Server)" + = t("results.connection", protocol:@session.protocol) #{@session.protocol} %li - = "Mode: #{@session.physics}" + = t("results.mode", physics:@session.physics) #{@session.physics} %li - = "Pickups: #{@session.pickups ? "Enabled" : "Disabled"}" + = t("results.pickups", pickups:@session.pickups ? "Enabled" : "Disabled") #{@session.pickups ? "Enabled" : "Disabled"} %li - = "Teams: #{@session.teams? ? "Yes" : "No"}" + = t("results.teams", teams:@session.teams? ? "Yes" : "No") #{@session.teams? ? "Yes" : "No"} %li - = link_to "Download Session Log", @session.session_log_url + = link_to t("results.download"), @session.session_log_url - if user_is_organizer? || user_is_admin? .col-xl-5.col-lg-5.col-md-12.col-xs-12 .session-details.mb-4 %h2 - = "Admin Actions" + = t("results.admin.title") %ul %li - = link_to 'Edit Session', edit_session_path(@session), :class => "btn mt-2" + = link_to t("results.admin.edit.button"), edit_session_path(@session), :class => "btn mt-2" %li - = link_to 'Delete Session', @session, data: { turbo: true, turbo_method: :delete, turbo_confirm: "Are you sure?" }, :class => "btn mt-2" - + = link_to t("results.admin.delete.button"), @session, data: { turbo: true, turbo_method: :delete, turbo_confirm: t("results.admin.delete.confirmation.body") }, :class => "btn mt-2" #results.container %table.table.table-sm.table-fluid.table-responsive %thead %tr - %th.text-center.align-middle{:width => "1%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Session Number"} + %th.text-center.align-middle{:width => "1%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.session-number")} = @rva_results[0][0] # "#" %th.align-middle{:width => "8%"} = @rva_results[0][1] # "Date" - %th.text-center.align-middle{:width => "1%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Final Position"} - FP + %th.text-center.align-middle{:width => "1%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.final-position")} + = t("rankings.table.fp") %th.align-middle{:width => "30%"} - Racer + = t("rankings.table.racer") - @rva_results[0].slice(2, @session.races.size).each do |item| %th.text-center.align-middle{:width => "4%"} - if item.is_a?(Track) = link_to item.short_name, track_path(item) - else - %span{:"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Track not found"} + %span{:"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tracks.not-found")} = "?" - %th.pp-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Average Position"} - PP - %th.pa-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Obtained Points"} - PA - %th.cc-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Race Count"} - CC - %th.mp-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Participation Multiplier"} - MP - %th.po-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Official Score"} - PO + %th.pp-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.average-position")} + = t("rankings.table.pp") + %th.pa-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.obtained-points")} + = t("rankings.table.pa") + %th.cc-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.race-count")} + = t("rankings.table.cc") + %th.mp-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.participation-multiplier")} + = t("rankings.table.mp") + %th.po-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.official-score")} + = t("rankings.table.po") %tbody - @rva_results.drop(1).each do |row| - if @count.even? @@ -154,25 +153,25 @@ .row .col-4 %b - FP: - Final Position + = t("rankings.table.fp") + ":" + = t("results.container.tooltips.final-position") .col-4 %b - PP: - Average Position + = t("rankings.table.pa") + ":" + = t("results.container.tooltips.average-position") .col-4 %b - PA: - Accumulated Score + = t("rankings.table.pa") + ":" + = t("results.container.tooltips.accumulated-score") .col-4 %b - PO: - Official Score + = t("rankings.table.po") + ":" + = t("results.container.tooltips.official-score") .col-4 %b - CC: - Race Count + = t("rankings.table.cc") + ":" + = t("results.container.tooltips.race-count") .col-4 %b - MP: - Participation Multiplier + = t("rankings.table.mp") + ":" + = t("results.container.tooltips.participation-multiplier") diff --git a/app/views/sessions/_teams_results_table.haml b/app/views/sessions/_teams_results_table.haml index 13e753e0..898f7138 100644 --- a/app/views/sessions/_teams_results_table.haml +++ b/app/views/sessions/_teams_results_table.haml @@ -9,45 +9,44 @@ .col-xl-5.col-lg-5.col-md-12.col-xs-12 .session-details.mb-4 %h2 - = "#{category_name(@session.category)} Races (Session #{@session.number})" + = t("results.title", category:category_name(@session.category), number:@session.number ) %ul %li - = "Version: #{@session.version}" + = t("results.version", version:@session.version) #{@session.version}" %li - = "Connection: #{@session.protocol} (Server)" + = t("results.connection", protocol:@session.protocol) #{@session.protocol} %li - = "Mode: #{@session.physics}" + = t("results.mode", physics:@session.physics) #{@session.physics} %li - = "Pickups: #{@session.pickups ? "Enabled" : "Disabled"}" + = t("results.pickups", pickups:@session.pickups ? "Enabled" : "Disabled") #{@session.pickups ? "Enabled" : "Disabled"} %li - = "Teams: #{@session.teams? ? "Yes" : "No"}" + = t("results.teams", teams:@session.teams? ? "Yes" : "No") #{@session.teams? ? "Yes" : "No"} %li = link_to "Download Session Log", @session.session_log_url - if user_is_organizer? || user_is_admin? .col-xl-5.col-lg-5.col-md-12.col-xs-12 .session-details.mb-4 %h2 - = "Admin Actions" + = t("results.admin.title") %ul %li - = link_to 'Edit Session', edit_session_path(@session), :class => "btn mt-2" + = link_to t("results.admin.edit.button"), edit_session_path(@session), :class => "btn mt-2" %li - = link_to 'Delete Session', @session, data: { turbo: true, turbo_method: :delete, turbo_confirm: "Are you sure?" }, :class => "btn mt-2" - + = link_to t("results.admin.delete.button"), @session, data: { turbo: true, turbo_method: :delete, turbo_confirm: t("results.admin.delete.confirmation.body") }, :class => "btn mt-2" #results.container %table.table.table-sm.table-fluid.table-responsive %thead %tr - %th.text-center.align-middle{:width => "1%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Session Number"} + %th.text-center.align-middle{:width => "1%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.session-number")} = @rva_results[0][0] # "#" %th.align-middle{:width => "8%"} = @rva_results[0][1] # "Date" - %th.text-center.align-middle{:width => "1%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Final Position"} - FP + %th.text-center.align-middle{:width => "1%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.final-position")} + = t("rankings.table.fp") %th.align-middle{:width => "30%"} - Racer + = t("rankings.table.racer") %th.align-middle{:width => "6%"} - Team + = t("results.team") - @rva_results[0].slice(2, @session.races.size).each do |item| %th.text-center.align-middle{:width => "4%"} - if item.is_a?(Track) @@ -55,10 +54,10 @@ - else %span{:"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Track not found"} = "?" - %th.cc-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Race Count"} - CC - %th.pa-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Obtained Points"} - PA + %th.cc-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.race-count")} + = t("rankings.table.cc") + %th.pa-header.text-center.align-middle{:width => "2%", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("results.container.tooltips.obtained-points")} + = t("rankings.table.pa") %tbody - @rva_results.drop(1).each do |row| - if @count.even? @@ -151,13 +150,13 @@ .row .col-4 %b - FP: - Final Position + = t("rankings.table.fp") + ":" + = t("results.container.tooltips.final-position") .col-4 %b - CC: - Race Count + = t("rankings.table.cc") + ":" + = t("results.container.tooltips.race-count") .col-4 %b - PA: - Accumulated Score + = t("rankings.table.pa") + ":" + = t("results.container.tooltips.accumulated-score") diff --git a/app/views/sessions/index.haml b/app/views/sessions/index.haml index cfb4e2ae..2d7c4e9c 100644 --- a/app/views/sessions/index.haml +++ b/app/views/sessions/index.haml @@ -4,7 +4,7 @@ #recent.mb-4 - if @sessions.any? %h6.pb-2.mb-0 - = "Recent Sessions" + = t("application.index.recent.title") .media-group - @sessions.each do |session| %a.media.text-muted.pt-3{:href => session_path(session) } @@ -15,13 +15,13 @@ .media-body.pb-3.mb-0.small.lh-125 .d-flex.justify-content-between.align-items-center.w-100 %strong.text-gray-dark - = "#{session_category_name(session)} Races" + = t("application.index.recent.races", category:session_category_name(session)) #{session_category_name(session) .session-date = pretty_datetime(session.date) %span.d-block.session-host - = "Hosted by #{session.host}" + = t("application.index.recent.hosted-by", host:session.host) #{session.host} - else %h6.text-center - No Sessions to display :( + = t("rankings.sessions.no-sessions") = paginate @sessions diff --git a/app/views/teams/index.haml b/app/views/teams/index.haml index 1d8c1e2a..c6ee4654 100644 --- a/app/views/teams/index.haml +++ b/app/views/teams/index.haml @@ -3,14 +3,43 @@ #teams - if @teams.none? %h2 - RVA Teams + = t("teams.title") %h5.text-center.mt-3 - = "No teams to display" + = t("teams.no-teams") - else %h1 - Global Team Points + = t("teams.global-points.title") #teams.tab-pane.fade.show{:"aria-labelledby" => "teams-tab", role: "tabpanel"} - + .text-center + .row + - @teams.each do |team| + .teams-card.col-xl-3.col-lg-4.cl-md-4.col-sm-6.col-12 + .card + .card-header + .text-center + %h2.car-title + = "#{team.name}" + %small + = "(#{team.short_name})" + .card-body + %img.card-img-top{:src => team.team_logo_url, :alt => ""} + .card-footer + .row + .col-5 + %p + = t("teams.team.leader") + ":" + .col-7 + %p + = link_to team.leader.username, user_path(team.leader) if team.leader + - if team.members.any? + .card-footer + .row + .col-6 + %p + = t("teams.team.members") + ":" + .col-12 + - team.members.each do |member| + = "#{member.username}#{team.members.last.eql?(member) ? '' : ', '}" %table.table.table-hover .table-responsive#teams-table %table.table.table-bordered.table-striped.table-hover diff --git a/app/views/tournaments/index.haml b/app/views/tournaments/index.haml index 78d17db0..48c8366a 100644 --- a/app/views/tournaments/index.haml +++ b/app/views/tournaments/index.haml @@ -2,7 +2,7 @@ #tournaments %h1 - Past Tournaments + = t("tournaments.title") - if @tournaments.none? %h5.text-center.mt-3 @@ -16,4 +16,4 @@ - if user_is_staff? .text-center - = link_to "New", new_tournament_path, :class => "btn btn-sm" + = link_to t("tournaments.new"), new_tournament_path, :class => "btn btn-sm" diff --git a/app/views/tracks/show.haml b/app/views/tracks/show.haml index abcd43f7..4d3ba498 100644 --- a/app/views/tracks/show.haml +++ b/app/views/tracks/show.haml @@ -18,24 +18,26 @@ %br %dl.dl-horizontal %dt - Short Name + = t("rva.tracks.format.short-name.title") %dd = @track.short_name %dt - Difficulty + = t("rva.tracks.format.difficulty.title") %dd = @track.difficulty_name %dt - Length + = t("rva.tracks.format.length.title") %dd - = "#{@track.length} meters" - %dt{:style => "cursor: help;", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Original Re-Volt Content"} - Stock? + = t("rva.tracks.format.length.meters", length:@track.length) #{@track.length} + %dt{:style => "cursor: help;", :"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("rva.cars.features.stock-tooltip.tooltip")} + = t("rva.tracks.format.stock.title") + %dt + %dd - = @track.stock ? "Yes" : "No" + = @track.stock ? t("rva.tracks.format.stock.true") : t("rva.tracks.format.stock.false") - if @track.season %i - = "This track has been featured in RVA #{@track.season.name}" + = t("rva.tracks.featured.description", season:@track.season.name) #{@track.season.name} .col-md-6 %img.thumbnail.center-block.img-responsive{src: @track.thumbnail_url} diff --git a/app/views/users/show.haml b/app/views/users/show.haml index 8d16c4b4..36f093f7 100644 --- a/app/views/users/show.haml +++ b/app/views/users/show.haml @@ -13,8 +13,8 @@ .well .rank .name - %span{:"data-toggle" => "tooltip", :"data-placement" => "top", :title => "Position in current ranking"} - rank + %span{:"data-toggle" => "tooltip", :"data-placement" => "top", :title => t("users.stats.rank.tooltip")} + = t("users.stats.rank.title") .number - if !@rank.nil? && !@rank.eql?('-') %a{:href => ranking_path(current_ranking)} @@ -24,27 +24,31 @@ - else = @rank .rank - .name win rate + .name + = t("users.stats.race-stats.win-rate") .number = @user.stats.race_win_rate .rule %div .total - .name sessions + .name + = t("users.stats.race-stats.sessions") .number = @user.stats.session_count .total - .name races + .name + = t("users.stats.race-stats.races") .number = @user.stats.race_count .total - .name wins + .name + = t("users.stats.race-stats.wins") .number = @user.stats.race_wins .col-md-7.mt-4#recent .media-group %h6.pb-2.mb-0 - = "Session History" + = t("users.stats.session-history.title") - @recent_sessions.each do |session| %a.media.text-muted.pt-3{:href => session_path(session) } .session-number{:style => "background-color: #{session_color_hex(session)}"} @@ -54,21 +58,21 @@ .media-body.pb-3.mb-0.small.lh-125 .d-flex.justify-content-between.align-items-center.w-100 %strong.text-gray-dark - = "#{session_category_name(session)} Races" + = t("application.index.recent.races", category:session_category_name(session)) #{session_category_name(session) .session-date = pretty_datetime(session.date) %span.d-block.session-host - = "Hosted by #{session.host}" + = t("application.index.recent.hosted-by", host:session.host) #{session.host} %br/ %ul.nav.nav-tabs{role: "tablist"} %li.nav-item - %a#general-tab.nav-link.active{"aria-controls" => "general", "aria-selected" => "true", "data-toggle" => "tab", href: "#general", role: "tab"} General + %a#general-tab.nav-link.active{"aria-controls" => "general", "aria-selected" => "true", "data-toggle" => "tab", href: "#general", role: "tab"}= t("users.tabs.title") %li.nav-item - %a#stats-tab.nav-link{"aria-controls" => "stats", "aria-selected" => "false", "data-toggle" => "tab", href: "#stats", role: "tab"} Stats + %a#stats-tab.nav-link{"aria-controls" => "stats", "aria-selected" => "false", "data-toggle" => "tab", href: "#stats", role: "tab"}= t("users.tabs.stats") - if user_is_admin? %li.nav-item - %a#admin-tab.nav-link{"aria-controls" => "admin", "aria-selected" => "false", "data-toggle" => "tab", href: "#admin", role: "tab"} Admin + %a#admin-tab.nav-link{"aria-controls" => "admin", "aria-selected" => "false", "data-toggle" => "tab", href: "#admin", role: "tab"}= t("users.tabs.admin") .tab-content #general.tab-pane.fade.show.active{:"aria-labelledby" => "general-tab", role: "tabpanel"} .row.mt-2.info @@ -124,101 +128,108 @@ .row.info - if @user.profile.gender? .col-sm-6 - %h6 Gender + %h6 + = t("registrations.edit.info.gender") %pre = @user.profile.gender - if @user.profile.location? .col-sm-6 - %h6 Location + %h6 + = t("registrations.edit.info.location") %pre = @user.profile.location - if @user.profile.occupation? .col-sm-6 - %h6 Occupation + %h6 + = t("registrations.edit.info.occupation") %pre = @user.profile.occupation - if @user.profile.interests? .col-sm-6 - %h6 Interests + %h6 + = t("registrations.edit.info.interests") %pre = @user.profile.interests .row.info .col-md-12 .info %h6 - About #{@user.username} + = t("registrations.edit.info.about", user: @user.username) - if @user.profile.about? %pre#about = render_safe(@user.profile.about) - else %pre - Nothing here yet... + = t("registrations.edit.info.about-me.nothing") #stats.tab-pane.fade{:"aria-labelledby" => "stats-tab", role: "tabpanel"} %h4.mt-4 - Race Stats + = t("users.stats.race-stats.title") %hr .row .col-md-4.col-sm-4 %h3 = @user.stats.race_wins %small - = "#{@user.stats.race_wins == 1 ? "win" : "wins"}" + = "#{@user.stats.race_wins == 1 ? t("users.stats.race-stats.win") : t("users.stats.race-stats.wins")}" .col-md-4.col-sm-4 %h3 = @user.stats.race_podiums %small - = "#{@user.stats.race_podiums == 1 ? "podium" : "podiums"}" + = "#{@user.stats.race_podiums == 1 ? t("users.stats.overall-stats.session-podium") : t("users.stats.overall-stats.session-podiums")}" .col-md-4.col-sm-4 %h3 = number_to_percentage(@user.stats.race_win_rate * 100, :precision => 1) %small - win rate + = t("users.stats.race-stats.win-rate") .col-md-4.col-sm-4 %h3 = @user.stats.session_count %small - = "#{@user.stats.session_count == 1 ? "session played" : "sessions played"}" + = "#{@user.stats.session_count == 1 ? t("users.stats.race-stats.session-played") : t("users.stats.race-stats.sessions-played")}" .col-md-4.col-sm-4 %h3 = @user.stats.race_count %small - = "#{@user.stats.race_count == 1 ? "race played" : "races played"}" + = "#{@user.stats.race_count == 1 ? t("users.stats.race-stats.race-played") : t("users.stats.race-stats.races-played")}" %h4.mt-4 - Overall Stats + = t("users.stats.overall-stats.title") %hr .row .col-md-4.col-sm-4 %h3 = @user.stats.session_wins %small - = "#{@user.stats.session_wins == 1 ? "session win" : "session wins"}" + = "#{@user.stats.session_wins == 1 ? t("users.stats.overall-stats.session-win") : t("users.stats.overall-stats.session-wins")}" .col-md-4.col-sm-4 %h3 = @user.stats.session_podiums %small - = "#{@user.stats.session_podiums == 1 ? "session podium" : "session podiums"}" + = "#{@user.stats.session_podiums == 1 ? t("users.stats.overall-stats.session-podium") : t("users.stats.overall-stats.session-podiums")}" .col-md-4.col-sm-4 %h3 = number_to_percentage(@user.stats.session_win_rate * 100, :precision => 1) %small - session win rate + = t("users.stats.overall-stats.session-winrate") .col-md-4.col-sm-4 %h3 = @user.stats.obtained_points %small - = "#{@user.stats.obtained_points == 1 ? "obtained point" : "obtained points"}" + = "#{@user.stats.obtained_points == 1 ? t("users.stats.overall-stats.obtained-point") : t("users.stats.overall-stats.obtained-points")}" .col-md-4.col-sm-4 %h3 = @user.stats.official_score.round(2) - %small official score + %small + = t("users.stats.overall-stats.official-score") .col-md-4.col-sm-4 %h3 = @user.stats.average_position - %small average position + %small + = t("users.stats.overall-stats.average-position") .col-md-4.col-sm-4 %h3 = number_to_percentage(@user.stats.participation_rate * 100, :precision => 1) - %small participation rate + %small + = t("users.stats.overall-stats.participation") - if user_is_admin? #admin.tab-pane.fade{:"aria-labelledby" => "admin-tab", :role => "tabpanel"} = form_for(@user, html: { method: :put }) do |f| @@ -245,18 +256,22 @@ (National flag) .field.form-group = f.country_select :country, {:include_blank => true}, {:class => "form-control"} - %h6 Location + %h6 + = t("registrations.edit.info.location") .form-group - = profile.text_field :location, :placeholder => 'Location', :autocomplete => 'location', :class => 'form-control' - %h6 Occupation + = profile.text_field :location, :placeholder => t("registrations.edit.info.location"), :autocomplete => 'location', :class => 'form-control' + %h6 + = t("registrations.edit.info.occupation") .form-group - = profile.text_field :occupation, :placeholder => 'Occupation', :autocomplete => 'occupation', :class => 'form-control' - %h6 Interests + = profile.text_field :occupation, :placeholder => t("registrations.edit.info.occupation"), :autocomplete => 'occupation', :class => 'form-control' + %h6 + = t("registrations.edit.info.interests") .form-group - = profile.text_field :interests, :placeholder => 'Interests', :autocomplete => 'interests', :class => 'form-control' - %h6 Public Email + = profile.text_field :interests, :placeholder => t("registrations.edit.info.interests"), :autocomplete => 'interests', :class => 'form-control' + %h6 + = t("registrations.edit.info.public-email") .form-group - = profile.text_field :public_email, :placeholder => 'Public Email', :autocomplete => 'public_email', :class => 'form-control' + = profile.text_field :public_email, :placeholder => t("registrations.edit.info.public-email"), :autocomplete => 'public_email', :class => 'form-control' %h6 Discord .form-group = profile.text_field :discord, :placeholder => 'Discord', :autocomplete => 'discord', :class => 'form-control' @@ -285,10 +300,11 @@ .input-group-prepend .input-group-text steamcommunity.com/id/ = profile.text_field :steam, :autocomplete => 'steam', :class => 'form-control' - %h6 About me... (You may use html) + %h6 + = t("registrations.edit.info.about-me.title") .row .form-group - = profile.text_area :about, :placeholder => 'Write something interesting...', :autocomplete => 'about_me', :class => 'form-control' + = profile.text_area :about, :placeholder => t("registrations.edit.info.about-me.placeholder"), :autocomplete => 'about_me', :class => 'form-control' .btn-toolbar .actions - = f.submit "Update #{@user.username}", :class => 'btn btn-sm' + = f.submit t("registrations.edit.update-admin", user: @user.username), :class => 'btn btn-sm' diff --git a/config/application.rb b/config/application.rb index 2aeec948..e1186dc2 100644 --- a/config/application.rb +++ b/config/application.rb @@ -57,6 +57,19 @@ module SYS CSV_TYPES = %w(application/vnd.ms-excel text/csv) XLSM_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'.freeze + LOCALES_MAP = { + 'English, US' => :en, + 'English, UK' => :en_gb, + 'Español' => :es, + 'Español, Argentina' => :es_ar, + 'Español, Bolivia' => :es_bo, + 'Español, Chile' => :es_cl, + 'Italiano' => :it, + 'LOLCAT' => :lol, + 'Português, Brasil' => :pt_br, + '한국어' => :ko + } + module CAR MYSTERY_NAME = 'Mystery' CLOCKWORK_NAME = 'Clockwork' @@ -186,6 +199,10 @@ def rva_role=(role) config.hosts << "staging.#{ORG::DOMAIN}" config.hosts << "production.#{ORG::DOMAIN}" + config.i18n.available_locales = [:en, :en_gb, :es, :es_ar, :es_bo, :es_cl, :it, :lol, :pt_br, :ko] + config.i18n.default_locale = :en + config.i18n.fallbacks = true + config.generators.system_tests = nil config.generators do |g| g.test_framework( diff --git a/config/locales/en.yml b/config/locales/en.yml index 917e2d19..17c2653a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,53 +1,45 @@ -# 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. -# -# The following keys must be escaped otherwise they will not be retrieved by -# the default I18n backend: -# -# true, false, on, off, yes, no -# -# Instead, surround them with single quotes. -# -# en: -# 'true': 'foo' -# -# To learn more, please read the Rails Internationalization guide -# available at https://guides.rubyonrails.org/i18n.html. - en: + + # Navigation nav: play: "Play" - rules: "Rules" - downloads: "Downloads" - rva: - title: "RVA" - tracks: "Tracks" - cars: "Cars" - points: "Points System" - players: - title: "Players" - staff: "Staff" - stats: "Stats" + tracks: "Tracks" + cars: "Cars" + seasons: "Seasons" league: title: "League" + leaderboard: "Leaderboard" + point-system: "Points System" teams: "Teams" tournaments: "Tournaments" - discussions: "Discussions" + downloads: "Downloads" + user: + my-profile: "My Profile" + settings: "Settings" + admin: + title: "Admin" + upload-session: "Upload Session" + create-season: "Create Season" + import-tracks: "Import Tracks" + import-cars: "Import Cars" + new-team: "New Team" + new-tournament: "New Tournament" + import-users: "Import Users" + log-out: "Log out" + login: "Login" + register: "Register" + + # Sub-navigation + sub-nav: + seasons: "Seasons" + rankings: "Rankings" + ranking: "Ranking" + ranking-n: "Ranking %{n}" + session-n: "Session %{n}" + tracks: "Tracks" + cars: "Cars" + + # Footer footer: policies: title: "Policies" @@ -56,6 +48,7 @@ en: privacy: "Privacy Policy" organization: title: "Organization" + staff: "Staff listing" logs: "Development Logs" bugs: "Report a Bug" sponsor: "Sponsor" @@ -68,29 +61,60 @@ en: discord: "Discord" github: "GitHub" crowdin: "Crowdin" + + # Landing page, Splash, About + application: + splash: + description1: "The Website for the American community of Re-Volt, 1999" + description2: "Download the game and meet players from all over the Americas!" + download-button: "Downloads »" + index: + community: + title: "Community" + description: "We are an amazing Re-Volt community mainly made up of South American players, but you will also find people from all over the world playing online with us." + play-button: "Play »" + competition: + title: "Competition" + description: "In Re-Volt America we race in a seasonal format. Throughout each season, you will be able to race online daily and score points for every race you participate in!" + seasons-button: "Seasons »" + reliability: + title: "Reliabilty" + description: "Re-Volt America has been designed with sustainability and scalability in mind. Most of the features you see here you will not find in any other Re-Volt community." + about-us-button: "About Us »" + recent: + title: "Recent Sessions" + races: "%{category} Races" + team-races: "%{category} Team Races" + hosted-by: "Hosted by %{host}" + all-sessions-button: "All Sessions" + no-sessions: "N" + about: + title: "About Re-Volt America" + description: "The largest Re-Volt community you'll find in the American Continent. Join our racing sessions, compete in our seasons and meet other Re-Volt players from around the world!" + + # Play page play: subheader: "We play daily at 00:00 UTC" - subheader2: "Lobbies are posted at #lobby-rva" + subheader2_html: "Lobbies are posted at #lobby-rva" + + # Downloads page downloads: title: "Downloads" - rvgl-rva: "RVGL + RVA Pack" - rva-standalone: "RVA Pack" - rva-launcher-repository: "RVGL Launcher Repository" - current-version: "Current version:" - re-volt: - description: "This is the game we play, Re-Volt! Get it from the RVGL project in order to play online with us." - rva: - description: "The content pack we use at Re-Volt America. This includes the cars, tracks & gfx." - repo: - intro: "If you are using the RVGL Launcher and you don't see the rva_ prefixed packs at the Packs tab, then you don't have our repository added! Go to your Repositories tab and add our packages repo:" + video: "Pending video..." + faq: + title: "If you are new to the community, we strongly recommend that you read the our Frequently Asked Questions page" + button: "Take me there!" + legacy-downloads: "Legacy Downloads" + + # Rules page rules: title: "Rules" sections: a: title: "A. General Composure" 1: "Always keep a calm atmosphere towards other users." - 2: "Do not Spam. Within reasonable limits you may promote yourself and others, just do not cross the line and you should be fine." - 3: "Doxing other users is prohibited. If you endorse it or take part in it RVA WILL take action." + 2_html: "Do not Spam. Within reasonable limits you may promote yourself and others, just do not cross the line and you should be fine." + 3_html: "Doxing other users is prohibited. If you endorse it or take part in it RVA WILL take action." 4: "Follow directions given by staff members at all times." 5: "Use your common sense. It really is not that difficult!" b: @@ -105,29 +129,29 @@ en: 1: "You may use cars from the class in course & below. (rookie, amateur, advanced, etc.)" 2: title: "Using a car below the class in course will grant the following score bonuses:" - bullet1: "One class below: 25%." - bullet2: "Two classes below: 50%." - bullet3: "Three classes below: 75%." - bullet4: "Four classes below: 100%." - bullet5: "Five classes below: 125%." - 3: "Do NOT use cars from a higher class than the one in course. Doing so will invalidate the points you get with it." - 4: "Do NOT purposely shoot or mess up non-immediate positions (players who lap you)." - 5: "Do NOT ask for RE (1) unless you are late to a race or experience technical difficulties. Other reasons are deemed invalid." + bullet1_html: "One class below: 25%." + bullet2_html: "Two classes below: 50%." + bullet3_html: "Three classes below: 75%." + bullet4_html: "Four classes below: 100%." + bullet5_html: "Five classes below: 125%." + 3_html: "Do NOT use cars from a higher class than the one in course. Doing so will invalidate the points you get with it." + 4_html: "Do NOT purposely shoot or mess up non-immediate positions (players who lap you)." + 5_html: "Do NOT ask for RE (1) unless you are late to a race or experience technical difficulties. Other reasons are deemed invalid." 6: "Avoid changing your name in the middle of lobbies, as this may difficult the process of calculating the final scores." 7: title: "You may type RE during the first 40 seconds of a race due to an external non-game related factor." bullet1: "Only 1 RE per track will be granted. If somebody asked for RE before you did, then the host will not restart again." - 8: "The accumulated multiplier of any car will never exceed 4.0." + 8_html: "The accumulated multiplier of any car will never exceed 4.0." d: title: "D. Discord Server" - 1: "You must follow and abide to the Discord Terms of Service. Failure to do so will get you banned from Re-Volt America." + 1_html: "You must follow and abide to the Discord Terms of Service. Failure to do so will get you banned from Re-Volt America." 2: "Stay on-topic within channels." 3: "Do not harass other users." - 4: "Media that may cause other users' Discord client to crash or very explicit content will be deleted, and you may be punished for posting it." + 4_html: "Media that may cause other users' Discord client to crash or very explicit content will be deleted, and you may be punished for posting it." e: title: "E. Punishments" - 1: "Failure to follow any of the Races & Scoring rules may get you speced (2) in our lobbies, or kicked if you insist on breaking our rules." - 2: "Users may be kicked from our Discord server for breaking the rules. If the rule violation is severe, you may be banned instead." + 1_html: "Failure to follow any of the Races & Scoring rules may get you speced (2) in our lobbies, or kicked if you insist on breaking our rules." + 2_html: "Users may be kicked from our Discord server for breaking the rules. If the rule violation is severe, you may be banned instead." 3: "Evading Discord bans will get you banned eventually. We will find out." 4: "All infractions are subject to staff team's discretion" precisions: @@ -137,24 +161,41 @@ en: 2: term: "(2) Speced:" precision: "When the lobby host forces a racer into spectator. In this context, as a form of punishment." + + # Privacy & Terms pages + privacy: + title_html: " Privacy Policy" + terms: + title_html: " Terms of Service" + + # Staff page + staff: + title: "Staff" + description: "The people who help run Re-Volt America!" + groups: + administrator: "Administrators" + developer: "Developers" + moderator: "Moderators" + organizer: "Organizers" + + # Points page points: - title: "Points System" + title: "RVA Points System" introduction: title: "Introduction" - p1: "In Re-Volt America, racers are assigned points for each race they play, which vary depending on the position they finish in. The following image illustrates which positions give what amount of points:" - p2: "For lobbies which start with 10 or more racers, bonus points are scored. The following image illustrates the points system with the bonus points in place:" + description: "In Re-Volt America, players score points for each race they get to finish. The amount of points each player scores will depend on two things: their final position in the race, and the amount of racers in that race. If a race has 10 or more racers in it, then it's considered a to be a \"big\" race." + normal-race: "Normal Race Scoring" + big-race: "Big Race Scoring" car-ratings: title: "Car Ratings" - p1: "Cars are rated depending on their top speed, acceleration, weight, etc. And each rating results in a multiplier for each car. The yellow bolt represents said multiplier for the cars in the following image:" - p2: "With that in mind, 1° place scores of 15 points, on three different cars, would vary depending on their multipliers:" - variables: - title: "Variables" - 1: "Obtained Points" - 2: "Car Multiplier" - 3: "Average Position" - 4: "Official Score" - 5: "0.1, constant factor for reducing final scores" - parser: "RVA Points Parser" + description: "In Re-Volt America, cars are assigned a 'multiplier' depending on their top speed, acceleration, weight, and other characteristics that may make them better or worse for online racing. We used this multiplayer to reward racers for playing hard cars, and for regulating really good or overpowered cars as well. Here is how the formula is applied each race with different car multipliers:" + desktop-parser: + title: "RVA Desktop Points Parser" + description: "The RVA Desktop Points Parser is a Desktop application designed to calculate a results table in the RVA format from a given RVGL session log. Through this portable tool, we allow anyone to parse session results using our system locally if they so desire. Here is an example of what you'll get by parsing one of our sessions yourself:" + downloads: + title: "Download RVA Points" + + # RVA strings rva: tracks: all-tracks: "All Tracks" @@ -162,6 +203,8 @@ en: title: "The RVA Tracks" format: title: "Format" + short-name: + title: "Short Name" difficulty: title: "Difficulty" easy: "Easy" @@ -174,6 +217,13 @@ en: medium: "Medium" long: "Long" extralong: "Extra Long" + meters: "%{length} meters" + stock: + title: "Stock?" + true: "Yes" + false: "No" + featured: + description: "This track has been featured in RVA %{season}" rotation: title: "Re-Volt America Rotation" collection: @@ -181,11 +231,23 @@ en: cars: title: "The RVA Cars" ratings-link: "Car Ratings" + features: + speed: "Speed" + acceleration: "Acceleration" + weight: "Weight" + multiplier: "Multiplier" + category: "Category" + stock: "Stock" + stock-tooltip: + tooltip: "Original Re-Volt Content" + featured-session: "This car has been featured in RVA %{season}" class-selector: title: "Classes" + + # Assets page assets: title: "LOGOS & USAGE" - subtitle: "A collection of our main assets, crafted by the talented Hylia, which you can download to integrate with RVA or link back to us!" + subtitle_html: "A collection of our main assets, crafted by the talented Hylia, which you can download to integrate with RVA or link back to us!" allowed: title: "Allowed Usage" 1: "Use our logo to link to our website." @@ -208,17 +270,216 @@ en: attribution: title: "Attribution" 1: "Other assets like car rating images, track images, emojis, etc. are made by members of our community, and all rights belong to their respective authors." - 2: "These guidelines were heavily based on GitHub's Logos and Usage Guidelines." - error: - 404: - title: "Error 404" - caption: "Page not found :(" - alerts: - 1: "We're playing right now! Lobby IP:" - 2: "New RVA Pack Update Available!" + 2_html: "These guidelines were heavily based on GitHub's Logos and Usage Guidelines." + + # Seasons page seasons: - season: "Season" - unavailable: "Results unavailable" + title: "The RVA Seasons" + explanation: + title: "What are RVA Seasons?" + description: "In RVA, we follow a seasonal format for online racing. Every Season consists of 6 Rankings, and each ranking + consists of 28 Sessions, 18 of which are for Single races and the other 10 for Team races. Players score + points for every race." + buttons: + current-season: "Current Season" + learn-more: "Learn More" + bottom: + title: "All Seasons" + present: "Present" + + # Rankings page + rankings: + title: "Ranking %{number}" + title2: "Leaderboards" + small: "%{count} sessions played" + table: + country: "Country" + racer: "Racer" + pp: "PP" + pa: "PA" + mp: "MP" + po: "PO" + cc: "CC" + fj: "FJ" + fp: "FP" + sp: "SP" + sessions: + title: "Sessions" + no-sessions: "No sessions to display :(" + results: + no-team-results: "No team results to disiplay" + nav: + singles: "Singles" + teams: "Teams" + admin: + season: + edit: + button: "Edit Season" + delete: + button: "Delete season" + warning: + title: "Warning!" + body: "Deleting a Season will PERMANENTLY delete all its rankings, sessions, cars and tracks! This action is irreversible. " + close: "Close" + delete-season: "Delete Season" + + # Devise strings + confirmation: + welcome: "Welcome %{email}" + description: "You can confirm your account email through the link below:" + email: + changed: + greeting: "Hello %{email}!" + changing: "We're contacting you to notify you that your email is being changed to %{email}." + changed: "We're contacting you to notify you that your email has been changed to %{email}" + password: + change: + greeting: "Hello %{email}!" + description: "We're contacting you to notify you that your password has been changed." + reset: + greeting: "Hello %{email}!" + advise: "Someone has requested a link to change your password. You can do this through the link below." + advise2: "If you didn't request this, please ignore this email." + advise3: "Your password won't change until you access the link above and create a new one." + account: + unlock: + greeting: "Hello %{email}!" + advise: "Your account has been locked due to an excessive number of unsuccessful sign in attempts." + instruction: "Click the link below to unlock your account:" + url: "Unlock my account" + registrations: + edit: + title: "Edit User" + email: + title: "Change Email" + new: "New email" + password: + title: "Change Password" + new-length: "New password (%{length} characters minimum)" + new: "New password" + confirm: "Confirm new password" + info: + title: "Change your info" + gender: "Gender" + nationality: + title: "Nationality" + small: "(National flag)" + placeholder: "Select nationality" + location: "Location" + occupation: "Occupation" + interests: "Interests" + public-email: "Public Email" + about: "About %{user}" + about-me: + title: "About me... (You may use html)" + title2: "About %{user}" + nothing: "Nothing here yet..." + placeholder: "Write something interesting..." + current-password: "Current password" + update: "Update" + update-admin: "Update %{user}" + + # Development logs + repositories: + title: "Revisions" + small: "Latest git commits in our organization" + new-button: "New" + repository: "Repository" + table: + title: "Repository" + revision: "Revision" + author: "Author" + description: "Description" + when: "When" + + # RVA results page + results: + title: "%{category} Races (Session %{number})" + version: "Version: %{version}" + connection: "Connection: %{protocol} (Server)" + mode: "Mode: %{physics}" + pickups: "Pickups: %{pickups}" + teams: "Teams: %{teams}" + download: "Download Session Log" + team: "Team" + admin: + title: "Admin Actions" + edit: + button: "Edit Session" + delete: + button: "Delete Session" + confirmation: + body: "Are you sure?" + container: + tooltips: + session-number: "Session Number" + final-position: "Final Position" + average-position: "Average Position" + obtained-points: "Obtained Points" + race-count: "Race Count" + participation-multiplier: "Participation Multiplier" + official-score: "Official Score" + accumulated-score: "Accumulated Score" + accumulated-points: "Accumulated Points" + sessions-played: "Sessions Played" + tracks: + not-found: "Track not found" + + # Teams page + teams: + title: "RVA Teams" + no-teams: "No teams to display" + global-points: + title: "Global Team Points" + team: + leader: "Leader" + members: "Members" + + # User profile page + users: + stats: + title: "Stats" + rank: + title: "rank" + tooltip: "Position in current ranking" + race-stats: + title: "Race Stats" + win-rate: "win rate" + sessions: "sessions" + races: "races" + win: "win" + wins: "wins" + podium: "podium" + podiums: "podiums" + session-played: "session played" + sessions-played: "sessions played" + race-played: "race played" + races-played: "races played" + session-history: + title: "Session History" + overall-stats: + title: "Overall Stats" + session-win: "session win" + session-wins: "session wins" + session-podium: "session podium" + session-podiums: "session podiums" + session-winrate: "session win rate" + obtained-point: "obtained point" + obtained-points: "obtained points" + official-score: "official score" + average-position: "average position" + participation: "participation rate" + tabs: + title: "General" + stats: "Stats" + admin: "Admin" + + # Tournaments page + tournaments: + title: "Past Tournaments" + new: "New" + + # Re-Volt car classes classes: rookie: "Rookie" amateur: "Amateur" @@ -228,10 +489,8 @@ en: super-pro: "Super-Pro" clockwork: "Clockwork" random: "Random" - misc: - download: "Download" - search: "Search" - and: "&" + + # Car metrics car-card: speed: "Speed" kmh: "km/h" @@ -240,19 +499,25 @@ en: weight: "Weight" kg: "Kg" multiplier: "Multiplier" - staff: - title: "Staff" - description: "The people who help run Re-Volt America!" - groups: - administrator: "Administrators" - developer: "Developers" - moderator: "Moderators" - organizer: "Organizers" - privacy: - title: " Privacy Policy" - terms: - title: " Terms of Service" - application: - index: - community: "Community" \ No newline at end of file + # Alert message boxes + alerts: + no-permission: "You do not have permission" + + # Error pages + error: + 404: + title: "Error 404" + message: "Not Found" + 422: + title: "Error 404" + message: "Illegal Error" + 500: + title: "Error 404" + message: "Internal Server Error" + + # Misc strings + misc: + download: "Download" + search: "Search" + and: "&" diff --git a/config/locales/en_gb.yml b/config/locales/en_gb.yml new file mode 100644 index 00000000..bde132bd --- /dev/null +++ b/config/locales/en_gb.yml @@ -0,0 +1,496 @@ +en_gb: + #Navigation + nav: + play: "Play" + tracks: "Tracks" + cars: "Cars" + seasons: "Seasons" + league: + title: "League" + leaderboard: "Leaderboard" + point-system: "Points System" + teams: "Teams" + tournaments: "Tournaments" + downloads: "Downloads" + user: + my-profile: "My Profile" + settings: "Settings" + admin: + title: "Admin" + upload-session: "Upload Session" + create-season: "Create Season" + import-tracks: "Import Tracks" + import-cars: "Import Cars" + new-team: "New Team" + new-tournament: "New Tournament" + import-users: "Import Users" + log-out: "Log out" + login: "Login" + register: "Register" + #Sub-navigation + sub-nav: + seasons: "Seasons" + rankings: "Rankings" + ranking: "Ranking" + ranking-n: "Ranking %{n}" + session-n: "Session %{n}" + tracks: "Tracks" + cars: "Cars" + #Footer + footer: + policies: + title: "Policies" + rules: "Rules" + terms: "Terms of Service" + privacy: "Privacy Policy" + organization: + title: "Organisation" + staff: "Staff listing" + logs: "Development Logs" + bugs: "Report a Bug" + sponsor: "Sponsor" + trademark: + title: "Trademark" + assets: "Assets" + emoji: "Emoji" + social: + title: "Find Us" + discord: "Discord" + github: "GitHub" + crowdin: "Crowdin" + #Landing page, Splash, About + application: + splash: + description1: "The Website for the American community of Re-Volt, 1999" + description2: "Download the game and meet players from all over the Americas!" + download-button: "Downloads »" + index: + community: + title: "Community" + description: "We are an amazing Re-Volt community mainly made up of South American players, but you will also find people from all over the world playing online with us." + play-button: "Play »" + competition: + title: "Competition" + description: "In Re-Volt America we race in a seasonal format. Throughout each season, you will be able to race online daily and score points for every race you participate in!" + seasons-button: "Seasons »" + reliability: + title: "Reliabilty" + description: "Re-Volt America has been designed with sustainability and scalability in mind. Most of the features you see here you will not find in any other Re-Volt community." + about-us-button: "About Us »" + recent: + title: "Recent Sessions" + races: "%{category} Races" + team-races: "%{category} Team Races" + hosted-by: "Hosted by %{host}" + all-sessions-button: "All Sessions" + no-sessions: "N" + about: + title: "About Re-Volt America" + description: "The largest Re-Volt community you'll find in the American Continent. Join our racing sessions, compete in our seasons and meet other Re-Volt players from around the world!" + #Play page + play: + subheader: "We play daily at 00:00 UTC" + subheader2_html: "Lobbies are posted at #lobby-rva" + #Downloads page + downloads: + title: "Downloads" + video: "Pending video..." + faq: + title: "If you are new to the community, we strongly recommend that you read the our Frequently Asked Questions page" + button: "Take me there!" + legacy-downloads: "Legacy Downloads" + #Rules page + rules: + title: "Rules" + sections: + a: + title: "A. General Composure" + 1: "Always keep a calm atmosphere towards other users." + 2_html: "Do not Spam. Within reasonable limits you may promote yourself and others, just do not cross the line and you should be fine." + 3_html: "Doxing other users is prohibited. If you endorse it or take part in it RVA WILL take action." + 4: "Follow directions given by staff members at all times." + 5: "Use your common sense. It really is not that difficult!" + b: + title: "B. Creating a Username" + 1: + title: "To play Re-Volt you must choose a username, and to be indexed into the official RVA rankings players must choose a nickname which abides to the following guidelines:" + bullet1: "Your nickname must have from 1 to 16 characters." + bullet2: "Your nickname may contain any characters from A-Z (uppercase or lowercase), numbers, underscores and blank spaces." + bullet3: "Your nickname must be unique! If you are not sure, you may ask the staff team to find out if the username you want is already being used by another player." + c: + title: "C. Races & Scoring" + 1: "You may use cars from the class in course & below. (rookie, amateur, advanced, etc.)" + 2: + title: "Using a car below the class in course will grant the following score bonuses:" + bullet1_html: "One class below: 25%." + bullet2_html: "Two classes below: 50%." + bullet3_html: "Three classes below: 75%." + bullet4_html: "Four classes below: 100%." + bullet5_html: "Five classes below: 125%." + 3_html: "Do NOT use cars from a higher class than the one in course. Doing so will invalidate the points you get with it." + 4_html: "Do NOT purposely shoot or mess up non-immediate positions (players who lap you)." + 5_html: "Do NOT ask for RE (1) unless you are late to a race or experience technical difficulties. Other reasons are deemed invalid." + 6: "Avoid changing your name in the middle of lobbies, as this may difficult the process of calculating the final scores." + 7: + title: "You may type RE during the first 40 seconds of a race due to an external non-game related factor." + bullet1: "Only 1 RE per track will be granted. If somebody asked for RE before you did, then the host will not restart again." + 8_html: "The accumulated multiplier of any car will never exceed 4.0." + d: + title: "D. Discord Server" + 1_html: "You must follow and abide to the Discord Terms of Service. Failure to do so will get you banned from Re-Volt America." + 2: "Stay on-topic within channels." + 3: "Do not harass other users." + 4_html: "Media that may cause other users' Discord client to crash or very explicit content will be deleted, and you may be punished for posting it." + e: + title: "E. Punishments" + 1_html: "Failure to follow any of the Races & Scoring rules may get you speced (2) in our lobbies, or kicked if you insist on breaking our rules." + 2_html: "Users may be kicked from our Discord server for breaking the rules. If the rule violation is severe, you may be banned instead." + 3: "Evading Discord bans will get you banned eventually. We will find out." + 4: "All infractions are subject to staff team's discretion" + precisions: + 1: + term: "(1) RE:" + precision: "Requesting the lobby host to restart the current race." + 2: + term: "(2) Speced:" + precision: "When the lobby host forces a racer into spectator. In this context, as a form of punishment." + #Privacy & Terms pages + privacy: + title_html: " Privacy Policy" + terms: + title_html: " Terms of Service" + #Staff page + staff: + title: "Staff" + description: "The people who help run Re-Volt America!" + groups: + administrator: "Administrators" + developer: "Developers" + moderator: "Moderators" + organizer: "Organizers" + #Points page + points: + title: "RVA Points System" + introduction: + title: "Introduction" + description: "In Re-Volt America, players score points for each race they get to finish. The amount of points each player scores will depend on two things: their final position in the race, and the amount of racers in that race. If a race has 10 or more racers in it, then it's considered a to be a \"big\" race." + normal-race: "Normal Race Scoring" + big-race: "Big Race Scoring" + car-ratings: + title: "Car Ratings" + description: "In Re-Volt America, cars are assigned a 'multiplier' depending on their top speed, acceleration, weight, and other characteristics that may make them better or worse for online racing. We used this multiplayer to reward racers for playing hard cars, and for regulating really good or overpowered cars as well. Here is how the formula is applied each race with different car multipliers:" + desktop-parser: + title: "RVA Desktop Points Parser" + description: "The RVA Desktop Points Parser is a Desktop application designed to calculate a results table in the RVA format from a given RVGL session log. Through this portable tool, we allow anyone to parse session results using our system locally if they so desire. Here is an example of what you'll get by parsing one of our sessions yourself:" + downloads: + title: "Download RVA Points" + #RVA strings + rva: + tracks: + all-tracks: "All Tracks" + season: "Season" + title: "The RVA Tracks" + format: + title: "Format" + short-name: + title: "Short Name" + difficulty: + title: "Difficulty" + easy: "Easy" + medium: "Medium" + hard: "Hard" + extreme: "Extreme" + length: + title: "Length" + short: "Short" + medium: "Medium" + long: "Long" + extralong: "Extra Long" + meters: "%{length} meters" + stock: + title: "Stock?" + true: "Yes" + false: "No" + featured: + description: "This track has been featured in RVA %{season}" + rotation: + title: "Re-Volt America Rotation" + collection: + title: "Re-Volt America Track Collection" + cars: + title: "The RVA Cars" + ratings-link: "Car Ratings" + features: + speed: "Speed" + acceleration: "Acceleration" + weight: "Weight" + multiplier: "Multiplier" + category: "Category" + stock: "Stock" + stock-tooltip: + tooltip: "Original Re-Volt Content" + featured-session: "This car has been featured in RVA %{season}" + class-selector: + title: "Classes" + #Assets page + assets: + title: "LOGOS & USAGE" + subtitle_html: "A collection of our main assets, crafted by the talented Hylia, which you can download to integrate with RVA or link back to us!" + allowed: + title: "Allowed Usage" + 1: "Use our logo to link to our website." + 2: "Use our logo to advertise that you integrate with RVA." + 3: "Use our logo in blog posts or articles about RVA." + prohibited: + title: "Forbidden Usage" + 1: "Use our logo as your application's icon." + 2: "Create a modified version of any of our logos." + 3: "Integrate any of our logos into your logo." + 4: "Use any of our artwork without permission." + 5: "Change the colours, dimensions or add your own text/images." + contact: + title: "Please Contact Us" + 1: "If you want to use artwork not included in this repository." + 2: "If you want to use these images in a video/mainstream media." + naming: + title: "Naming Projects and Products" + 1: "Please avoid naming your projects anything that implies Re-Volt America's endorsement. This also applies to domain names." + attribution: + title: "Attribution" + 1: "Other assets like car rating images, track images, emojis, etc. are made by members of our community, and all rights belong to their respective authors." + 2_html: "These guidelines were heavily based on GitHub's Logos and Usage Guidelines." + #Seasons page + seasons: + title: "The RVA Seasons" + explanation: + title: "What are RVA Seasons?" + description: "In RVA, we follow a seasonal format for online racing. Every Season consists of 6 Rankings, and each ranking consists of 28 Sessions, 18 of which are for Single races and the other 10 for Team races. Players score points for every race." + buttons: + current-season: "Current Season" + learn-more: "Learn More" + bottom: + title: "All Seasons" + present: "Present" + #Rankings page + rankings: + title: "Ranking %{number}" + title2: "Leaderboards" + small: "%{count} sessions played" + table: + country: "Country" + racer: "Racer" + pp: "PP" + pa: "PA" + mp: "MP" + po: "PO" + cc: "CC" + fj: "FJ" + fp: "FP" + sp: "SP" + sessions: + title: "Sessions" + no-sessions: "No sessions to display :(" + results: + no-team-results: "No team results to disiplay" + nav: + singles: "Singles" + teams: "Teams" + admin: + season: + edit: + button: "Edit Season" + delete: + button: "Delete season" + warning: + title: "Warning!" + body: "Deleting a Season will PERMANENTLY delete all its rankings, sessions, cars and tracks! This action is irreversible. " + close: "Close" + delete-season: "Delete Season" + #Devise strings + confirmation: + welcome: "Welcome %{email}" + description: "You can confirm your account email through the link below:" + email: + changed: + greeting: "Hello %{email}!" + changing: "We're contacting you to notify you that your email is being changed to %{email}." + changed: "We're contacting you to notify you that your email has been changed to %{email}" + password: + change: + greeting: "Hello %{email}!" + description: "We're contacting you to notify you that your password has been changed." + reset: + greeting: "Hello %{email}!" + advise: "Someone has requested a link to change your password. You can do this through the link below." + advise2: "If you didn't request this, please ignore this email." + advise3: "Your password won't change until you access the link above and create a new one." + account: + unlock: + greeting: "Hello %{email}!" + advise: "Your account has been locked due to an excessive number of unsuccessful sign in attempts." + instruction: "Click the link below to unlock your account:" + url: "Unlock my account" + registrations: + edit: + title: "Edit User" + email: + title: "Change Email" + new: "New email" + password: + title: "Change Password" + new-length: "New password (%{length} characters minimum)" + new: "New password" + confirm: "Confirm new password" + info: + title: "Change your info" + gender: "Gender" + nationality: + title: "Nationality" + small: "(National flag)" + placeholder: "Select nationality" + location: "Location" + occupation: "Occupation" + interests: "Interests" + public-email: "Public Email" + about: "About %{user}" + about-me: + title: "About me... (You may use html)" + title2: "About %{user}" + nothing: "Nothing here yet..." + placeholder: "Write something interesting..." + current-password: "Current password" + update: "Update" + update-admin: "Update %{user}" + #Development logs + repositories: + title: "Revisions" + small: "Latest git commits in our organization" + new-button: "New" + repository: "Repository" + table: + title: "Repository" + revision: "Revision" + author: "Author" + description: "Description" + when: "When" + #RVA results page + results: + title: "%{category} Races (Session %{number})" + version: "Version: %{version}" + connection: "Connection: %{protocol} (Server)" + mode: "Mode: %{physics}" + pickups: "Pickups: %{pickups}" + teams: "Teams: %{teams}" + download: "Download Session Log" + team: "Team" + admin: + title: "Admin Actions" + edit: + button: "Edit Session" + delete: + button: "Delete Session" + confirmation: + body: "Are you sure?" + container: + tooltips: + session-number: "Session Number" + final-position: "Final Position" + average-position: "Average Position" + obtained-points: "Obtained Points" + race-count: "Race Count" + participation-multiplier: "Participation Multiplier" + official-score: "Official Score" + accumulated-score: "Accumulated Score" + accumulated-points: "Accumulated Points" + sessions-played: "Sessions Played" + tracks: + not-found: "Track not found" + #Teams page + teams: + title: "RVA Teams" + no-teams: "No teams to display" + global-points: + title: "Global Team Points" + team: + leader: "Leader" + members: "Members" + #User profile page + users: + stats: + title: "Stats" + rank: + title: "rank" + tooltip: "Position in current ranking" + race-stats: + title: "Race Stats" + win-rate: "win rate" + sessions: "sessions" + races: "races" + win: "win" + wins: "wins" + podium: "podium" + podiums: "podiums" + session-played: "session played" + sessions-played: "sessions played" + race-played: "race played" + races-played: "races played" + session-history: + title: "Session History" + overall-stats: + title: "Overall Stats" + session-win: "session win" + session-wins: "session wins" + session-podium: "session podium" + session-podiums: "session podiums" + session-winrate: "session win rate" + obtained-point: "obtained point" + obtained-points: "obtained points" + official-score: "official score" + average-position: "average position" + participation: "participation rate" + tabs: + title: "General" + stats: "Stats" + admin: "Admin" + #Tournaments page + tournaments: + title: "Past Tournaments" + new: "New" + #Re-Volt car classes + classes: + rookie: "Rookie" + amateur: "Amateur" + advanced: "Advanced" + semi-pro: "Semi-Pro" + pro: "Pro" + super-pro: "Super-Pro" + clockwork: "Clockwork" + random: "Random" + #Car metrics + car-card: + speed: "Speed" + kmh: "km/h" + acc: "Acc" + ms2: "ms²" + weight: "Weight" + kg: "Kg" + multiplier: "Multiplier" + #Alert message boxes + alerts: + no-permission: "You do not have permission" + #Error pages + error: + 404: + title: "Error 404" + message: "Not Found" + 422: + title: "Error 404" + message: "Illegal Error" + 500: + title: "Error 404" + message: "Internal Server Error" + #Misc strings + misc: + download: "Download" + search: "Search" + and: "&" diff --git a/config/locales/es.yml b/config/locales/es.yml new file mode 100644 index 00000000..467635e9 --- /dev/null +++ b/config/locales/es.yml @@ -0,0 +1,496 @@ +es: + #Navigation + nav: + play: "Jugar" + tracks: "Pistas" + cars: "Coches" + seasons: "Temporadas" + league: + title: "Liga" + leaderboard: "Tabla de Posiciones" + point-system: "Sistema de Puntos" + teams: "Equipos" + tournaments: "Torneos" + downloads: "Descargas" + user: + my-profile: "My Profile" + settings: "Settings" + admin: + title: "Admin" + upload-session: "Upload Session" + create-season: "Create Season" + import-tracks: "Import Tracks" + import-cars: "Import Cars" + new-team: "New Team" + new-tournament: "New Tournament" + import-users: "Import Users" + log-out: "Log out" + login: "Login" + register: "Register" + #Sub-navigation + sub-nav: + seasons: "Seasons" + rankings: "Rankings" + ranking: "Ranking" + ranking-n: "Ranking %{n}" + session-n: "Session %{n}" + tracks: "Tracks" + cars: "Cars" + #Footer + footer: + policies: + title: "Políticas" + rules: "Reglas" + terms: "Términos de servicio" + privacy: "Política de Privacidad" + organization: + title: "Organización" + staff: "Staff" + logs: "Registros de desarrollo" + bugs: "Reportar un bug" + sponsor: "Patrocinar" + trademark: + title: "Marca comercial" + assets: "Recursos" + emoji: "Emoticono" + social: + title: "Encuéntranos" + discord: "Discord" + github: "GitHub" + crowdin: "Crowdin" + #Landing page, Splash, About + application: + splash: + description1: "The Website for the American community of Re-Volt, 1999" + description2: "Download the game and meet players from all over the Americas!" + download-button: "Downloads »" + index: + community: + title: "Community" + description: "We are an amazing Re-Volt community mainly made up of South American players, but you will also find people from all over the world playing online with us." + play-button: "Play »" + competition: + title: "Competition" + description: "In Re-Volt America we race in a seasonal format. Throughout each season, you will be able to race online daily and score points for every race you participate in!" + seasons-button: "Seasons »" + reliability: + title: "Reliabilty" + description: "Re-Volt America has been designed with sustainability and scalability in mind. Most of the features you see here you will not find in any other Re-Volt community." + about-us-button: "About Us »" + recent: + title: "Recent Sessions" + races: "%{category} Races" + team-races: "%{category} Team Races" + hosted-by: "Hosted by %{host}" + all-sessions-button: "All Sessions" + no-sessions: "N" + about: + title: "About Re-Volt America" + description: "The largest Re-Volt community you'll find in the American Continent. Join our racing sessions, compete in our seasons and meet other Re-Volt players from around the world!" + #Play page + play: + subheader: "Jugamos diariamente a las 00:00 UTC" + subheader2_html: "Las salas se publican en #lobby-rva" + #Downloads page + downloads: + title: "Downloads" + video: "Pending video..." + faq: + title: "If you are new to the community, we strongly recommend that you read the our Frequently Asked Questions page" + button: "Take me there!" + legacy-downloads: "Legacy Downloads" + #Rules page + rules: + title: "Reglas" + sections: + a: + title: "A. Compostura general" + 1: "Mantén siempre un ambiente tranquilo con otros usuarios." + 2_html: "No hagas Spam. Puedes autopromoverte a tí mismo y a otros dentro de ciertos límites, sólo no cruces la línea y estarás bien." + 3_html: "Doxear a otros usuarios está prohibido. Si participas o promueves estos actos RVA TOMARÁ acciones." + 4: "Sigue siempre las directrices dadas por los miembros del personal." + 5: "Usa tu sentido común. No es tan difícil, ¡en serio!" + b: + title: "B. Crear un nombre de usuario" + 1: + title: "Para jugar a Re-Volt debes elegir un nombre de usuario. Para ser indexado en las clasificaciones oficiales de RVA los jugadores deben elegir un nombre de usuario el cual se ajuste a las siguientes directrices:" + bullet1: "Tu nombre de usuario debe tener de 1 a 16 caracteres." + bullet2: "Tu nombre de usuario puede contener cualquier carácter de la A a la Z (mayúscula y minúscula), números, guiones bajos y espacios en blanco." + bullet3: "¡Tu nombre de usuario debe ser único! Si no estás seguro, puedes preguntarle al personal para ver si el nombre de usuario que quieres ya está siendo usado por otro jugador." + c: + title: "C. Carreras y puntuación" + 1: "Puedes utilizar coches de la clase en curso e inferiores. (novato, amateur, avanzado, etc.)" + 2: + title: "Usar un coche por debajo de la clase en curso otorgará las siguientes bonificaciones de puntaje:" + bullet1_html: "Una clase por debajo: 25%." + bullet2_html: "Dos clases por debajo: 50%." + bullet3_html: "Tres clases por debajo: 75%." + bullet4_html: "Cuatro clases por debajo: 100%." + bullet5_html: "Cinco clases por debajo: 125%." + 3_html: "NO utilices coches de una clase superior a la que esté en curso. Hacerlo invalidará los puntos que obtengas jugando con él." + 4_html: "NO dispares o molestes a corredores en posiciones no inmediatas a la tuya (jugadores que te saquen una vuelta)." + 5_html: "NO pidas RE (1) a menos que llegues tarde a una carrera o experimentes dificultades técnicas. Otras razones son consideradas inválidas." + 6: "Evita cambiar tu nombre a mitad de las sesiones, ya que esto puede dificultar el calcular las puntuaciones finales." + 7: + title: "Puedes escribir RE durante los primeros 40 segundos de una carrera sólo en caso de tratarse de un factor no relacionado con el juego (llegas tarde, problemas de conexión)." + bullet1: "Solo 1 RE por pista será garantizado. Si alguien ha pedido RE antes de que tú lo hicieses, entonces el anfitrión no reiniciará de nuevo." + 8_html: "The accumulated multiplier of any car will never exceed 4.0." + d: + title: "D. Servidor de Discord" + 1_html: "Debes seguir y atenerte a los Términos de servicio de Discord. El no hacerlo hará que te expulsemos de Re-Volt America." + 2: "Mantente en el tema de los canales." + 3: "No acoses a otros usuarios." + 4_html: "Cualquier archivo multimedia malicioso que cause que el cliente de Discord de otros usuarios crashee o contenido muy explícito se eliminará y probablemente te infraccionaremos por publicarlo." + e: + title: "E. Infracciones" + 1_html: "El no seguir el reglamento de Carreras y puntuación puede hacer que quedes speced (2) en nuestras salas, o expulsado si insistes en romper nuestras reglas." + 2_html: "Los usuarios podrán ser expulsados de nuestro servidor de Discord por romper las reglas. Si la violación al reglamento es grave, podrás ser baneado en su lugar." + 3: "Evadir bans de Discord conseguirá que te volvamos a banear eventualmente. Los averiguaremos." + 4: "Todas las infracciones están sujetas a la discreción de nuestro personal" + precisions: + 1: + term: "(1) RE:" + precision: "Solicitar al anfitrión de una sala que reinicie la carrera en curso." + 2: + term: "(2) Speced:" + precision: "Cuando el anfitrión de una sala fuerza a un corredor a espectadores. En este contexto, como una forma de infracción." + #Privacy & Terms pages + privacy: + title_html: " Privacy Policy" + terms: + title_html: " Terms of Service" + #Staff page + staff: + title: "Staff" + description: "The people who help run Re-Volt America!" + groups: + administrator: "Administrators" + developer: "Developers" + moderator: "Moderators" + organizer: "Organizers" + #Points page + points: + title: "RVA Points System" + introduction: + title: "Introduction" + description: "In Re-Volt America, players score points for each race they get to finish. The amount of points each player scores will depend on two things: their final position in the race, and the amount of racers in that race. If a race has 10 or more racers in it, then it's considered a to be a \"big\" race." + normal-race: "Normal Race Scoring" + big-race: "Big Race Scoring" + car-ratings: + title: "Car Ratings" + description: "In Re-Volt America, cars are assigned a 'multiplier' depending on their top speed, acceleration, weight, and other characteristics that may make them better or worse for online racing. We used this multiplayer to reward racers for playing hard cars, and for regulating really good or overpowered cars as well. Here is how the formula is applied each race with different car multipliers:" + desktop-parser: + title: "RVA Desktop Points Parser" + description: "The RVA Desktop Points Parser is a Desktop application designed to calculate a results table in the RVA format from a given RVGL session log. Through this portable tool, we allow anyone to parse session results using our system locally if they so desire. Here is an example of what you'll get by parsing one of our sessions yourself:" + downloads: + title: "Download RVA Points" + #RVA strings + rva: + tracks: + all-tracks: "All Tracks" + season: "Season" + title: "The RVA Tracks" + format: + title: "Format" + short-name: + title: "Short Name" + difficulty: + title: "Difficulty" + easy: "Easy" + medium: "Medium" + hard: "Hard" + extreme: "Extreme" + length: + title: "Length" + short: "Short" + medium: "Medium" + long: "Long" + extralong: "Extra Long" + meters: "%{length} meters" + stock: + title: "Stock?" + true: "Yes" + false: "No" + featured: + description: "This track has been featured in RVA %{season}" + rotation: + title: "Re-Volt America Rotation" + collection: + title: "Re-Volt America Track Collection" + cars: + title: "The RVA Cars" + ratings-link: "Car Ratings" + features: + speed: "Speed" + acceleration: "Acceleration" + weight: "Weight" + multiplier: "Multiplier" + category: "Category" + stock: "Stock" + stock-tooltip: + tooltip: "Original Re-Volt Content" + featured-session: "This car has been featured in RVA %{season}" + class-selector: + title: "Classes" + #Assets page + assets: + title: "LOGOS Y USO" + subtitle_html: "¡Una colección de nuestros principales recursos, realizados por la talentosa Hylia, los cuales puedes descargar para integrar con RVA o enlazar hacia nuestra web!" + allowed: + title: "Uso permitido" + 1: "Usar nuestro logo para enlazar a nuestro sitio web" + 2: "Usar nuestro logo para anunciar que te integras con RVA" + 3: "Usar nuestro logo en blogs o artículos acerca de RVA" + prohibited: + title: "Uso prohibido" + 1: "Usar nuestro logo como el ícono de tu aplicación" + 2: "Crear una versión modificada de cualquiera de nuestros logos" + 3: "Integrar cualquiera de nuestros logos en tu logo" + 4: "Usar nuestro arte sin nuestro consentimiento" + 5: "Cambiar los colores, dimensiones o añadir tu propio texto o imágenes" + contact: + title: "Por favor, contáctanos" + 1: "Si quieres usar arte no incluído en este repositorio" + 2: "Si quieres usar estas imágenes en un video o medio de comunicación" + naming: + title: "Nombrar proyectos y productos" + 1: "Por favor, evita nombrar tus proyectos de tal manera que impliquen el espaldo de Re-Volt America. Esto también aplica a nombres de dominio." + attribution: + title: "Atribución" + 1: "Otros recursos como imágenes de clasificación de coches, imágenes de pistas, emoticonos, etc... son hechos por miembros de nuestra comunidad y todos los derechos pertenecen a sus respectivos autores" + 2_html: "These guidelines were heavily based on GitHub's Logos and Usage Guidelines." + #Seasons page + seasons: + title: "The RVA Seasons" + explanation: + title: "What are RVA Seasons?" + description: "In RVA, we follow a seasonal format for online racing. Every Season consists of 6 Rankings, and each ranking consists of 28 Sessions, 18 of which are for Single races and the other 10 for Team races. Players score points for every race." + buttons: + current-season: "Current Season" + learn-more: "Learn More" + bottom: + title: "All Seasons" + present: "Present" + #Rankings page + rankings: + title: "Ranking %{number}" + title2: "Leaderboards" + small: "%{count} sessions played" + table: + country: "Country" + racer: "Racer" + pp: "PP" + pa: "PA" + mp: "MP" + po: "PO" + cc: "CC" + fj: "FJ" + fp: "FP" + sp: "SP" + sessions: + title: "Sessions" + no-sessions: "No sessions to display :(" + results: + no-team-results: "No team results to disiplay" + nav: + singles: "Singles" + teams: "Teams" + admin: + season: + edit: + button: "Edit Season" + delete: + button: "Delete season" + warning: + title: "Warning!" + body: "Deleting a Season will PERMANENTLY delete all its rankings, sessions, cars and tracks! This action is irreversible. " + close: "Close" + delete-season: "Delete Season" + #Devise strings + confirmation: + welcome: "Welcome %{email}" + description: "You can confirm your account email through the link below:" + email: + changed: + greeting: "Hello %{email}!" + changing: "We're contacting you to notify you that your email is being changed to %{email}." + changed: "We're contacting you to notify you that your email has been changed to %{email}" + password: + change: + greeting: "Hello %{email}!" + description: "We're contacting you to notify you that your password has been changed." + reset: + greeting: "Hello %{email}!" + advise: "Someone has requested a link to change your password. You can do this through the link below." + advise2: "If you didn't request this, please ignore this email." + advise3: "Your password won't change until you access the link above and create a new one." + account: + unlock: + greeting: "Hello %{email}!" + advise: "Your account has been locked due to an excessive number of unsuccessful sign in attempts." + instruction: "Click the link below to unlock your account:" + url: "Unlock my account" + registrations: + edit: + title: "Edit User" + email: + title: "Change Email" + new: "New email" + password: + title: "Change Password" + new-length: "New password (%{length} characters minimum)" + new: "New password" + confirm: "Confirm new password" + info: + title: "Change your info" + gender: "Gender" + nationality: + title: "Nationality" + small: "(National flag)" + placeholder: "Select nationality" + location: "Location" + occupation: "Occupation" + interests: "Interests" + public-email: "Public Email" + about: "About %{user}" + about-me: + title: "About me... (You may use html)" + title2: "About %{user}" + nothing: "Nothing here yet..." + placeholder: "Write something interesting..." + current-password: "Current password" + update: "Update" + update-admin: "Update %{user}" + #Development logs + repositories: + title: "Revisions" + small: "Latest git commits in our organization" + new-button: "New" + repository: "Repository" + table: + title: "Repository" + revision: "Revision" + author: "Author" + description: "Description" + when: "When" + #RVA results page + results: + title: "%{category} Races (Session %{number})" + version: "Version: %{version}" + connection: "Connection: %{protocol} (Server)" + mode: "Mode: %{physics}" + pickups: "Pickups: %{pickups}" + teams: "Teams: %{teams}" + download: "Download Session Log" + team: "Team" + admin: + title: "Admin Actions" + edit: + button: "Edit Session" + delete: + button: "Delete Session" + confirmation: + body: "Are you sure?" + container: + tooltips: + session-number: "Session Number" + final-position: "Final Position" + average-position: "Average Position" + obtained-points: "Obtained Points" + race-count: "Race Count" + participation-multiplier: "Participation Multiplier" + official-score: "Official Score" + accumulated-score: "Accumulated Score" + accumulated-points: "Accumulated Points" + sessions-played: "Sessions Played" + tracks: + not-found: "Track not found" + #Teams page + teams: + title: "RVA Teams" + no-teams: "No teams to display" + global-points: + title: "Global Team Points" + team: + leader: "Leader" + members: "Members" + #User profile page + users: + stats: + title: "Stats" + rank: + title: "rank" + tooltip: "Position in current ranking" + race-stats: + title: "Race Stats" + win-rate: "win rate" + sessions: "sessions" + races: "races" + win: "win" + wins: "wins" + podium: "podium" + podiums: "podiums" + session-played: "session played" + sessions-played: "sessions played" + race-played: "race played" + races-played: "races played" + session-history: + title: "Session History" + overall-stats: + title: "Overall Stats" + session-win: "session win" + session-wins: "session wins" + session-podium: "session podium" + session-podiums: "session podiums" + session-winrate: "session win rate" + obtained-point: "obtained point" + obtained-points: "obtained points" + official-score: "official score" + average-position: "average position" + participation: "participation rate" + tabs: + title: "General" + stats: "Stats" + admin: "Admin" + #Tournaments page + tournaments: + title: "Past Tournaments" + new: "New" + #Re-Volt car classes + classes: + rookie: "Rookie" + amateur: "Amateur" + advanced: "Advanced" + semi-pro: "Semi-Pro" + pro: "Pro" + super-pro: "Super-Pro" + clockwork: "Clockwork" + random: "Random" + #Car metrics + car-card: + speed: "Velocidad" + kmh: "km/h" + acc: "Acc" + ms2: "ms²" + weight: "Peso" + kg: "Kg" + multiplier: "Multiplicador" + #Alert message boxes + alerts: + no-permission: "You do not have permission" + #Error pages + error: + 404: + title: "Error 404" + message: "Not Found" + 422: + title: "Error 404" + message: "Illegal Error" + 500: + title: "Error 404" + message: "Internal Server Error" + #Misc strings + misc: + download: "Download" + search: "Search" + and: "&" diff --git a/config/locales/es_ar.yml b/config/locales/es_ar.yml new file mode 100644 index 00000000..4fe2266c --- /dev/null +++ b/config/locales/es_ar.yml @@ -0,0 +1,496 @@ +es_ar: + #Navigation + nav: + play: "Jugar" + tracks: "Pistas" + cars: "Coches" + seasons: "Temporadas" + league: + title: "Liga" + leaderboard: "Tabla de Posiciones" + point-system: "Sistema de Puntos" + teams: "Equipos" + tournaments: "Torneos" + downloads: "Descargas" + user: + my-profile: "My Profile" + settings: "Settings" + admin: + title: "Admin" + upload-session: "Upload Session" + create-season: "Create Season" + import-tracks: "Import Tracks" + import-cars: "Import Cars" + new-team: "New Team" + new-tournament: "New Tournament" + import-users: "Import Users" + log-out: "Log out" + login: "Login" + register: "Register" + #Sub-navigation + sub-nav: + seasons: "Seasons" + rankings: "Rankings" + ranking: "Ranking" + ranking-n: "Ranking %{n}" + session-n: "Session %{n}" + tracks: "Tracks" + cars: "Cars" + #Footer + footer: + policies: + title: "Políticas" + rules: "Reglas" + terms: "Términos de servicio" + privacy: "Política de Privacidad" + organization: + title: "Organización" + staff: "Staff" + logs: "Registros de desarrollo" + bugs: "Reportar un bug" + sponsor: "Patrocinar" + trademark: + title: "Marca comercial" + assets: "Recursos" + emoji: "Emoticono" + social: + title: "Encuéntranos" + discord: "Discord" + github: "GitHub" + crowdin: "Crowdin" + #Landing page, Splash, About + application: + splash: + description1: "The Website for the American community of Re-Volt, 1999" + description2: "Download the game and meet players from all over the Americas!" + download-button: "Downloads »" + index: + community: + title: "Community" + description: "We are an amazing Re-Volt community mainly made up of South American players, but you will also find people from all over the world playing online with us." + play-button: "Play »" + competition: + title: "Competition" + description: "In Re-Volt America we race in a seasonal format. Throughout each season, you will be able to race online daily and score points for every race you participate in!" + seasons-button: "Seasons »" + reliability: + title: "Reliabilty" + description: "Re-Volt America has been designed with sustainability and scalability in mind. Most of the features you see here you will not find in any other Re-Volt community." + about-us-button: "About Us »" + recent: + title: "Recent Sessions" + races: "%{category} Races" + team-races: "%{category} Team Races" + hosted-by: "Hosted by %{host}" + all-sessions-button: "All Sessions" + no-sessions: "N" + about: + title: "About Re-Volt America" + description: "The largest Re-Volt community you'll find in the American Continent. Join our racing sessions, compete in our seasons and meet other Re-Volt players from around the world!" + #Play page + play: + subheader: "Jugamos diariamente a las 00:00 UTC" + subheader2_html: "Las salas se publican en #lobby-rva" + #Downloads page + downloads: + title: "Downloads" + video: "Pending video..." + faq: + title: "If you are new to the community, we strongly recommend that you read the our Frequently Asked Questions page" + button: "Take me there!" + legacy-downloads: "Legacy Downloads" + #Rules page + rules: + title: "Reglas" + sections: + a: + title: "A. Compostura general" + 1: "Mantén siempre un ambiente tranquilo con otros usuarios." + 2_html: "No hagas Spam. Puedes autopromoverte a tí mismo y a otros dentro de ciertos límites, sólo no cruces la línea y estarás bien." + 3_html: "Doxear a otros usuarios está prohibido. Si participas o promueves estos actos RVA TOMARÁ acciones." + 4: "Sigue siempre las directrices dadas por los miembros del personal." + 5: "Usa tu sentido común. No es tan difícil, ¡en serio!" + b: + title: "B. Crear un nombre de usuario" + 1: + title: "Para jugar a Re-Volt debes elegir un nombre de usuario. Para ser indexado en las clasificaciones oficiales de RVA los jugadores deben elegir un nombre de usuario el cual se ajuste a las siguientes directrices:" + bullet1: "Tu nombre de usuario debe tener de 1 a 16 caracteres." + bullet2: "Tu nombre de usuario puede contener cualquier carácter de la A a la Z (mayúscula y minúscula), números, guiones bajos y espacios en blanco." + bullet3: "¡Tu nombre de usuario debe ser único! Si no estás seguro, puedes preguntarle al personal para ver si el nombre de usuario que quieres ya está siendo usado por otro jugador." + c: + title: "C. Carreras y puntuación" + 1: "Puedes utilizar coches de la clase en curso e inferiores. (novato, amateur, avanzado, etc.)" + 2: + title: "Usar un coche por debajo de la clase en curso otorgará las siguientes bonificaciones de puntaje:" + bullet1_html: "Una clase por debajo: 25%." + bullet2_html: "Dos clases por debajo: 50%." + bullet3_html: "Tres clases por debajo: 75%." + bullet4_html: "Cuatro clases por debajo: 100%." + bullet5_html: "Cinco clases por debajo: 125%." + 3_html: "NO utilices coches de una clase superior a la que esté en curso. Hacerlo invalidará los puntos que obtengas jugando con él." + 4_html: "NO dispares o molestes a corredores en posiciones no inmediatas a la tuya (jugadores que te saquen una vuelta)." + 5_html: "NO pidas RE (1) a menos que llegues tarde a una carrera o experimentes dificultades técnicas. Otras razones son consideradas inválidas." + 6: "Evita cambiar tu nombre a mitad de las sesiones, ya que esto puede dificultar el calcular las puntuaciones finales." + 7: + title: "Puedes escribir RE durante los primeros 40 segundos de una carrera sólo en caso de tratarse de un factor no relacionado con el juego (llegas tarde, problemas de conexión)." + bullet1: "Solo 1 RE por pista será garantizado. Si alguien ha pedido RE antes de que tú lo hicieses, entonces el anfitrión no reiniciará de nuevo." + 8_html: "The accumulated multiplier of any car will never exceed 4.0." + d: + title: "D. Servidor de Discord" + 1_html: "Debes seguir y atenerte a los Términos de servicio de Discord. El no hacerlo hará que te expulsemos de Re-Volt America." + 2: "Mantente en el tema de los canales." + 3: "No acoses a otros usuarios." + 4_html: "Cualquier archivo multimedia malicioso que cause que el cliente de Discord de otros usuarios crashee o contenido muy explícito se eliminará y probablemente te infraccionaremos por publicarlo." + e: + title: "E. Infracciones" + 1_html: "El no seguir el reglamento de Carreras y puntuación puede hacer que quedes speced (2) en nuestras salas, o expulsado si insistes en romper nuestras reglas." + 2_html: "Los usuarios podrán ser expulsados de nuestro servidor de Discord por romper las reglas. Si la violación al reglamento es grave, podrás ser baneado en su lugar." + 3: "Evadir bans de Discord conseguirá que te volvamos a banear eventualmente. Los averiguaremos." + 4: "Todas las infracciones están sujetas a la discreción de nuestro personal" + precisions: + 1: + term: "(1) RE:" + precision: "Solicitar al anfitrión de una sala que reinicie la carrera en curso." + 2: + term: "(2) Speced:" + precision: "Cuando el anfitrión de una sala fuerza a un corredor a espectadores. En este contexto, como una forma de infracción." + #Privacy & Terms pages + privacy: + title_html: " Privacy Policy" + terms: + title_html: " Terms of Service" + #Staff page + staff: + title: "Staff" + description: "The people who help run Re-Volt America!" + groups: + administrator: "Administrators" + developer: "Developers" + moderator: "Moderators" + organizer: "Organizers" + #Points page + points: + title: "RVA Points System" + introduction: + title: "Introduction" + description: "In Re-Volt America, players score points for each race they get to finish. The amount of points each player scores will depend on two things: their final position in the race, and the amount of racers in that race. If a race has 10 or more racers in it, then it's considered a to be a \"big\" race." + normal-race: "Normal Race Scoring" + big-race: "Big Race Scoring" + car-ratings: + title: "Car Ratings" + description: "In Re-Volt America, cars are assigned a 'multiplier' depending on their top speed, acceleration, weight, and other characteristics that may make them better or worse for online racing. We used this multiplayer to reward racers for playing hard cars, and for regulating really good or overpowered cars as well. Here is how the formula is applied each race with different car multipliers:" + desktop-parser: + title: "RVA Desktop Points Parser" + description: "The RVA Desktop Points Parser is a Desktop application designed to calculate a results table in the RVA format from a given RVGL session log. Through this portable tool, we allow anyone to parse session results using our system locally if they so desire. Here is an example of what you'll get by parsing one of our sessions yourself:" + downloads: + title: "Download RVA Points" + #RVA strings + rva: + tracks: + all-tracks: "All Tracks" + season: "Season" + title: "The RVA Tracks" + format: + title: "Format" + short-name: + title: "Short Name" + difficulty: + title: "Difficulty" + easy: "Easy" + medium: "Medium" + hard: "Hard" + extreme: "Extreme" + length: + title: "Length" + short: "Short" + medium: "Medium" + long: "Long" + extralong: "Extra Long" + meters: "%{length} meters" + stock: + title: "Stock?" + true: "Yes" + false: "No" + featured: + description: "This track has been featured in RVA %{season}" + rotation: + title: "Re-Volt America Rotation" + collection: + title: "Re-Volt America Track Collection" + cars: + title: "The RVA Cars" + ratings-link: "Car Ratings" + features: + speed: "Speed" + acceleration: "Acceleration" + weight: "Weight" + multiplier: "Multiplier" + category: "Category" + stock: "Stock" + stock-tooltip: + tooltip: "Original Re-Volt Content" + featured-session: "This car has been featured in RVA %{season}" + class-selector: + title: "Classes" + #Assets page + assets: + title: "LOGOS Y USO" + subtitle_html: "¡Una colección de nuestros principales recursos, realizados por la talentosa Hylia, los cuales puedes descargar para integrar con RVA o enlazar hacia nuestra web!" + allowed: + title: "Uso permitido" + 1: "Usar nuestro logo para enlazar a nuestro sitio web" + 2: "Usar nuestro logo para anunciar que te integras con RVA" + 3: "Usar nuestro logo en blogs o artículos acerca de RVA" + prohibited: + title: "Uso prohibido" + 1: "Usar nuestro logo como el ícono de tu aplicación" + 2: "Crear una versión modificada de cualquiera de nuestros logos" + 3: "Integrar cualquiera de nuestros logos en tu logo" + 4: "Usar nuestro arte sin nuestro consentimiento" + 5: "Cambiar los colores, dimensiones o añadir tu propio texto o imágenes" + contact: + title: "Por favor, contáctanos" + 1: "Si quieres usar arte no incluído en este repositorio" + 2: "Si quieres usar estas imágenes en un video o medio de comunicación" + naming: + title: "Nombrar proyectos y productos" + 1: "Por favor, evita nombrar tus proyectos de tal manera que impliquen el espaldo de Re-Volt America. Esto también aplica a nombres de dominio." + attribution: + title: "Atribución" + 1: "Otros recursos como imágenes de clasificación de coches, imágenes de pistas, emoticonos, etc... son hechos por miembros de nuestra comunidad y todos los derechos pertenecen a sus respectivos autores" + 2_html: "These guidelines were heavily based on GitHub's Logos and Usage Guidelines." + #Seasons page + seasons: + title: "The RVA Seasons" + explanation: + title: "What are RVA Seasons?" + description: "In RVA, we follow a seasonal format for online racing. Every Season consists of 6 Rankings, and each ranking consists of 28 Sessions, 18 of which are for Single races and the other 10 for Team races. Players score points for every race." + buttons: + current-season: "Current Season" + learn-more: "Learn More" + bottom: + title: "All Seasons" + present: "Present" + #Rankings page + rankings: + title: "Ranking %{number}" + title2: "Leaderboards" + small: "%{count} sessions played" + table: + country: "Country" + racer: "Racer" + pp: "PP" + pa: "PA" + mp: "MP" + po: "PO" + cc: "CC" + fj: "FJ" + fp: "FP" + sp: "SP" + sessions: + title: "Sessions" + no-sessions: "No sessions to display :(" + results: + no-team-results: "No team results to disiplay" + nav: + singles: "Singles" + teams: "Teams" + admin: + season: + edit: + button: "Edit Season" + delete: + button: "Delete season" + warning: + title: "Warning!" + body: "Deleting a Season will PERMANENTLY delete all its rankings, sessions, cars and tracks! This action is irreversible. " + close: "Close" + delete-season: "Delete Season" + #Devise strings + confirmation: + welcome: "Welcome %{email}" + description: "You can confirm your account email through the link below:" + email: + changed: + greeting: "Hello %{email}!" + changing: "We're contacting you to notify you that your email is being changed to %{email}." + changed: "We're contacting you to notify you that your email has been changed to %{email}" + password: + change: + greeting: "Hello %{email}!" + description: "We're contacting you to notify you that your password has been changed." + reset: + greeting: "Hello %{email}!" + advise: "Someone has requested a link to change your password. You can do this through the link below." + advise2: "If you didn't request this, please ignore this email." + advise3: "Your password won't change until you access the link above and create a new one." + account: + unlock: + greeting: "Hello %{email}!" + advise: "Your account has been locked due to an excessive number of unsuccessful sign in attempts." + instruction: "Click the link below to unlock your account:" + url: "Unlock my account" + registrations: + edit: + title: "Edit User" + email: + title: "Change Email" + new: "New email" + password: + title: "Change Password" + new-length: "New password (%{length} characters minimum)" + new: "New password" + confirm: "Confirm new password" + info: + title: "Change your info" + gender: "Gender" + nationality: + title: "Nationality" + small: "(National flag)" + placeholder: "Select nationality" + location: "Location" + occupation: "Occupation" + interests: "Interests" + public-email: "Public Email" + about: "About %{user}" + about-me: + title: "About me... (You may use html)" + title2: "About %{user}" + nothing: "Nothing here yet..." + placeholder: "Write something interesting..." + current-password: "Current password" + update: "Update" + update-admin: "Update %{user}" + #Development logs + repositories: + title: "Revisions" + small: "Latest git commits in our organization" + new-button: "New" + repository: "Repository" + table: + title: "Repository" + revision: "Revision" + author: "Author" + description: "Description" + when: "When" + #RVA results page + results: + title: "%{category} Races (Session %{number})" + version: "Version: %{version}" + connection: "Connection: %{protocol} (Server)" + mode: "Mode: %{physics}" + pickups: "Pickups: %{pickups}" + teams: "Teams: %{teams}" + download: "Download Session Log" + team: "Team" + admin: + title: "Admin Actions" + edit: + button: "Edit Session" + delete: + button: "Delete Session" + confirmation: + body: "Are you sure?" + container: + tooltips: + session-number: "Session Number" + final-position: "Final Position" + average-position: "Average Position" + obtained-points: "Obtained Points" + race-count: "Race Count" + participation-multiplier: "Participation Multiplier" + official-score: "Official Score" + accumulated-score: "Accumulated Score" + accumulated-points: "Accumulated Points" + sessions-played: "Sessions Played" + tracks: + not-found: "Track not found" + #Teams page + teams: + title: "RVA Teams" + no-teams: "No teams to display" + global-points: + title: "Global Team Points" + team: + leader: "Leader" + members: "Members" + #User profile page + users: + stats: + title: "Stats" + rank: + title: "rank" + tooltip: "Position in current ranking" + race-stats: + title: "Race Stats" + win-rate: "win rate" + sessions: "sessions" + races: "races" + win: "win" + wins: "wins" + podium: "podium" + podiums: "podiums" + session-played: "session played" + sessions-played: "sessions played" + race-played: "race played" + races-played: "races played" + session-history: + title: "Session History" + overall-stats: + title: "Overall Stats" + session-win: "session win" + session-wins: "session wins" + session-podium: "session podium" + session-podiums: "session podiums" + session-winrate: "session win rate" + obtained-point: "obtained point" + obtained-points: "obtained points" + official-score: "official score" + average-position: "average position" + participation: "participation rate" + tabs: + title: "General" + stats: "Stats" + admin: "Admin" + #Tournaments page + tournaments: + title: "Past Tournaments" + new: "New" + #Re-Volt car classes + classes: + rookie: "Rookie" + amateur: "Amateur" + advanced: "Advanced" + semi-pro: "Semi-Pro" + pro: "Pro" + super-pro: "Super-Pro" + clockwork: "Clockwork" + random: "Random" + #Car metrics + car-card: + speed: "Velocidad" + kmh: "km/h" + acc: "Acc" + ms2: "ms²" + weight: "Peso" + kg: "Kg" + multiplier: "Multiplicador" + #Alert message boxes + alerts: + no-permission: "You do not have permission" + #Error pages + error: + 404: + title: "Error 404" + message: "Not Found" + 422: + title: "Error 404" + message: "Illegal Error" + 500: + title: "Error 404" + message: "Internal Server Error" + #Misc strings + misc: + download: "Download" + search: "Search" + and: "&" diff --git a/config/locales/es_bo.yml b/config/locales/es_bo.yml new file mode 100644 index 00000000..5be10981 --- /dev/null +++ b/config/locales/es_bo.yml @@ -0,0 +1,496 @@ +es_bo: + #Navigation + nav: + play: "Jugar" + tracks: "Pistas" + cars: "Coches" + seasons: "Temporadas" + league: + title: "Liga" + leaderboard: "Tabla de Posiciones" + point-system: "Sistema de Puntos" + teams: "Equipos" + tournaments: "Torneos" + downloads: "Descargas" + user: + my-profile: "My Profile" + settings: "Settings" + admin: + title: "Admin" + upload-session: "Upload Session" + create-season: "Create Season" + import-tracks: "Import Tracks" + import-cars: "Import Cars" + new-team: "New Team" + new-tournament: "New Tournament" + import-users: "Import Users" + log-out: "Log out" + login: "Login" + register: "Register" + #Sub-navigation + sub-nav: + seasons: "Seasons" + rankings: "Rankings" + ranking: "Ranking" + ranking-n: "Ranking %{n}" + session-n: "Session %{n}" + tracks: "Tracks" + cars: "Cars" + #Footer + footer: + policies: + title: "Políticas" + rules: "Reglas" + terms: "Términos de servicio" + privacy: "Política de Privacidad" + organization: + title: "Organización" + staff: "Staff" + logs: "Registros de desarrollo" + bugs: "Reportar un bug" + sponsor: "Patrocinar" + trademark: + title: "Marca comercial" + assets: "Recursos" + emoji: "Emoticono" + social: + title: "Encuéntranos" + discord: "Discord" + github: "GitHub" + crowdin: "Crowdin" + #Landing page, Splash, About + application: + splash: + description1: "The Website for the American community of Re-Volt, 1999" + description2: "Download the game and meet players from all over the Americas!" + download-button: "Downloads »" + index: + community: + title: "Community" + description: "We are an amazing Re-Volt community mainly made up of South American players, but you will also find people from all over the world playing online with us." + play-button: "Play »" + competition: + title: "Competition" + description: "In Re-Volt America we race in a seasonal format. Throughout each season, you will be able to race online daily and score points for every race you participate in!" + seasons-button: "Seasons »" + reliability: + title: "Reliabilty" + description: "Re-Volt America has been designed with sustainability and scalability in mind. Most of the features you see here you will not find in any other Re-Volt community." + about-us-button: "About Us »" + recent: + title: "Recent Sessions" + races: "%{category} Races" + team-races: "%{category} Team Races" + hosted-by: "Hosted by %{host}" + all-sessions-button: "All Sessions" + no-sessions: "N" + about: + title: "About Re-Volt America" + description: "The largest Re-Volt community you'll find in the American Continent. Join our racing sessions, compete in our seasons and meet other Re-Volt players from around the world!" + #Play page + play: + subheader: "Jugamos diariamente a las 00:00 UTC" + subheader2_html: "Las salas se publican en #lobby-rva" + #Downloads page + downloads: + title: "Downloads" + video: "Pending video..." + faq: + title: "If you are new to the community, we strongly recommend that you read the our Frequently Asked Questions page" + button: "Take me there!" + legacy-downloads: "Legacy Downloads" + #Rules page + rules: + title: "Reglas" + sections: + a: + title: "A. Compostura general" + 1: "Mantén siempre un ambiente tranquilo con otros usuarios." + 2_html: "No hagas Spam. Puedes autopromoverte a tí mismo y a otros dentro de ciertos límites, sólo no cruces la línea y estarás bien." + 3_html: "Doxear a otros usuarios está prohibido. Si participas o promueves estos actos RVA TOMARÁ acciones." + 4: "Sigue siempre las directrices dadas por los miembros del personal." + 5: "Usa tu sentido común. No es tan difícil, ¡en serio!" + b: + title: "B. Crear un nombre de usuario" + 1: + title: "Para jugar a Re-Volt debes elegir un nombre de usuario. Para ser indexado en las clasificaciones oficiales de RVA los jugadores deben elegir un nombre de usuario el cual se ajuste a las siguientes directrices:" + bullet1: "Tu nombre de usuario debe tener de 1 a 16 caracteres." + bullet2: "Tu nombre de usuario puede contener cualquier carácter de la A a la Z (mayúscula y minúscula), números, guiones bajos y espacios en blanco." + bullet3: "¡Tu nombre de usuario debe ser único! Si no estás seguro, puedes preguntarle al personal para ver si el nombre de usuario que quieres ya está siendo usado por otro jugador." + c: + title: "C. Carreras y puntuación" + 1: "Puedes utilizar coches de la clase en curso e inferiores. (novato, amateur, avanzado, etc.)" + 2: + title: "Usar un coche por debajo de la clase en curso otorgará las siguientes bonificaciones de puntaje:" + bullet1_html: "Una clase por debajo: 25%." + bullet2_html: "Dos clases por debajo: 50%." + bullet3_html: "Tres clases por debajo: 75%." + bullet4_html: "Cuatro clases por debajo: 100%." + bullet5_html: "Cinco clases por debajo: 125%." + 3_html: "NO utilices coches de una clase superior a la que esté en curso. Hacerlo invalidará los puntos que obtengas jugando con él." + 4_html: "NO dispares o molestes a corredores en posiciones no inmediatas a la tuya (jugadores que te saquen una vuelta)." + 5_html: "NO pidas RE (1) a menos que llegues tarde a una carrera o experimentes dificultades técnicas. Otras razones son consideradas inválidas." + 6: "Evita cambiar tu nombre a mitad de las sesiones, ya que esto puede dificultar el calcular las puntuaciones finales." + 7: + title: "Puedes escribir RE durante los primeros 40 segundos de una carrera sólo en caso de tratarse de un factor no relacionado con el juego (llegas tarde, problemas de conexión)." + bullet1: "Solo 1 RE por pista será garantizado. Si alguien ha pedido RE antes de que tú lo hicieses, entonces el anfitrión no reiniciará de nuevo." + 8_html: "The accumulated multiplier of any car will never exceed 4.0." + d: + title: "D. Servidor de Discord" + 1_html: "Debes seguir y atenerte a los Términos de servicio de Discord. El no hacerlo hará que te expulsemos de Re-Volt America." + 2: "Mantente en el tema de los canales." + 3: "No acoses a otros usuarios." + 4_html: "Cualquier archivo multimedia malicioso que cause que el cliente de Discord de otros usuarios crashee o contenido muy explícito se eliminará y probablemente te infraccionaremos por publicarlo." + e: + title: "E. Infracciones" + 1_html: "El no seguir el reglamento de Carreras y puntuación puede hacer que quedes speced (2) en nuestras salas, o expulsado si insistes en romper nuestras reglas." + 2_html: "Los usuarios podrán ser expulsados de nuestro servidor de Discord por romper las reglas. Si la violación al reglamento es grave, podrás ser baneado en su lugar." + 3: "Evadir bans de Discord conseguirá que te volvamos a banear eventualmente. Los averiguaremos." + 4: "Todas las infracciones están sujetas a la discreción de nuestro personal" + precisions: + 1: + term: "(1) RE:" + precision: "Solicitar al anfitrión de una sala que reinicie la carrera en curso." + 2: + term: "(2) Speced:" + precision: "Cuando el anfitrión de una sala fuerza a un corredor a espectadores. En este contexto, como una forma de infracción." + #Privacy & Terms pages + privacy: + title_html: " Privacy Policy" + terms: + title_html: " Terms of Service" + #Staff page + staff: + title: "Staff" + description: "The people who help run Re-Volt America!" + groups: + administrator: "Administrators" + developer: "Developers" + moderator: "Moderators" + organizer: "Organizers" + #Points page + points: + title: "RVA Points System" + introduction: + title: "Introduction" + description: "In Re-Volt America, players score points for each race they get to finish. The amount of points each player scores will depend on two things: their final position in the race, and the amount of racers in that race. If a race has 10 or more racers in it, then it's considered a to be a \"big\" race." + normal-race: "Normal Race Scoring" + big-race: "Big Race Scoring" + car-ratings: + title: "Car Ratings" + description: "In Re-Volt America, cars are assigned a 'multiplier' depending on their top speed, acceleration, weight, and other characteristics that may make them better or worse for online racing. We used this multiplayer to reward racers for playing hard cars, and for regulating really good or overpowered cars as well. Here is how the formula is applied each race with different car multipliers:" + desktop-parser: + title: "RVA Desktop Points Parser" + description: "The RVA Desktop Points Parser is a Desktop application designed to calculate a results table in the RVA format from a given RVGL session log. Through this portable tool, we allow anyone to parse session results using our system locally if they so desire. Here is an example of what you'll get by parsing one of our sessions yourself:" + downloads: + title: "Download RVA Points" + #RVA strings + rva: + tracks: + all-tracks: "All Tracks" + season: "Season" + title: "The RVA Tracks" + format: + title: "Format" + short-name: + title: "Short Name" + difficulty: + title: "Difficulty" + easy: "Easy" + medium: "Medium" + hard: "Hard" + extreme: "Extreme" + length: + title: "Length" + short: "Short" + medium: "Medium" + long: "Long" + extralong: "Extra Long" + meters: "%{length} meters" + stock: + title: "Stock?" + true: "Yes" + false: "No" + featured: + description: "This track has been featured in RVA %{season}" + rotation: + title: "Re-Volt America Rotation" + collection: + title: "Re-Volt America Track Collection" + cars: + title: "The RVA Cars" + ratings-link: "Car Ratings" + features: + speed: "Speed" + acceleration: "Acceleration" + weight: "Weight" + multiplier: "Multiplier" + category: "Category" + stock: "Stock" + stock-tooltip: + tooltip: "Original Re-Volt Content" + featured-session: "This car has been featured in RVA %{season}" + class-selector: + title: "Classes" + #Assets page + assets: + title: "LOGOS Y USO" + subtitle_html: "¡Una colección de nuestros principales recursos, realizados por la talentosa Hylia, los cuales puedes descargar para integrar con RVA o enlazar hacia nuestra web!" + allowed: + title: "Uso permitido" + 1: "Usar nuestro logo para enlazar a nuestro sitio web" + 2: "Usar nuestro logo para anunciar que te integras con RVA" + 3: "Usar nuestro logo en blogs o artículos acerca de RVA" + prohibited: + title: "Uso prohibido" + 1: "Usar nuestro logo como el ícono de tu aplicación" + 2: "Crear una versión modificada de cualquiera de nuestros logos" + 3: "Integrar cualquiera de nuestros logos en tu logo" + 4: "Usar nuestro arte sin nuestro consentimiento" + 5: "Cambiar los colores, dimensiones o añadir tu propio texto o imágenes" + contact: + title: "Por favor, contáctanos" + 1: "Si quieres usar arte no incluído en este repositorio" + 2: "Si quieres usar estas imágenes en un video o medio de comunicación" + naming: + title: "Nombrar proyectos y productos" + 1: "Por favor, evita nombrar tus proyectos de tal manera que impliquen el espaldo de Re-Volt America. Esto también aplica a nombres de dominio." + attribution: + title: "Atribución" + 1: "Otros recursos como imágenes de clasificación de coches, imágenes de pistas, emoticonos, etc... son hechos por miembros de nuestra comunidad y todos los derechos pertenecen a sus respectivos autores" + 2_html: "These guidelines were heavily based on GitHub's Logos and Usage Guidelines." + #Seasons page + seasons: + title: "The RVA Seasons" + explanation: + title: "What are RVA Seasons?" + description: "In RVA, we follow a seasonal format for online racing. Every Season consists of 6 Rankings, and each ranking consists of 28 Sessions, 18 of which are for Single races and the other 10 for Team races. Players score points for every race." + buttons: + current-season: "Current Season" + learn-more: "Learn More" + bottom: + title: "All Seasons" + present: "Present" + #Rankings page + rankings: + title: "Ranking %{number}" + title2: "Leaderboards" + small: "%{count} sessions played" + table: + country: "Country" + racer: "Racer" + pp: "PP" + pa: "PA" + mp: "MP" + po: "PO" + cc: "CC" + fj: "FJ" + fp: "FP" + sp: "SP" + sessions: + title: "Sessions" + no-sessions: "No sessions to display :(" + results: + no-team-results: "No team results to disiplay" + nav: + singles: "Singles" + teams: "Teams" + admin: + season: + edit: + button: "Edit Season" + delete: + button: "Delete season" + warning: + title: "Warning!" + body: "Deleting a Season will PERMANENTLY delete all its rankings, sessions, cars and tracks! This action is irreversible. " + close: "Close" + delete-season: "Delete Season" + #Devise strings + confirmation: + welcome: "Welcome %{email}" + description: "You can confirm your account email through the link below:" + email: + changed: + greeting: "Hello %{email}!" + changing: "We're contacting you to notify you that your email is being changed to %{email}." + changed: "We're contacting you to notify you that your email has been changed to %{email}" + password: + change: + greeting: "Hello %{email}!" + description: "We're contacting you to notify you that your password has been changed." + reset: + greeting: "Hello %{email}!" + advise: "Someone has requested a link to change your password. You can do this through the link below." + advise2: "If you didn't request this, please ignore this email." + advise3: "Your password won't change until you access the link above and create a new one." + account: + unlock: + greeting: "Hello %{email}!" + advise: "Your account has been locked due to an excessive number of unsuccessful sign in attempts." + instruction: "Click the link below to unlock your account:" + url: "Unlock my account" + registrations: + edit: + title: "Edit User" + email: + title: "Change Email" + new: "New email" + password: + title: "Change Password" + new-length: "New password (%{length} characters minimum)" + new: "New password" + confirm: "Confirm new password" + info: + title: "Change your info" + gender: "Gender" + nationality: + title: "Nationality" + small: "(National flag)" + placeholder: "Select nationality" + location: "Location" + occupation: "Occupation" + interests: "Interests" + public-email: "Public Email" + about: "About %{user}" + about-me: + title: "About me... (You may use html)" + title2: "About %{user}" + nothing: "Nothing here yet..." + placeholder: "Write something interesting..." + current-password: "Current password" + update: "Update" + update-admin: "Update %{user}" + #Development logs + repositories: + title: "Revisions" + small: "Latest git commits in our organization" + new-button: "New" + repository: "Repository" + table: + title: "Repository" + revision: "Revision" + author: "Author" + description: "Description" + when: "When" + #RVA results page + results: + title: "%{category} Races (Session %{number})" + version: "Version: %{version}" + connection: "Connection: %{protocol} (Server)" + mode: "Mode: %{physics}" + pickups: "Pickups: %{pickups}" + teams: "Teams: %{teams}" + download: "Download Session Log" + team: "Team" + admin: + title: "Admin Actions" + edit: + button: "Edit Session" + delete: + button: "Delete Session" + confirmation: + body: "Are you sure?" + container: + tooltips: + session-number: "Session Number" + final-position: "Final Position" + average-position: "Average Position" + obtained-points: "Obtained Points" + race-count: "Race Count" + participation-multiplier: "Participation Multiplier" + official-score: "Official Score" + accumulated-score: "Accumulated Score" + accumulated-points: "Accumulated Points" + sessions-played: "Sessions Played" + tracks: + not-found: "Track not found" + #Teams page + teams: + title: "RVA Teams" + no-teams: "No teams to display" + global-points: + title: "Global Team Points" + team: + leader: "Leader" + members: "Members" + #User profile page + users: + stats: + title: "Stats" + rank: + title: "rank" + tooltip: "Position in current ranking" + race-stats: + title: "Race Stats" + win-rate: "win rate" + sessions: "sessions" + races: "races" + win: "win" + wins: "wins" + podium: "podium" + podiums: "podiums" + session-played: "session played" + sessions-played: "sessions played" + race-played: "race played" + races-played: "races played" + session-history: + title: "Session History" + overall-stats: + title: "Overall Stats" + session-win: "session win" + session-wins: "session wins" + session-podium: "session podium" + session-podiums: "session podiums" + session-winrate: "session win rate" + obtained-point: "obtained point" + obtained-points: "obtained points" + official-score: "official score" + average-position: "average position" + participation: "participation rate" + tabs: + title: "General" + stats: "Stats" + admin: "Admin" + #Tournaments page + tournaments: + title: "Past Tournaments" + new: "New" + #Re-Volt car classes + classes: + rookie: "Rookie" + amateur: "Amateur" + advanced: "Advanced" + semi-pro: "Semi-Pro" + pro: "Pro" + super-pro: "Super-Pro" + clockwork: "Clockwork" + random: "Random" + #Car metrics + car-card: + speed: "Velocidad" + kmh: "km/h" + acc: "Acc" + ms2: "ms²" + weight: "Peso" + kg: "Kg" + multiplier: "Multiplicador" + #Alert message boxes + alerts: + no-permission: "You do not have permission" + #Error pages + error: + 404: + title: "Error 404" + message: "Not Found" + 422: + title: "Error 404" + message: "Illegal Error" + 500: + title: "Error 404" + message: "Internal Server Error" + #Misc strings + misc: + download: "Download" + search: "Search" + and: "&" diff --git a/config/locales/es_cl.yml b/config/locales/es_cl.yml new file mode 100644 index 00000000..cbd8f646 --- /dev/null +++ b/config/locales/es_cl.yml @@ -0,0 +1,496 @@ +es_cl: + #Navigation + nav: + play: "Jugar" + tracks: "Pistas" + cars: "Coches" + seasons: "Temporadas" + league: + title: "Liga" + leaderboard: "Tabla de Posiciones" + point-system: "Sistema de Puntos" + teams: "Equipos" + tournaments: "Torneos" + downloads: "Descargas" + user: + my-profile: "My Profile" + settings: "Settings" + admin: + title: "Admin" + upload-session: "Upload Session" + create-season: "Create Season" + import-tracks: "Import Tracks" + import-cars: "Import Cars" + new-team: "New Team" + new-tournament: "New Tournament" + import-users: "Import Users" + log-out: "Log out" + login: "Login" + register: "Register" + #Sub-navigation + sub-nav: + seasons: "Seasons" + rankings: "Rankings" + ranking: "Ranking" + ranking-n: "Ranking %{n}" + session-n: "Session %{n}" + tracks: "Tracks" + cars: "Cars" + #Footer + footer: + policies: + title: "Políticas" + rules: "Reglas" + terms: "Términos de servicio" + privacy: "Política de Privacidad" + organization: + title: "Organización" + staff: "Staff" + logs: "Registros de desarrollo" + bugs: "Reportar un bug" + sponsor: "Patrocinar" + trademark: + title: "Marca comercial" + assets: "Recursos" + emoji: "Emoticono" + social: + title: "Encuéntranos" + discord: "Discord" + github: "GitHub" + crowdin: "Crowdin" + #Landing page, Splash, About + application: + splash: + description1: "The Website for the American community of Re-Volt, 1999" + description2: "Download the game and meet players from all over the Americas!" + download-button: "Downloads »" + index: + community: + title: "Community" + description: "We are an amazing Re-Volt community mainly made up of South American players, but you will also find people from all over the world playing online with us." + play-button: "Play »" + competition: + title: "Competition" + description: "In Re-Volt America we race in a seasonal format. Throughout each season, you will be able to race online daily and score points for every race you participate in!" + seasons-button: "Seasons »" + reliability: + title: "Reliabilty" + description: "Re-Volt America has been designed with sustainability and scalability in mind. Most of the features you see here you will not find in any other Re-Volt community." + about-us-button: "About Us »" + recent: + title: "Recent Sessions" + races: "%{category} Races" + team-races: "%{category} Team Races" + hosted-by: "Hosted by %{host}" + all-sessions-button: "All Sessions" + no-sessions: "N" + about: + title: "About Re-Volt America" + description: "The largest Re-Volt community you'll find in the American Continent. Join our racing sessions, compete in our seasons and meet other Re-Volt players from around the world!" + #Play page + play: + subheader: "Jugamos diariamente a las 00:00 UTC" + subheader2_html: "Las salas se publican en #lobby-rva" + #Downloads page + downloads: + title: "Downloads" + video: "Pending video..." + faq: + title: "If you are new to the community, we strongly recommend that you read the our Frequently Asked Questions page" + button: "Take me there!" + legacy-downloads: "Legacy Downloads" + #Rules page + rules: + title: "Reglas" + sections: + a: + title: "A. Compostura general" + 1: "Mantén siempre un ambiente tranquilo con otros usuarios." + 2_html: "No hagas Spam. Puedes autopromoverte a tí mismo y a otros dentro de ciertos límites, sólo no cruces la línea y estarás bien." + 3_html: "Doxear a otros usuarios está prohibido. Si participas o promueves estos actos RVA TOMARÁ acciones." + 4: "Sigue siempre las directrices dadas por los miembros del personal." + 5: "Usa tu sentido común. No es tan difícil, ¡en serio!" + b: + title: "B. Crear un nombre de usuario" + 1: + title: "Para jugar a Re-Volt debes elegir un nombre de usuario. Para ser indexado en las clasificaciones oficiales de RVA los jugadores deben elegir un nombre de usuario el cual se ajuste a las siguientes directrices:" + bullet1: "Tu nombre de usuario debe tener de 1 a 16 caracteres." + bullet2: "Tu nombre de usuario puede contener cualquier carácter de la A a la Z (mayúscula y minúscula), números, guiones bajos y espacios en blanco." + bullet3: "¡Tu nombre de usuario debe ser único! Si no estás seguro, puedes preguntarle al personal para ver si el nombre de usuario que quieres ya está siendo usado por otro jugador." + c: + title: "C. Carreras y puntuación" + 1: "Puedes utilizar coches de la clase en curso e inferiores. (novato, amateur, avanzado, etc.)" + 2: + title: "Usar un coche por debajo de la clase en curso otorgará las siguientes bonificaciones de puntaje:" + bullet1_html: "Una clase por debajo: 25%." + bullet2_html: "Dos clases por debajo: 50%." + bullet3_html: "Tres clases por debajo: 75%." + bullet4_html: "Cuatro clases por debajo: 100%." + bullet5_html: "Cinco clases por debajo: 125%." + 3_html: "NO utilices coches de una clase superior a la que esté en curso. Hacerlo invalidará los puntos que obtengas jugando con él." + 4_html: "NO dispares o molestes a corredores en posiciones no inmediatas a la tuya (jugadores que te saquen una vuelta)." + 5_html: "NO pidas RE (1) a menos que llegues tarde a una carrera o experimentes dificultades técnicas. Otras razones son consideradas inválidas." + 6: "Evita cambiar tu nombre a mitad de las sesiones, ya que esto puede dificultar el calcular las puntuaciones finales." + 7: + title: "Puedes escribir RE durante los primeros 40 segundos de una carrera sólo en caso de tratarse de un factor no relacionado con el juego (llegas tarde, problemas de conexión)." + bullet1: "Solo 1 RE por pista será garantizado. Si alguien ha pedido RE antes de que tú lo hicieses, entonces el anfitrión no reiniciará de nuevo." + 8_html: "The accumulated multiplier of any car will never exceed 4.0." + d: + title: "D. Servidor de Discord" + 1_html: "Debes seguir y atenerte a los Términos de servicio de Discord. El no hacerlo hará que te expulsemos de Re-Volt America." + 2: "Mantente en el tema de los canales." + 3: "No acoses a otros usuarios." + 4_html: "Cualquier archivo multimedia malicioso que cause que el cliente de Discord de otros usuarios crashee o contenido muy explícito se eliminará y probablemente te infraccionaremos por publicarlo." + e: + title: "E. Infracciones" + 1_html: "El no seguir el reglamento de Carreras y puntuación puede hacer que quedes speced (2) en nuestras salas, o expulsado si insistes en romper nuestras reglas." + 2_html: "Los usuarios podrán ser expulsados de nuestro servidor de Discord por romper las reglas. Si la violación al reglamento es grave, podrás ser baneado en su lugar." + 3: "Evadir bans de Discord conseguirá que te volvamos a banear eventualmente. Los averiguaremos." + 4: "Todas las infracciones están sujetas a la discreción de nuestro personal" + precisions: + 1: + term: "(1) RE:" + precision: "Solicitar al anfitrión de una sala que reinicie la carrera en curso." + 2: + term: "(2) Speced:" + precision: "Cuando el anfitrión de una sala fuerza a un corredor a espectadores. En este contexto, como una forma de infracción." + #Privacy & Terms pages + privacy: + title_html: " Privacy Policy" + terms: + title_html: " Terms of Service" + #Staff page + staff: + title: "Staff" + description: "The people who help run Re-Volt America!" + groups: + administrator: "Administrators" + developer: "Developers" + moderator: "Moderators" + organizer: "Organizers" + #Points page + points: + title: "RVA Points System" + introduction: + title: "Introduction" + description: "In Re-Volt America, players score points for each race they get to finish. The amount of points each player scores will depend on two things: their final position in the race, and the amount of racers in that race. If a race has 10 or more racers in it, then it's considered a to be a \"big\" race." + normal-race: "Normal Race Scoring" + big-race: "Big Race Scoring" + car-ratings: + title: "Car Ratings" + description: "In Re-Volt America, cars are assigned a 'multiplier' depending on their top speed, acceleration, weight, and other characteristics that may make them better or worse for online racing. We used this multiplayer to reward racers for playing hard cars, and for regulating really good or overpowered cars as well. Here is how the formula is applied each race with different car multipliers:" + desktop-parser: + title: "RVA Desktop Points Parser" + description: "The RVA Desktop Points Parser is a Desktop application designed to calculate a results table in the RVA format from a given RVGL session log. Through this portable tool, we allow anyone to parse session results using our system locally if they so desire. Here is an example of what you'll get by parsing one of our sessions yourself:" + downloads: + title: "Download RVA Points" + #RVA strings + rva: + tracks: + all-tracks: "All Tracks" + season: "Season" + title: "The RVA Tracks" + format: + title: "Format" + short-name: + title: "Short Name" + difficulty: + title: "Difficulty" + easy: "Easy" + medium: "Medium" + hard: "Hard" + extreme: "Extreme" + length: + title: "Length" + short: "Short" + medium: "Medium" + long: "Long" + extralong: "Extra Long" + meters: "%{length} meters" + stock: + title: "Stock?" + true: "Yes" + false: "No" + featured: + description: "This track has been featured in RVA %{season}" + rotation: + title: "Re-Volt America Rotation" + collection: + title: "Re-Volt America Track Collection" + cars: + title: "The RVA Cars" + ratings-link: "Car Ratings" + features: + speed: "Speed" + acceleration: "Acceleration" + weight: "Weight" + multiplier: "Multiplier" + category: "Category" + stock: "Stock" + stock-tooltip: + tooltip: "Original Re-Volt Content" + featured-session: "This car has been featured in RVA %{season}" + class-selector: + title: "Classes" + #Assets page + assets: + title: "LOGOS Y USO" + subtitle_html: "¡Una colección de nuestros principales recursos, realizados por la talentosa Hylia, los cuales puedes descargar para integrar con RVA o enlazar hacia nuestra web!" + allowed: + title: "Uso permitido" + 1: "Usar nuestro logo para enlazar a nuestro sitio web" + 2: "Usar nuestro logo para anunciar que te integras con RVA" + 3: "Usar nuestro logo en blogs o artículos acerca de RVA" + prohibited: + title: "Uso prohibido" + 1: "Usar nuestro logo como el ícono de tu aplicación" + 2: "Crear una versión modificada de cualquiera de nuestros logos" + 3: "Integrar cualquiera de nuestros logos en tu logo" + 4: "Usar nuestro arte sin nuestro consentimiento" + 5: "Cambiar los colores, dimensiones o añadir tu propio texto o imágenes" + contact: + title: "Por favor, contáctanos" + 1: "Si quieres usar arte no incluído en este repositorio" + 2: "Si quieres usar estas imágenes en un video o medio de comunicación" + naming: + title: "Nombrar proyectos y productos" + 1: "Por favor, evita nombrar tus proyectos de tal manera que impliquen el espaldo de Re-Volt America. Esto también aplica a nombres de dominio." + attribution: + title: "Atribución" + 1: "Otros recursos como imágenes de clasificación de coches, imágenes de pistas, emoticonos, etc... son hechos por miembros de nuestra comunidad y todos los derechos pertenecen a sus respectivos autores" + 2_html: "These guidelines were heavily based on GitHub's Logos and Usage Guidelines." + #Seasons page + seasons: + title: "The RVA Seasons" + explanation: + title: "What are RVA Seasons?" + description: "In RVA, we follow a seasonal format for online racing. Every Season consists of 6 Rankings, and each ranking consists of 28 Sessions, 18 of which are for Single races and the other 10 for Team races. Players score points for every race." + buttons: + current-season: "Current Season" + learn-more: "Learn More" + bottom: + title: "All Seasons" + present: "Present" + #Rankings page + rankings: + title: "Ranking %{number}" + title2: "Leaderboards" + small: "%{count} sessions played" + table: + country: "Country" + racer: "Racer" + pp: "PP" + pa: "PA" + mp: "MP" + po: "PO" + cc: "CC" + fj: "FJ" + fp: "FP" + sp: "SP" + sessions: + title: "Sessions" + no-sessions: "No sessions to display :(" + results: + no-team-results: "No team results to disiplay" + nav: + singles: "Singles" + teams: "Teams" + admin: + season: + edit: + button: "Edit Season" + delete: + button: "Delete season" + warning: + title: "Warning!" + body: "Deleting a Season will PERMANENTLY delete all its rankings, sessions, cars and tracks! This action is irreversible. " + close: "Close" + delete-season: "Delete Season" + #Devise strings + confirmation: + welcome: "Welcome %{email}" + description: "You can confirm your account email through the link below:" + email: + changed: + greeting: "Hello %{email}!" + changing: "We're contacting you to notify you that your email is being changed to %{email}." + changed: "We're contacting you to notify you that your email has been changed to %{email}" + password: + change: + greeting: "Hello %{email}!" + description: "We're contacting you to notify you that your password has been changed." + reset: + greeting: "Hello %{email}!" + advise: "Someone has requested a link to change your password. You can do this through the link below." + advise2: "If you didn't request this, please ignore this email." + advise3: "Your password won't change until you access the link above and create a new one." + account: + unlock: + greeting: "Hello %{email}!" + advise: "Your account has been locked due to an excessive number of unsuccessful sign in attempts." + instruction: "Click the link below to unlock your account:" + url: "Unlock my account" + registrations: + edit: + title: "Edit User" + email: + title: "Change Email" + new: "New email" + password: + title: "Change Password" + new-length: "New password (%{length} characters minimum)" + new: "New password" + confirm: "Confirm new password" + info: + title: "Change your info" + gender: "Gender" + nationality: + title: "Nationality" + small: "(National flag)" + placeholder: "Select nationality" + location: "Location" + occupation: "Occupation" + interests: "Interests" + public-email: "Public Email" + about: "About %{user}" + about-me: + title: "About me... (You may use html)" + title2: "About %{user}" + nothing: "Nothing here yet..." + placeholder: "Write something interesting..." + current-password: "Current password" + update: "Update" + update-admin: "Update %{user}" + #Development logs + repositories: + title: "Revisions" + small: "Latest git commits in our organization" + new-button: "New" + repository: "Repository" + table: + title: "Repository" + revision: "Revision" + author: "Author" + description: "Description" + when: "When" + #RVA results page + results: + title: "%{category} Races (Session %{number})" + version: "Version: %{version}" + connection: "Connection: %{protocol} (Server)" + mode: "Mode: %{physics}" + pickups: "Pickups: %{pickups}" + teams: "Teams: %{teams}" + download: "Download Session Log" + team: "Team" + admin: + title: "Admin Actions" + edit: + button: "Edit Session" + delete: + button: "Delete Session" + confirmation: + body: "Are you sure?" + container: + tooltips: + session-number: "Session Number" + final-position: "Final Position" + average-position: "Average Position" + obtained-points: "Obtained Points" + race-count: "Race Count" + participation-multiplier: "Participation Multiplier" + official-score: "Official Score" + accumulated-score: "Accumulated Score" + accumulated-points: "Accumulated Points" + sessions-played: "Sessions Played" + tracks: + not-found: "Track not found" + #Teams page + teams: + title: "RVA Teams" + no-teams: "No teams to display" + global-points: + title: "Global Team Points" + team: + leader: "Leader" + members: "Members" + #User profile page + users: + stats: + title: "Stats" + rank: + title: "rank" + tooltip: "Position in current ranking" + race-stats: + title: "Race Stats" + win-rate: "win rate" + sessions: "sessions" + races: "races" + win: "win" + wins: "wins" + podium: "podium" + podiums: "podiums" + session-played: "session played" + sessions-played: "sessions played" + race-played: "race played" + races-played: "races played" + session-history: + title: "Session History" + overall-stats: + title: "Overall Stats" + session-win: "session win" + session-wins: "session wins" + session-podium: "session podium" + session-podiums: "session podiums" + session-winrate: "session win rate" + obtained-point: "obtained point" + obtained-points: "obtained points" + official-score: "official score" + average-position: "average position" + participation: "participation rate" + tabs: + title: "General" + stats: "Stats" + admin: "Admin" + #Tournaments page + tournaments: + title: "Past Tournaments" + new: "New" + #Re-Volt car classes + classes: + rookie: "Rookie" + amateur: "Amateur" + advanced: "Advanced" + semi-pro: "Semi-Pro" + pro: "Pro" + super-pro: "Super-Pro" + clockwork: "Clockwork" + random: "Random" + #Car metrics + car-card: + speed: "Velocidad" + kmh: "km/h" + acc: "Acc" + ms2: "ms²" + weight: "Peso" + kg: "Kg" + multiplier: "Multiplicador" + #Alert message boxes + alerts: + no-permission: "You do not have permission" + #Error pages + error: + 404: + title: "Error 404" + message: "Not Found" + 422: + title: "Error 404" + message: "Illegal Error" + 500: + title: "Error 404" + message: "Internal Server Error" + #Misc strings + misc: + download: "Download" + search: "Search" + and: "&" diff --git a/config/locales/it.yml b/config/locales/it.yml new file mode 100644 index 00000000..ad09f4f3 --- /dev/null +++ b/config/locales/it.yml @@ -0,0 +1,496 @@ +it: + #Navigation + nav: + play: "Play" + tracks: "Tracks" + cars: "Cars" + seasons: "Seasons" + league: + title: "League" + leaderboard: "Leaderboard" + point-system: "Points System" + teams: "Teams" + tournaments: "Tournaments" + downloads: "Downloads" + user: + my-profile: "My Profile" + settings: "Settings" + admin: + title: "Admin" + upload-session: "Upload Session" + create-season: "Create Season" + import-tracks: "Import Tracks" + import-cars: "Import Cars" + new-team: "New Team" + new-tournament: "New Tournament" + import-users: "Import Users" + log-out: "Log out" + login: "Login" + register: "Register" + #Sub-navigation + sub-nav: + seasons: "Seasons" + rankings: "Rankings" + ranking: "Ranking" + ranking-n: "Ranking %{n}" + session-n: "Session %{n}" + tracks: "Tracks" + cars: "Cars" + #Footer + footer: + policies: + title: "Norme e sicurezza" + rules: "Regole" + terms: "Termini di Servizio" + privacy: "Norme sulla Privacy" + organization: + title: "Gestione" + staff: "Staff" + logs: "Registri di Sviluppo" + bugs: "Segnala un Problema" + sponsor: "Sponsor" + trademark: + title: "Marchi" + assets: "Risorse" + emoji: "Simboli" + social: + title: "Trovaci" + discord: "Discord" + github: "GitHub" + crowdin: "Crowdin" + #Landing page, Splash, About + application: + splash: + description1: "The Website for the American community of Re-Volt, 1999" + description2: "Download the game and meet players from all over the Americas!" + download-button: "Downloads »" + index: + community: + title: "Community" + description: "We are an amazing Re-Volt community mainly made up of South American players, but you will also find people from all over the world playing online with us." + play-button: "Play »" + competition: + title: "Competition" + description: "In Re-Volt America we race in a seasonal format. Throughout each season, you will be able to race online daily and score points for every race you participate in!" + seasons-button: "Seasons »" + reliability: + title: "Reliabilty" + description: "Re-Volt America has been designed with sustainability and scalability in mind. Most of the features you see here you will not find in any other Re-Volt community." + about-us-button: "About Us »" + recent: + title: "Recent Sessions" + races: "%{category} Races" + team-races: "%{category} Team Races" + hosted-by: "Hosted by %{host}" + all-sessions-button: "All Sessions" + no-sessions: "N" + about: + title: "About Re-Volt America" + description: "The largest Re-Volt community you'll find in the American Continent. Join our racing sessions, compete in our seasons and meet other Re-Volt players from around the world!" + #Play page + play: + subheader: "We play daily at 00:00 UTC" + subheader2_html: "Le stanze per le partite vengono pubblicate nel canale #lobby-rva" + #Downloads page + downloads: + title: "Downloads" + video: "Pending video..." + faq: + title: "If you are new to the community, we strongly recommend that you read the our Frequently Asked Questions page" + button: "Take me there!" + legacy-downloads: "Legacy Downloads" + #Rules page + rules: + title: "Regole" + sections: + a: + title: "A. Comportamento Generale" + 1: "Mantieni sempre un atteggiamento calmo nei confronti degli altri utenti." + 2_html: "Non Spammare. Nei limiti ragionevoli puoi promuovere te stesso o altri utenti, basta che non si esageri e tutto dovrebbe filar liscio." + 3_html: "Il Doxing nei confronti degli altri utenti è proibito. Se lo approvi o ne fai parte RVA DOVRÀ prendere provvedimenti." + 4: "Segui le indicazioni fornite dai membri dello staff in qualsiasi momento." + 5: "Utilizza il buon senso. Non è poi così difficile!" + b: + title: "B. Creare un Nome Utente" + 1: + title: "Per giocare a Re-Volt è necessario scegliere un nome utente, e per essere indicizzato nelle classifiche ufficiali di RVA i giocatori devono scegliere un nome utente che si attenga alle seguenti linee guida:" + bullet1: "Il tuo nome utente deve avere tra 1 e 16 caratteri." + bullet2: "Il tuo nome utente può contenere qualunque carattere dalla A alla Z (maiuscole e minuscole), numeri, trattini bassi e spazi vuoti." + bullet3: "Il tuo nome utente deve essere unico! Se non ne sei sicuro, puoi scoprire se il nome utente che desideri è già in utilizzo da un altro giocatore chiedendo al team dello Staff." + c: + title: "C. Gare & Punteggi" + 1: "È possibile utilizzare un'auto di una classe uguale a quella in gioco o di una classe inferiore. (principiante, appassionato, avanzato, ecc.)" + 2: + title: "Utilizzare un'auto di una classe inferiore rispetto alla classe in gioco attualmente comporterà nei seguenti benefici al punteggio:" + bullet1_html: "Una classe al di sotto di quella in gioco: 25% di bonus al mutatore punteggio dell'auto." + bullet2_html: "Due classi al di sotto di quella in gioco: 50% di bonus al mutatore punteggio dell'auto." + bullet3_html: "Tre classi al di sotto di quella in gioco: 75% di bonus al mutatore punteggio dell'auto." + bullet4_html: "Quattro classi al di sotto di quella in gioco: 100% di bonus al mutatore punteggio dell'auto." + bullet5_html: "Cinque classi al di sotto di quella in gioco: 125% di bonus al mutatore punteggio dell'auto." + 3_html: "NON usare auto di una classe superiore rispetta a quella in gioco attualmente. Far ciò invaliderà i punti che guadagnerai con essa." + 4_html: "NON disturbare o utilizzare intenzionalmente gli oggetti sulle auto in posizioni non immediate (auto che ti doppiano)." + 5_html: "NON chiedere un RE (1) a meno che tu non sia in ritardo per una gara o ci sono difficoltà tecniche. Altre ragioni saranno considerate come non valide." + 6: "Evita di cambiare il tuo nome durante una sessione di gare, poiché questo potrebbe rendere difficile il processo di calcolo dei punti della classifica finale." + 7: + title: "Puoi scrivere RE nella chat di gioco durante i primi 40 secondi di una gara a causa di un fattore esterno non correlato al gioco." + bullet1: "Only 1 RE per track will be granted. If somebody asked for RE before you did, then the host will not restart again." + 8_html: "The accumulated multiplier of any car will never exceed 4.0." + d: + title: "D. Server di Discord" + 1_html: "Devi seguire e rispettare i Termini di Servizio di Discord. In caso contrario sarai bannato da Re-Volt America." + 2: "Rimani sugli argomenti relativi ai canali." + 3: "Non molestare gli altri utenti." + 4_html: "I media che potrebbero causare il malfunzionamento o il crash del client di Discord oppure contenuti molto espliciti verranno cancellati e potresti essere punito per averli pubblicati." + e: + title: "E. Punizioni" + 1_html: "Il mancato rispetto di una qualsiasi delle regole di \"Gare & Punteggi\" comporterà nell'essere speccati (2) all'interno delle nostre sessioni di gioco, oppure espulso se si insisterà nella violazione delle nostre regole." + 2_html: "Gli utenti possono essere cacciati dal nostro server di Discord per aver infranto le regole. Se la violazione delle regole è severa, si verrà bannati." + 3: "Evadere i ban dal Discord ti farà bannare comunque eventualmente. Lo verremo a sapere." + 4: "Tutte le infrazioni sono soggette alla discrezione del team dello Staff" + precisions: + 1: + term: "(1) RE:" + precision: "Richiedere al gestore della sessione di riavviare la gara in corso." + 2: + term: "(2) Speccati:" + precision: "Quando il gestore della sessione imposta un giocatore da \"in gioco\" a spettatore. In questo caso, come forma di punizione." + #Privacy & Terms pages + privacy: + title_html: " Privacy Policy" + terms: + title_html: " Terms of Service" + #Staff page + staff: + title: "Staff" + description: "Le persone che contribuiscono alla gestione di Re-Volt America!" + groups: + administrator: "Amministratori" + developer: "Sviluppatori" + moderator: "Moderatori" + organizer: "Organizzatori" + #Points page + points: + title: "RVA Points System" + introduction: + title: "Introduction" + description: "In Re-Volt America, players score points for each race they get to finish. The amount of points each player scores will depend on two things: their final position in the race, and the amount of racers in that race. If a race has 10 or more racers in it, then it's considered a to be a \"big\" race." + normal-race: "Normal Race Scoring" + big-race: "Big Race Scoring" + car-ratings: + title: "Car Ratings" + description: "In Re-Volt America, cars are assigned a 'multiplier' depending on their top speed, acceleration, weight, and other characteristics that may make them better or worse for online racing. We used this multiplayer to reward racers for playing hard cars, and for regulating really good or overpowered cars as well. Here is how the formula is applied each race with different car multipliers:" + desktop-parser: + title: "RVA Desktop Points Parser" + description: "The RVA Desktop Points Parser is a Desktop application designed to calculate a results table in the RVA format from a given RVGL session log. Through this portable tool, we allow anyone to parse session results using our system locally if they so desire. Here is an example of what you'll get by parsing one of our sessions yourself:" + downloads: + title: "Download RVA Points" + #RVA strings + rva: + tracks: + all-tracks: "All Tracks" + season: "Season" + title: "The RVA Tracks" + format: + title: "Format" + short-name: + title: "Short Name" + difficulty: + title: "Difficulty" + easy: "Easy" + medium: "Medium" + hard: "Hard" + extreme: "Extreme" + length: + title: "Length" + short: "Short" + medium: "Medium" + long: "Long" + extralong: "Extra Long" + meters: "%{length} meters" + stock: + title: "Stock?" + true: "Yes" + false: "No" + featured: + description: "This track has been featured in RVA %{season}" + rotation: + title: "Re-Volt America Rotation" + collection: + title: "Re-Volt America Track Collection" + cars: + title: "The RVA Cars" + ratings-link: "Car Ratings" + features: + speed: "Speed" + acceleration: "Acceleration" + weight: "Weight" + multiplier: "Multiplier" + category: "Category" + stock: "Stock" + stock-tooltip: + tooltip: "Original Re-Volt Content" + featured-session: "This car has been featured in RVA %{season}" + class-selector: + title: "Classes" + #Assets page + assets: + title: "Logo & Utilizzi" + subtitle_html: "Una collezzione delle nostre risorse principali, realizzate dalla talentuosa Hylia, che puoi scaricare per integrarti con RVA o per riferirti a noi!" + allowed: + title: "Uso Consentito" + 1: "Usa il nostro logo per riferirti al nostro sito" + 2: "L'utilizzo del nostro logo per avvertire la tua partecipazione/integrazione a RVA" + 3: "L'utilizzo del nostro logo nei blog post o per articoli su RVA" + prohibited: + title: "Uso Non Consentito" + 1: "L'uso del nostro logo come icona della tua applicazione" + 2: "La creazione di una versione modificata di un qualsiasi nostro logo" + 3: "L'integrazione di qualsiasi dei nostri loghi nel tuo logo" + 4: "L'utilizzo dei nostri artwork senza permesso" + 5: "Il cambiamento di colori, dimensioni o l'aggiunta di testo o immagini proprie" + contact: + title: "Vi preghiamo di contattarci" + 1: "Se si desidera utilizzare dell'artwork non incluso in questo archivio" + 2: "Se si desidera utilizzare queste immagini in un video/portale mainstream" + naming: + title: "Rinominazione Progetti e prodotti" + 1: "Si prega di evitare di rinominare i propri progetti in tutto ciò che posso implicare l'approvazione di Re-Volt America- Questo si applica anche ai nomi di dominio." + attribution: + title: "Attribuzione" + 1: "Altri assetti come le immagini di valutazioni auto, le immagini dei circuiti, emoji, ecc. sono creati dai membri della nostra comunità. e tutti i diritti appartengono ai rispettivi autori" + 2_html: "Queste linee guida si basano prevalentemente sulle Linee Guida di GitHub per gli usi e i loghi" + #Seasons page + seasons: + title: "The RVA Seasons" + explanation: + title: "What are RVA Seasons?" + description: "In RVA, we follow a seasonal format for online racing. Every Season consists of 6 Rankings, and each ranking consists of 28 Sessions, 18 of which are for Single races and the other 10 for Team races. Players score points for every race." + buttons: + current-season: "Current Season" + learn-more: "Learn More" + bottom: + title: "All Seasons" + present: "Present" + #Rankings page + rankings: + title: "Ranking %{number}" + title2: "Leaderboards" + small: "%{count} sessions played" + table: + country: "Country" + racer: "Racer" + pp: "PP" + pa: "PA" + mp: "MP" + po: "PO" + cc: "CC" + fj: "FJ" + fp: "FP" + sp: "SP" + sessions: + title: "Sessions" + no-sessions: "No sessions to display :(" + results: + no-team-results: "No team results to disiplay" + nav: + singles: "Singles" + teams: "Teams" + admin: + season: + edit: + button: "Edit Season" + delete: + button: "Delete season" + warning: + title: "Warning!" + body: "Deleting a Season will PERMANENTLY delete all its rankings, sessions, cars and tracks! This action is irreversible. " + close: "Close" + delete-season: "Delete Season" + #Devise strings + confirmation: + welcome: "Welcome %{email}" + description: "You can confirm your account email through the link below:" + email: + changed: + greeting: "Hello %{email}!" + changing: "We're contacting you to notify you that your email is being changed to %{email}." + changed: "We're contacting you to notify you that your email has been changed to %{email}" + password: + change: + greeting: "Hello %{email}!" + description: "We're contacting you to notify you that your password has been changed." + reset: + greeting: "Hello %{email}!" + advise: "Someone has requested a link to change your password. You can do this through the link below." + advise2: "If you didn't request this, please ignore this email." + advise3: "Your password won't change until you access the link above and create a new one." + account: + unlock: + greeting: "Hello %{email}!" + advise: "Your account has been locked due to an excessive number of unsuccessful sign in attempts." + instruction: "Click the link below to unlock your account:" + url: "Unlock my account" + registrations: + edit: + title: "Edit User" + email: + title: "Change Email" + new: "New email" + password: + title: "Change Password" + new-length: "New password (%{length} characters minimum)" + new: "New password" + confirm: "Confirm new password" + info: + title: "Change your info" + gender: "Gender" + nationality: + title: "Nationality" + small: "(National flag)" + placeholder: "Select nationality" + location: "Location" + occupation: "Occupation" + interests: "Interests" + public-email: "Public Email" + about: "About %{user}" + about-me: + title: "About me... (You may use html)" + title2: "About %{user}" + nothing: "Nothing here yet..." + placeholder: "Write something interesting..." + current-password: "Current password" + update: "Update" + update-admin: "Update %{user}" + #Development logs + repositories: + title: "Revisions" + small: "Latest git commits in our organization" + new-button: "New" + repository: "Repository" + table: + title: "Repository" + revision: "Revision" + author: "Author" + description: "Description" + when: "When" + #RVA results page + results: + title: "%{category} Races (Session %{number})" + version: "Version: %{version}" + connection: "Connection: %{protocol} (Server)" + mode: "Mode: %{physics}" + pickups: "Pickups: %{pickups}" + teams: "Teams: %{teams}" + download: "Download Session Log" + team: "Team" + admin: + title: "Admin Actions" + edit: + button: "Edit Session" + delete: + button: "Delete Session" + confirmation: + body: "Are you sure?" + container: + tooltips: + session-number: "Session Number" + final-position: "Final Position" + average-position: "Average Position" + obtained-points: "Obtained Points" + race-count: "Race Count" + participation-multiplier: "Participation Multiplier" + official-score: "Official Score" + accumulated-score: "Accumulated Score" + accumulated-points: "Accumulated Points" + sessions-played: "Sessions Played" + tracks: + not-found: "Track not found" + #Teams page + teams: + title: "RVA Teams" + no-teams: "No teams to display" + global-points: + title: "Global Team Points" + team: + leader: "Leader" + members: "Members" + #User profile page + users: + stats: + title: "Stats" + rank: + title: "rank" + tooltip: "Position in current ranking" + race-stats: + title: "Race Stats" + win-rate: "win rate" + sessions: "sessions" + races: "races" + win: "win" + wins: "wins" + podium: "podium" + podiums: "podiums" + session-played: "session played" + sessions-played: "sessions played" + race-played: "race played" + races-played: "races played" + session-history: + title: "Session History" + overall-stats: + title: "Overall Stats" + session-win: "session win" + session-wins: "session wins" + session-podium: "session podium" + session-podiums: "session podiums" + session-winrate: "session win rate" + obtained-point: "obtained point" + obtained-points: "obtained points" + official-score: "official score" + average-position: "average position" + participation: "participation rate" + tabs: + title: "General" + stats: "Stats" + admin: "Admin" + #Tournaments page + tournaments: + title: "Past Tournaments" + new: "New" + #Re-Volt car classes + classes: + rookie: "Principiante" + amateur: "Appassionato" + advanced: "Avanzato" + semi-pro: "Semi Professionale" + pro: "Professionale" + super-pro: "Super Professionale" + clockwork: "Clockwork" + random: "Casuale" + #Car metrics + car-card: + speed: "Velocità" + kmh: "km/h" + acc: "Accel." + ms2: "ms2" + weight: "Peso" + kg: "Kg" + multiplier: "Mutatore" + #Alert message boxes + alerts: + no-permission: "You do not have permission" + #Error pages + error: + 404: + title: "Error 404" + message: "Not Found" + 422: + title: "Error 404" + message: "Illegal Error" + 500: + title: "Error 404" + message: "Internal Server Error" + #Misc strings + misc: + download: "Scarica" + search: "Cerca" + and: "&" diff --git a/config/locales/ko.yml b/config/locales/ko.yml new file mode 100644 index 00000000..75d3c85d --- /dev/null +++ b/config/locales/ko.yml @@ -0,0 +1,496 @@ +ko: + #Navigation + nav: + play: "플레이" + tracks: "트랙" + cars: "차량" + seasons: "Seasons" + league: + title: "League" + leaderboard: "Leaderboard" + point-system: "Points System" + teams: "Teams" + tournaments: "Tournaments" + downloads: "다운로드" + user: + my-profile: "My Profile" + settings: "Settings" + admin: + title: "Admin" + upload-session: "Upload Session" + create-season: "Create Season" + import-tracks: "Import Tracks" + import-cars: "Import Cars" + new-team: "New Team" + new-tournament: "New Tournament" + import-users: "Import Users" + log-out: "Log out" + login: "Login" + register: "Register" + #Sub-navigation + sub-nav: + seasons: "Seasons" + rankings: "Rankings" + ranking: "Ranking" + ranking-n: "Ranking %{n}" + session-n: "Session %{n}" + tracks: "Tracks" + cars: "Cars" + #Footer + footer: + policies: + title: "정책" + rules: "규칙" + terms: "서비스 이용약관" + privacy: "개인정보처리방침" + organization: + title: "기관" + staff: "직원" + logs: "개발 로그" + bugs: "버그 신고" + sponsor: "스폰서" + trademark: + title: "상표" + assets: "자산" + emoji: "이모지" + social: + title: "문의하기" + discord: "Discord" + github: "GitHub" + crowdin: "Crowdin" + #Landing page, Splash, About + application: + splash: + description1: "The Website for the American community of Re-Volt, 1999" + description2: "Download the game and meet players from all over the Americas!" + download-button: "Downloads »" + index: + community: + title: "Community" + description: "We are an amazing Re-Volt community mainly made up of South American players, but you will also find people from all over the world playing online with us." + play-button: "Play »" + competition: + title: "Competition" + description: "In Re-Volt America we race in a seasonal format. Throughout each season, you will be able to race online daily and score points for every race you participate in!" + seasons-button: "Seasons »" + reliability: + title: "Reliabilty" + description: "Re-Volt America has been designed with sustainability and scalability in mind. Most of the features you see here you will not find in any other Re-Volt community." + about-us-button: "About Us »" + recent: + title: "Recent Sessions" + races: "%{category} Races" + team-races: "%{category} Team Races" + hosted-by: "Hosted by %{host}" + all-sessions-button: "All Sessions" + no-sessions: "N" + about: + title: "About Re-Volt America" + description: "The largest Re-Volt community you'll find in the American Continent. Join our racing sessions, compete in our seasons and meet other Re-Volt players from around the world!" + #Play page + play: + subheader: "매일 00:00 UTC에 플레이합니다" + subheader2_html: "로비는 #lobby-rva에 올라옵니다" + #Downloads page + downloads: + title: "Downloads" + video: "Pending video..." + faq: + title: "If you are new to the community, we strongly recommend that you read the our Frequently Asked Questions page" + button: "Take me there!" + legacy-downloads: "Legacy Downloads" + #Rules page + rules: + title: "규칙" + sections: + a: + title: "A. 기본 평정" + 1: "다른 사용자에게는 항상 침착한 분위기를 유지해야 합니다." + 2_html: "메시지를 도배 하지 마세요. 다른 사람과 귀하 자신의 홍보는 사유 없이 제한됩니다. 도배에 대한 경계를 넘지 말고 잘 지내주세요." + 3_html: "다른 유저를 독싱 하는 것은 금지되어 있습니다. 만약 귀하가 독싱을 RVA에서 지지한다면 처분이 내려질 것입니다." + 4: "직원분들의 설명을 따라주세요." + 5: "네티켓을 지켜주세요. 정말 어렵지 않습니다!" + b: + title: "B. Creating a Username" + 1: + title: "To play Re-Volt you must choose a username, and to be indexed into the official RVA rankings players must choose a nickname which abides to the following guidelines:" + bullet1: "Your nickname must have from 1 to 16 characters." + bullet2: "Your nickname may contain any characters from A-Z (uppercase or lowercase), numbers, underscores and blank spaces." + bullet3: "Your nickname must be unique! If you are not sure, you may ask the staff team to find out if the username you want is already being used by another player." + c: + title: "C. 레이스 & 점수" + 1: "코스 & 아래에 있는 규칙을 따르는 클래스의 차량만 사용이 가능합니다. (입문자, 아마추어, 숙련자 등)" + 2: + title: "아래에 있는 차량을 사용할 시 큰 점수 보너스가 지급됩니다:" + bullet1_html: "1 클래스 아래: 25%." + bullet2_html: "2 클래스 아래: 50%." + bullet3_html: "3 클래스 아래: 75%." + bullet4_html: "4 클래스 아래: 100%." + bullet5_html: "5 클래스 아래: 125%." + 3_html: "한 코스보다 높은 클래스의 차량을 사용하지 마세요. 얻은 점수는 무효화될 것입니다." + 4_html: "가깝지 않은 (한 바퀴 차이 나는) 순위의 플레이어를 일부로 쏘거나 괴롭히지 마세요." + 5_html: "레이스에 늦거나 기술적 어려움을 겪지 않는 한, RE(1)을 요청하지 마세요. 그 밖의 사유는 유효하지 않은 것으로 간주됩니다." + 6: "로비의 중간에서 이름을 변경하지 마세요. 최종 점수를 계산하는 과정이 어려울 수 있습니다." + 7: + title: "외부 비 게임 관련 요인으로 인해 레이스의 처음 40초 동안 RE(재시작)을 입력할 수 있습니다." + bullet1: "Only 1 RE per track will be granted. If somebody asked for RE before you did, then the host will not restart again." + 8_html: "The accumulated multiplier of any car will never exceed 4.0." + d: + title: "D. Discord 서버" + 1_html: "Discord 서비스 이용 약관을 따르고 준수해야 합니다. 그렇지 않으면 Re-Volt America에서 차단될 것입니다." + 2: "채널 내에서 주제를 벗어나지 마세요." + 3: "다른 사용자를 괴롭히지 마세요." + 4_html: "다른 사용자의 Discord 클라이언트를 중단시킬 수 있는 미디어 또는 매우 노골적인 콘텐츠는 삭제되며 게시한 것에 대해 처벌을 받을 수 있습니다." + e: + title: "E. 처벌" + 1_html: "레이스 및 채점 규칙을 따르지 않으면 로비에 speced(2) 될 수 있으며 규칙 위반을 고집하면 추방당할 수 있습니다." + 2_html: "Discord 서버의 규칙을 위반 시 사용자는 추방당할 것 입니다. 규칙의 위반이 심하다면 차단될 것입니다." + 3: "Discord 금지를 회피하면 결국 금지됩니다. 저희는 찾아낼 것입니다." + 4: "모든 위반 사항은 직원 팀의 재량에 따라 결정됩니다." + precisions: + 1: + term: "(1) RE:" + precision: "로비 호스트에게 현재 레이스를 다시 시작하도록 요청합니다." + 2: + term: "(2) Speced:" + precision: "로비 호스트가 레이서를 강제로 관중으로 변경할 때. 이런 상황을, 처벌로 한 형태입니다." + #Privacy & Terms pages + privacy: + title_html: " Privacy Policy" + terms: + title_html: " Terms of Service" + #Staff page + staff: + title: "직원" + description: "Re-volt America를 운영하는 사람들!" + groups: + administrator: "관리자" + developer: "개발자" + moderator: "운영자" + organizer: "주최자" + #Points page + points: + title: "포인트 시스템" + introduction: + title: "Introduction" + description: "In Re-Volt America, players score points for each race they get to finish. The amount of points each player scores will depend on two things: their final position in the race, and the amount of racers in that race. If a race has 10 or more racers in it, then it's considered a to be a \"big\" race." + normal-race: "Normal Race Scoring" + big-race: "Big Race Scoring" + car-ratings: + title: "Car Ratings" + description: "In Re-Volt America, cars are assigned a 'multiplier' depending on their top speed, acceleration, weight, and other characteristics that may make them better or worse for online racing. We used this multiplayer to reward racers for playing hard cars, and for regulating really good or overpowered cars as well. Here is how the formula is applied each race with different car multipliers:" + desktop-parser: + title: "RVA Desktop Points Parser" + description: "The RVA Desktop Points Parser is a Desktop application designed to calculate a results table in the RVA format from a given RVGL session log. Through this portable tool, we allow anyone to parse session results using our system locally if they so desire. Here is an example of what you'll get by parsing one of our sessions yourself:" + downloads: + title: "Download RVA Points" + #RVA strings + rva: + tracks: + all-tracks: "All Tracks" + season: "Season" + title: "The RVA Tracks" + format: + title: "Format" + short-name: + title: "Short Name" + difficulty: + title: "Difficulty" + easy: "Easy" + medium: "Medium" + hard: "Hard" + extreme: "Extreme" + length: + title: "Length" + short: "Short" + medium: "Medium" + long: "Long" + extralong: "Extra Long" + meters: "%{length} meters" + stock: + title: "Stock?" + true: "Yes" + false: "No" + featured: + description: "This track has been featured in RVA %{season}" + rotation: + title: "Re-Volt America Rotation" + collection: + title: "Re-Volt America Track Collection" + cars: + title: "The RVA Cars" + ratings-link: "Car Ratings" + features: + speed: "Speed" + acceleration: "Acceleration" + weight: "Weight" + multiplier: "Multiplier" + category: "Category" + stock: "Stock" + stock-tooltip: + tooltip: "Original Re-Volt Content" + featured-session: "This car has been featured in RVA %{season}" + class-selector: + title: "Classes" + #Assets page + assets: + title: "로고 & 사용법" + subtitle_html: "유능한 인재들이 만든 주요 자산의 컬렉션 Hylia, RVA와 통합하거나 저희에게 링크하기 위해 다운로드 할 수 있습니다." + allowed: + title: "허용된 사용법" + 1: "웹 사이트의 출처를 밝힌 로고 사용" + 2: "RVA와 통합 홍보용으로 로고 사용" + 3: "RVA에 대한 블로그 게시물 또는 글에서 로고 사용" + prohibited: + title: "금지된 사용법" + 1: "어플리케이션 아이콘으로 로고 사용" + 2: "로고를 사용하여 2차 창작물 제작" + 3: "로고를 귀하의 로고로 통합" + 4: "저희의 모든 예술품 무단 사용" + 5: "색상, 치수 변경 또는 자신의 텍스트/이미지 추가" + contact: + title: "연락해주세요" + 1: "위 정보에 포함되지 않은 이유로 아트워크를 사용하실 경우" + 2: "비디오/주요 미디어에서 이미지를 사용하실 경우" + naming: + title: "프로젝트 및 제품 명명" + 1: "Re-Volt America의 승인을 암시하는 프로젝트를 명명하지 마세요. 이는 도메인 이름에도 적용됩니다." + attribution: + title: "출처" + 1: "차량 등급 이미지, 트랙 이미지, 이모티콘 등과 같은 다른 자산은 우리 커뮤니티의 구성원에 의해 만들어지며, 모든 권리는 각 저자의 것입니다." + 2_html: "이 지침은 GitHub의 로고 및 사용 지침에 큰 기본이 되었습니다." + #Seasons page + seasons: + title: "The RVA Seasons" + explanation: + title: "What are RVA Seasons?" + description: "In RVA, we follow a seasonal format for online racing. Every Season consists of 6 Rankings, and each ranking consists of 28 Sessions, 18 of which are for Single races and the other 10 for Team races. Players score points for every race." + buttons: + current-season: "Current Season" + learn-more: "Learn More" + bottom: + title: "All Seasons" + present: "Present" + #Rankings page + rankings: + title: "Ranking %{number}" + title2: "Leaderboards" + small: "%{count} sessions played" + table: + country: "Country" + racer: "Racer" + pp: "PP" + pa: "PA" + mp: "MP" + po: "PO" + cc: "CC" + fj: "FJ" + fp: "FP" + sp: "SP" + sessions: + title: "Sessions" + no-sessions: "No sessions to display :(" + results: + no-team-results: "No team results to disiplay" + nav: + singles: "Singles" + teams: "Teams" + admin: + season: + edit: + button: "Edit Season" + delete: + button: "Delete season" + warning: + title: "Warning!" + body: "Deleting a Season will PERMANENTLY delete all its rankings, sessions, cars and tracks! This action is irreversible. " + close: "Close" + delete-season: "Delete Season" + #Devise strings + confirmation: + welcome: "Welcome %{email}" + description: "You can confirm your account email through the link below:" + email: + changed: + greeting: "Hello %{email}!" + changing: "We're contacting you to notify you that your email is being changed to %{email}." + changed: "We're contacting you to notify you that your email has been changed to %{email}" + password: + change: + greeting: "Hello %{email}!" + description: "We're contacting you to notify you that your password has been changed." + reset: + greeting: "Hello %{email}!" + advise: "Someone has requested a link to change your password. You can do this through the link below." + advise2: "If you didn't request this, please ignore this email." + advise3: "Your password won't change until you access the link above and create a new one." + account: + unlock: + greeting: "Hello %{email}!" + advise: "Your account has been locked due to an excessive number of unsuccessful sign in attempts." + instruction: "Click the link below to unlock your account:" + url: "Unlock my account" + registrations: + edit: + title: "Edit User" + email: + title: "Change Email" + new: "New email" + password: + title: "Change Password" + new-length: "New password (%{length} characters minimum)" + new: "New password" + confirm: "Confirm new password" + info: + title: "Change your info" + gender: "Gender" + nationality: + title: "Nationality" + small: "(National flag)" + placeholder: "Select nationality" + location: "Location" + occupation: "Occupation" + interests: "Interests" + public-email: "Public Email" + about: "About %{user}" + about-me: + title: "About me... (You may use html)" + title2: "About %{user}" + nothing: "Nothing here yet..." + placeholder: "Write something interesting..." + current-password: "Current password" + update: "Update" + update-admin: "Update %{user}" + #Development logs + repositories: + title: "Revisions" + small: "Latest git commits in our organization" + new-button: "New" + repository: "Repository" + table: + title: "Repository" + revision: "Revision" + author: "Author" + description: "Description" + when: "When" + #RVA results page + results: + title: "%{category} Races (Session %{number})" + version: "Version: %{version}" + connection: "Connection: %{protocol} (Server)" + mode: "Mode: %{physics}" + pickups: "Pickups: %{pickups}" + teams: "Teams: %{teams}" + download: "Download Session Log" + team: "Team" + admin: + title: "Admin Actions" + edit: + button: "Edit Session" + delete: + button: "Delete Session" + confirmation: + body: "Are you sure?" + container: + tooltips: + session-number: "Session Number" + final-position: "Final Position" + average-position: "Average Position" + obtained-points: "Obtained Points" + race-count: "Race Count" + participation-multiplier: "Participation Multiplier" + official-score: "Official Score" + accumulated-score: "Accumulated Score" + accumulated-points: "Accumulated Points" + sessions-played: "Sessions Played" + tracks: + not-found: "Track not found" + #Teams page + teams: + title: "RVA Teams" + no-teams: "No teams to display" + global-points: + title: "Global Team Points" + team: + leader: "Leader" + members: "Members" + #User profile page + users: + stats: + title: "Stats" + rank: + title: "rank" + tooltip: "Position in current ranking" + race-stats: + title: "Race Stats" + win-rate: "win rate" + sessions: "sessions" + races: "races" + win: "win" + wins: "wins" + podium: "podium" + podiums: "podiums" + session-played: "session played" + sessions-played: "sessions played" + race-played: "race played" + races-played: "races played" + session-history: + title: "Session History" + overall-stats: + title: "Overall Stats" + session-win: "session win" + session-wins: "session wins" + session-podium: "session podium" + session-podiums: "session podiums" + session-winrate: "session win rate" + obtained-point: "obtained point" + obtained-points: "obtained points" + official-score: "official score" + average-position: "average position" + participation: "participation rate" + tabs: + title: "General" + stats: "Stats" + admin: "Admin" + #Tournaments page + tournaments: + title: "Past Tournaments" + new: "New" + #Re-Volt car classes + classes: + rookie: "루키" + amateur: "아마추어" + advanced: "상급자" + semi-pro: "준프로" + pro: "프로" + super-pro: "슈퍼프로" + clockwork: "태엽" + random: "무작위" + #Car metrics + car-card: + speed: "속도" + kmh: "km/h" + acc: "Acc" + ms2: "ms²" + weight: "중량" + kg: "Kg" + multiplier: "배율" + #Alert message boxes + alerts: + no-permission: "You do not have permission" + #Error pages + error: + 404: + title: "Error 404" + message: "Not Found" + 422: + title: "Error 404" + message: "Illegal Error" + 500: + title: "Error 404" + message: "Internal Server Error" + #Misc strings + misc: + download: "다운로드" + search: "찾기" + and: "&" diff --git a/config/locales/lol.yml b/config/locales/lol.yml new file mode 100644 index 00000000..3c79b50a --- /dev/null +++ b/config/locales/lol.yml @@ -0,0 +1,496 @@ +lol: + #Navigation + nav: + play: "Play" + tracks: "Tracks" + cars: "Cars" + seasons: "Seasons" + league: + title: "League" + leaderboard: "Leaderboard" + point-system: "Points System" + teams: "Teams" + tournaments: "Tournaments" + downloads: "Downloads" + user: + my-profile: "My Profile" + settings: "Settings" + admin: + title: "Admin" + upload-session: "Upload Session" + create-season: "Create Season" + import-tracks: "Import Tracks" + import-cars: "Import Cars" + new-team: "New Team" + new-tournament: "New Tournament" + import-users: "Import Users" + log-out: "Log out" + login: "Login" + register: "Register" + #Sub-navigation + sub-nav: + seasons: "Seasons" + rankings: "Rankings" + ranking: "Ranking" + ranking-n: "Ranking %{n}" + session-n: "Session %{n}" + tracks: "Tracks" + cars: "Cars" + #Footer + footer: + policies: + title: "Politicals" + rules: "Rulz" + terms: "How 2 use" + privacy: "Can kat see?" + organization: + title: "organisashun" + staff: "staff lstin" + logs: "smart kitteh stooff" + bugs: "SNITCH ON MICE" + sponsor: "giev luv" + trademark: + title: "our stuff" + assets: "azzetz" + emoji: "EMOJI THE MOVIE" + social: + title: "Find uz" + discord: "Discoword" + github: "Da codin site" + crowdin: "Crowdin" + #Landing page, Splash, About + application: + splash: + description1: "The Website for the American community of Re-Volt, 1999" + description2: "Download the game and meet players from all over the Americas!" + download-button: "Downloads »" + index: + community: + title: "Community" + description: "We are an amazing Re-Volt community mainly made up of South American players, but you will also find people from all over the world playing online with us." + play-button: "Play »" + competition: + title: "Competition" + description: "In Re-Volt America we race in a seasonal format. Throughout each season, you will be able to race online daily and score points for every race you participate in!" + seasons-button: "Seasons »" + reliability: + title: "Reliabilty" + description: "Re-Volt America has been designed with sustainability and scalability in mind. Most of the features you see here you will not find in any other Re-Volt community." + about-us-button: "About Us »" + recent: + title: "Recent Sessions" + races: "%{category} Races" + team-races: "%{category} Team Races" + hosted-by: "Hosted by %{host}" + all-sessions-button: "All Sessions" + no-sessions: "N" + about: + title: "About Re-Volt America" + description: "The largest Re-Volt community you'll find in the American Continent. Join our racing sessions, compete in our seasons and meet other Re-Volt players from around the world!" + #Play page + play: + subheader: "We play daily at 00:00 UTC" + subheader2_html: "lubbis r postd at #lobby-rva" + #Downloads page + downloads: + title: "Downloads" + video: "Pending video..." + faq: + title: "If you are new to the community, we strongly recommend that you read the our Frequently Asked Questions page" + button: "Take me there!" + legacy-downloads: "Legacy Downloads" + #Rules page + rules: + title: "Rulz" + sections: + a: + title: "A. Kat Composure" + 1: "DOnt annuy kitteh" + 2_html: "Non spam plzz" + 3_html: "being a stalkin ktiteh iz bad n prohibited bu the RvA. iv u endoers it or taek part in it rVa WILLLLL taek acshun" + 4: "Respecc importnt kittheh :3" + 5: "Thonk. it not diffikult!" + b: + title: "B. Maek ur usernaem" + 1: + title: "2 play rivol u must chose a usernaem, an 2 be indxd into da iffishul rVa rankingz catz must choos a naem which abdiz 2 da followin:" + bullet1: "ur nicknaem muzrt haev frawm 1 to 16 chars!" + bullet2: "ur nicknaem can has any chars frawm A2Z (big or smol), numbrz, underscors and blanks" + bullet3: "ur nicknaem muzt be uniqueEE!! if ur not suer, u may ask da important kittehs team 2 find out if the useaernaem u want is lrdy taekn by another kitteh." + c: + title: "C. Raecs n scorin" + 1: "u mya uz kars fraem da class ov rn and below. (rookei, amatueur, avdancd etc)" + 2: + title: "Using sluw kar better for kat:" + bullet1_html: "Sluw 25%" + bullet2_html: "Vewy sluw 50%" + bullet3_html: "Slowerer kar :o 75%" + bullet4_html: "Harkur kat 100%" + bullet5_html: "Hardkore kat :o 125%" + 3_html: "Do non use fasterer karz. racecat wont get traits if race so" + 4_html: "Dont be bad racekat againSt fasterer racekats >:(" + 5_html: "NON ask RE unlez late kitten or krashd kat." + 6: "racecat may not get trait if chang name in kittenrace" + 7: + title: "u mya typ REEEEEEEEEEE durin da firzt 40 sekondz ov a raec deu 2 an extrnal nom-gaem relatd factr." + bullet1: "Only 1 RE per track will be granted. If somebody asked for RE before you did, then the host will not restart again." + 8_html: "The accumulated multiplier of any car will never exceed 4.0." + d: + title: "D. Discoword Servur" + 1_html: "u must folow n abaid 2 da discord rulez. Failur to do dat wil get chu a bath" + 2: "stya on-topicz in channulz." + 3: "do NOT harass other kittehs" + 4_html: "Non krash kats' Discoword" + e: + title: "E. BAD KAT!!" + 1_html: "bad racecat wil be spectacated, or keek'd if rul are kept borked." + 2_html: "kitteh may get kik if dont respect cat rulz. If beeg rul breakening, kat get baff." + 3: "Dun't dodge bath!" + 4: "adminkat will decide ur fate" + precisions: + 1: + term: "(!) RE (-.-):" + precision: "ask katrace to restart" + 2: + term: "(!2) Speced:" + precision: "when host cat puts racekat in spec" + #Privacy & Terms pages + privacy: + title_html: " Privacy Policy" + terms: + title_html: " Terms of Service" + #Staff page + staff: + title: "Stuuuff" + description: "The Kittehs cat hilp run Rivult Murica!" + groups: + administrator: "Kitteminitrutorz" + developer: "Divilupurrrz" + moderator: "Modekatorzzz" + organizer: "Urganizurrzzz" + #Points page + points: + title: "RVA Points System" + introduction: + title: "Introduction" + description: "In Re-Volt America, players score points for each race they get to finish. The amount of points each player scores will depend on two things: their final position in the race, and the amount of racers in that race. If a race has 10 or more racers in it, then it's considered a to be a \"big\" race." + normal-race: "Normal Race Scoring" + big-race: "Big Race Scoring" + car-ratings: + title: "Car Ratings" + description: "In Re-Volt America, cars are assigned a 'multiplier' depending on their top speed, acceleration, weight, and other characteristics that may make them better or worse for online racing. We used this multiplayer to reward racers for playing hard cars, and for regulating really good or overpowered cars as well. Here is how the formula is applied each race with different car multipliers:" + desktop-parser: + title: "RVA Desktop Points Parser" + description: "The RVA Desktop Points Parser is a Desktop application designed to calculate a results table in the RVA format from a given RVGL session log. Through this portable tool, we allow anyone to parse session results using our system locally if they so desire. Here is an example of what you'll get by parsing one of our sessions yourself:" + downloads: + title: "Download RVA Points" + #RVA strings + rva: + tracks: + all-tracks: "All Tracks" + season: "Season" + title: "The RVA Tracks" + format: + title: "Format" + short-name: + title: "Short Name" + difficulty: + title: "Difficulty" + easy: "Easy" + medium: "Medium" + hard: "Hard" + extreme: "Extreme" + length: + title: "Length" + short: "Short" + medium: "Medium" + long: "Long" + extralong: "Extra Long" + meters: "%{length} meters" + stock: + title: "Stock?" + true: "Yes" + false: "No" + featured: + description: "This track has been featured in RVA %{season}" + rotation: + title: "Re-Volt America Rotation" + collection: + title: "Re-Volt America Track Collection" + cars: + title: "The RVA Cars" + ratings-link: "Car Ratings" + features: + speed: "Speed" + acceleration: "Acceleration" + weight: "Weight" + multiplier: "Multiplier" + category: "Category" + stock: "Stock" + stock-tooltip: + tooltip: "Original Re-Volt Content" + featured-session: "This car has been featured in RVA %{season}" + class-selector: + title: "Classes" + #Assets page + assets: + title: "LOGOWOS & USAEG" + subtitle_html: "Logos maed by Hylia! u can get :DDDD" + allowed: + title: "Good kitteh usaeg" + 1: "uz our logowo 2 link to ur websiet" + 2: "Tell kitten taht u with rVA" + 3: "uz our logowo in vligz postz or articlcs aboutt rvA" + prohibited: + title: "Cat non do:" + 1: "use ur logo az ur applicashun icon" + 2: "modifierify our logo" + 3: "intagraet any ov our logoows into ur logowo" + 4: "Dont use kat art!!! >:c" + 5: "chang colour, saiz or add cat text and immagery" + contact: + title: "plz cotnact da staf kittehs" + 1: "iv u want 2 use artowork nawt includd in dis respritry" + 2: "Iv u wnat to uz dis imaegs in a vidoe/meowstream mediza" + naming: + title: "naeming projectz n stuff" + 1: "plz aviod namin ur projectz anythin impliez revolt america's endrsmet. dis also appliez 2 domaen naems." + attribution: + title: "GIMME" + 1: "othar azzetz liek cars and otherz stuffz, imaegz r maed bai memberz ov our comunity n' al rihgts belongz to da respectiev kittehs" + 2_html: "dis guidelinz wer haevely baesd on da githbu site logowos and usaeg thing her" + #Seasons page + seasons: + title: "The RVA Seasons" + explanation: + title: "What are RVA Seasons?" + description: "In RVA, we follow a seasonal format for online racing. Every Season consists of 6 Rankings, and each ranking consists of 28 Sessions, 18 of which are for Single races and the other 10 for Team races. Players score points for every race." + buttons: + current-season: "Current Season" + learn-more: "Learn More" + bottom: + title: "All Seasons" + present: "Present" + #Rankings page + rankings: + title: "Ranking %{number}" + title2: "Leaderboards" + small: "%{count} sessions played" + table: + country: "Country" + racer: "Racer" + pp: "PP" + pa: "PA" + mp: "MP" + po: "PO" + cc: "CC" + fj: "FJ" + fp: "FP" + sp: "SP" + sessions: + title: "Sessions" + no-sessions: "No sessions to display :(" + results: + no-team-results: "No team results to disiplay" + nav: + singles: "Singles" + teams: "Teams" + admin: + season: + edit: + button: "Edit Season" + delete: + button: "Delete season" + warning: + title: "Warning!" + body: "Deleting a Season will PERMANENTLY delete all its rankings, sessions, cars and tracks! This action is irreversible. " + close: "Close" + delete-season: "Delete Season" + #Devise strings + confirmation: + welcome: "Welcome %{email}" + description: "You can confirm your account email through the link below:" + email: + changed: + greeting: "Hello %{email}!" + changing: "We're contacting you to notify you that your email is being changed to %{email}." + changed: "We're contacting you to notify you that your email has been changed to %{email}" + password: + change: + greeting: "Hello %{email}!" + description: "We're contacting you to notify you that your password has been changed." + reset: + greeting: "Hello %{email}!" + advise: "Someone has requested a link to change your password. You can do this through the link below." + advise2: "If you didn't request this, please ignore this email." + advise3: "Your password won't change until you access the link above and create a new one." + account: + unlock: + greeting: "Hello %{email}!" + advise: "Your account has been locked due to an excessive number of unsuccessful sign in attempts." + instruction: "Click the link below to unlock your account:" + url: "Unlock my account" + registrations: + edit: + title: "Edit User" + email: + title: "Change Email" + new: "New email" + password: + title: "Change Password" + new-length: "New password (%{length} characters minimum)" + new: "New password" + confirm: "Confirm new password" + info: + title: "Change your info" + gender: "Gender" + nationality: + title: "Nationality" + small: "(National flag)" + placeholder: "Select nationality" + location: "Location" + occupation: "Occupation" + interests: "Interests" + public-email: "Public Email" + about: "About %{user}" + about-me: + title: "About me... (You may use html)" + title2: "About %{user}" + nothing: "Nothing here yet..." + placeholder: "Write something interesting..." + current-password: "Current password" + update: "Update" + update-admin: "Update %{user}" + #Development logs + repositories: + title: "Revisions" + small: "Latest git commits in our organization" + new-button: "New" + repository: "Repository" + table: + title: "Repository" + revision: "Revision" + author: "Author" + description: "Description" + when: "When" + #RVA results page + results: + title: "%{category} Races (Session %{number})" + version: "Version: %{version}" + connection: "Connection: %{protocol} (Server)" + mode: "Mode: %{physics}" + pickups: "Pickups: %{pickups}" + teams: "Teams: %{teams}" + download: "Download Session Log" + team: "Team" + admin: + title: "Admin Actions" + edit: + button: "Edit Session" + delete: + button: "Delete Session" + confirmation: + body: "Are you sure?" + container: + tooltips: + session-number: "Session Number" + final-position: "Final Position" + average-position: "Average Position" + obtained-points: "Obtained Points" + race-count: "Race Count" + participation-multiplier: "Participation Multiplier" + official-score: "Official Score" + accumulated-score: "Accumulated Score" + accumulated-points: "Accumulated Points" + sessions-played: "Sessions Played" + tracks: + not-found: "Track not found" + #Teams page + teams: + title: "RVA Teams" + no-teams: "No teams to display" + global-points: + title: "Global Team Points" + team: + leader: "Leader" + members: "Members" + #User profile page + users: + stats: + title: "Stats" + rank: + title: "rank" + tooltip: "Position in current ranking" + race-stats: + title: "Race Stats" + win-rate: "win rate" + sessions: "sessions" + races: "races" + win: "win" + wins: "wins" + podium: "podium" + podiums: "podiums" + session-played: "session played" + sessions-played: "sessions played" + race-played: "race played" + races-played: "races played" + session-history: + title: "Session History" + overall-stats: + title: "Overall Stats" + session-win: "session win" + session-wins: "session wins" + session-podium: "session podium" + session-podiums: "session podiums" + session-winrate: "session win rate" + obtained-point: "obtained point" + obtained-points: "obtained points" + official-score: "official score" + average-position: "average position" + participation: "participation rate" + tabs: + title: "General" + stats: "Stats" + admin: "Admin" + #Tournaments page + tournaments: + title: "Past Tournaments" + new: "New" + #Re-Volt car classes + classes: + rookie: "noob" + amateur: "Less Noob" + advanced: "Progressive" + semi-pro: "ALMOST PROFESSIONAL" + pro: "PROFESSIONAL" + super-pro: "f1 kat driver" + clockwork: "clockiesss" + random: "U nevur know" + #Car metrics + car-card: + speed: "sped" + kmh: "litres" + acc: "Accz" + ms2: "kg" + weight: "how haevy" + kg: "ms²" + multiplier: "math thing" + #Alert message boxes + alerts: + no-permission: "You do not have permission" + #Error pages + error: + 404: + title: "Error 404" + message: "Not Found" + 422: + title: "Error 404" + message: "Illegal Error" + 500: + title: "Error 404" + message: "Internal Server Error" + #Misc strings + misc: + download: "dowuload" + search: "Scratch" + and: "N" diff --git a/config/locales/pt_br.yml b/config/locales/pt_br.yml new file mode 100644 index 00000000..a67ba940 --- /dev/null +++ b/config/locales/pt_br.yml @@ -0,0 +1,496 @@ +pt_br: + #Navigation + nav: + play: "Play" + tracks: "Tracks" + cars: "Cars" + seasons: "Seasons" + league: + title: "League" + leaderboard: "Leaderboard" + point-system: "Points System" + teams: "Teams" + tournaments: "Tournaments" + downloads: "Downloads" + user: + my-profile: "My Profile" + settings: "Settings" + admin: + title: "Admin" + upload-session: "Upload Session" + create-season: "Create Season" + import-tracks: "Import Tracks" + import-cars: "Import Cars" + new-team: "New Team" + new-tournament: "New Tournament" + import-users: "Import Users" + log-out: "Log out" + login: "Login" + register: "Register" + #Sub-navigation + sub-nav: + seasons: "Seasons" + rankings: "Rankings" + ranking: "Ranking" + ranking-n: "Ranking %{n}" + session-n: "Session %{n}" + tracks: "Tracks" + cars: "Cars" + #Footer + footer: + policies: + title: "Políticas" + rules: "Regras" + terms: "Termos de Serviço" + privacy: "Política de Privacidade" + organization: + title: "Organização" + staff: "Equipe" + logs: "Logs de Desenvolvimento" + bugs: "Reportar um Bug" + sponsor: "Patrocínio" + trademark: + title: "Marca" + assets: "Recursos" + emoji: "Emojis" + social: + title: "Contato" + discord: "Discord" + github: "GitHub" + crowdin: "Crowdin" + #Landing page, Splash, About + application: + splash: + description1: "The Website for the American community of Re-Volt, 1999" + description2: "Download the game and meet players from all over the Americas!" + download-button: "Downloads »" + index: + community: + title: "Community" + description: "We are an amazing Re-Volt community mainly made up of South American players, but you will also find people from all over the world playing online with us." + play-button: "Play »" + competition: + title: "Competition" + description: "In Re-Volt America we race in a seasonal format. Throughout each season, you will be able to race online daily and score points for every race you participate in!" + seasons-button: "Seasons »" + reliability: + title: "Reliabilty" + description: "Re-Volt America has been designed with sustainability and scalability in mind. Most of the features you see here you will not find in any other Re-Volt community." + about-us-button: "About Us »" + recent: + title: "Recent Sessions" + races: "%{category} Races" + team-races: "%{category} Team Races" + hosted-by: "Hosted by %{host}" + all-sessions-button: "All Sessions" + no-sessions: "N" + about: + title: "About Re-Volt America" + description: "The largest Re-Volt community you'll find in the American Continent. Join our racing sessions, compete in our seasons and meet other Re-Volt players from around the world!" + #Play page + play: + subheader: "We play daily at 00:00 UTC" + subheader2_html: "Lobbies are posted at #lobby-rva" + #Downloads page + downloads: + title: "Downloads" + video: "Pending video..." + faq: + title: "If you are new to the community, we strongly recommend that you read the our Frequently Asked Questions page" + button: "Take me there!" + legacy-downloads: "Legacy Downloads" + #Rules page + rules: + title: "Regras" + sections: + a: + title: "A. Comportamento Geral" + 1: "Sempre manter o respeito e ser cordial com outros usuários." + 2_html: "Não \"Spame\". Você pode se promover ou promover aos outros, mas sempre respeitando os limites." + 3_html: "Doxing outros usuários é proibido. Se você participar ou incentivar isso no servidor RVA, você SERÁ penalizado." + 4: "Sempre obedecer as instruções dos administradores do servidor." + 5: "Use seu senso comum. Não é difícil!" + b: + title: "B. Criando um nome de usuário" + 1: + title: "Para jogar Re-Volt você deve escolher um nome de usuário, e para ser indexado nas classificações oficiais de RVA os jogadores devem escolher um apelido que respeite as seguintes condições:" + bullet1: "Seu apelido deve ter entre 1 e 16 caracteres." + bullet2: "Seu apelido pode conter caracteres de A-Z (maiúsculas ou minúsculas), números, sublinhados e espaços em branco." + bullet3: "Seu apelido deve ser único! Se não tiver certeza, você pode pedir à equipe de equipe para saber se o nome de usuário que você deseja já está sendo usado por outro jogador." + c: + title: "C. Corridas e Pontuação" + 1: "Você pode utilizar carros de classes equivalentes ou menor. (Novato, Amador, Avançado, etc.)" + 2: + title: "Usar um carro de classe menor lhe dará os seguintes benefícios de pontuação:" + bullet1_html: "Uma classe abaixo: 25%." + bullet2_html: "Duas classes abaixo: 50%." + bullet3_html: "Três classes abaixo: 75%." + bullet4_html: "Quatro classes abaixo: 100%." + bullet5_html: "Cinco classes abaixo: 125%." + 3_html: "NÃO utilize carros de classes maiores do que está sendo jogado. Os pontos acumulados com eles serão invalidados." + 4_html: "NÃO atirar propositalmente em oponentes que não estão disputando posição (Retardatários)." + 5_html: "NÃO pedir por \"RE\" (1) a não ser que esteja atrasado para a corrida ou tenha dificuldades técnicas. Outras razões são inválidas." + 6: "Evite mudar seu nome no meio da sessão, isso dificulta no processo de calculo das pontuações." + 7: + title: "Você pode pedir \"RE\" durante os primeiros 40 segundos de uma corrida por razões externas somente." + bullet1: "Only 1 RE per track will be granted. If somebody asked for RE before you did, then the host will not restart again." + 8_html: "The accumulated multiplier of any car will never exceed 4.0." + d: + title: "D. Servidor Discord" + 1_html: "Você deve seguir e obedecer aos Termos de Serviço do Discord. O não cumprimento poderá resultar em seu banimento." + 2: "Siga os tópicos de cada canal." + 3: "Não insultar outros usuários." + 4_html: "Qualquer mídia que cause o discord de outros usuários de travar ou de conteúdo explícito será deletado, você poderá ser penalizado." + e: + title: "E. Punições" + 1_html: "Não seguir as regras de \"Corrida & Pontuação\" pode resultar no host te forçar a spectator (2) nos nossos lobbies, ou expulso se você insistir em quebrar nossas regras." + 2_html: "Usuários podem ser expulsos do nosso servidor do Discord por violar as regras. Se a violação da regra for severa, você pode ser banido." + 3: "Evitar banimentos no Discord vai te banir eventualmente. Nós vamos descobrir." + 4: "Todas as infrações estão sujeitas a critério da equipe" + precisions: + 1: + term: "(1) RE:" + precision: "O pedido pra que o anfitrião reinicie a corrida." + 2: + term: "(2) Speced:" + precision: "Quando o anfitrião força um corredor a estar em modo espectador, neste contexto, como uma forma de punição." + #Privacy & Terms pages + privacy: + title_html: " Privacy Policy" + terms: + title_html: " Terms of Service" + #Staff page + staff: + title: "Equipe" + description: "A equipe que mantem Re-volt America rodando!" + groups: + administrator: "Administradores" + developer: "Desenvolvedores" + moderator: "Moderadores" + organizer: "Organizadores" + #Points page + points: + title: "RVA Points System" + introduction: + title: "Introduction" + description: "In Re-Volt America, players score points for each race they get to finish. The amount of points each player scores will depend on two things: their final position in the race, and the amount of racers in that race. If a race has 10 or more racers in it, then it's considered a to be a \"big\" race." + normal-race: "Normal Race Scoring" + big-race: "Big Race Scoring" + car-ratings: + title: "Car Ratings" + description: "In Re-Volt America, cars are assigned a 'multiplier' depending on their top speed, acceleration, weight, and other characteristics that may make them better or worse for online racing. We used this multiplayer to reward racers for playing hard cars, and for regulating really good or overpowered cars as well. Here is how the formula is applied each race with different car multipliers:" + desktop-parser: + title: "RVA Desktop Points Parser" + description: "The RVA Desktop Points Parser is a Desktop application designed to calculate a results table in the RVA format from a given RVGL session log. Through this portable tool, we allow anyone to parse session results using our system locally if they so desire. Here is an example of what you'll get by parsing one of our sessions yourself:" + downloads: + title: "Download RVA Points" + #RVA strings + rva: + tracks: + all-tracks: "All Tracks" + season: "Season" + title: "The RVA Tracks" + format: + title: "Format" + short-name: + title: "Short Name" + difficulty: + title: "Difficulty" + easy: "Easy" + medium: "Medium" + hard: "Hard" + extreme: "Extreme" + length: + title: "Length" + short: "Short" + medium: "Medium" + long: "Long" + extralong: "Extra Long" + meters: "%{length} meters" + stock: + title: "Stock?" + true: "Yes" + false: "No" + featured: + description: "This track has been featured in RVA %{season}" + rotation: + title: "Re-Volt America Rotation" + collection: + title: "Re-Volt America Track Collection" + cars: + title: "The RVA Cars" + ratings-link: "Car Ratings" + features: + speed: "Speed" + acceleration: "Acceleration" + weight: "Weight" + multiplier: "Multiplier" + category: "Category" + stock: "Stock" + stock-tooltip: + tooltip: "Original Re-Volt Content" + featured-session: "This car has been featured in RVA %{season}" + class-selector: + title: "Classes" + #Assets page + assets: + title: "LOGOS & UTILIZAÇÃO" + subtitle_html: "A collection of our main assets, crafted by the talented Hylia, which you can download to integrate with RVA or link back to us!" + allowed: + title: "Uso permitido" + 1: "Use o nosso logotipo pra vincular ao nosso site" + 2: "Use nosso logotipo para anunciar que você integra com a RVA" + 3: "Use nosso logo em postagens ou artigos sobre RVA" + prohibited: + title: "Uso Proibido" + 1: "Use nosso logotipo como ícone da sua aplicação" + 2: "Criar uma versão modificada de qualquer logotipo da nossa organização" + 3: "Integrar qualquer logotipo da nossa organização ao seu logotipo" + 4: "Use qualquer uma de nossas artes sem permissão" + 5: "Alterar cores, dimensões ou adicionar seu próprio texto/imagens" + contact: + title: "Por favor, entre em contato" + 1: "Se você quiser usar arte, não incluída neste repositório" + 2: "Se você quiser usar estas imagens em uma mídia de vídeo/mainstream" + naming: + title: "Nomear projetos e produtos" + 1: "Por favor, evite nomear os seus projetos que implique Re-Volt America. Isso também se aplica aos nomes de domínio." + attribution: + title: "Atribuições" + 1: "Outros recursos como imagens, efeitos sonoros/sons, emojis, etc. são feitos por membros da nossa comunidade, e todos os direitos pertencem aos seus respectivos autores" + 2_html: "These guidelines were heavily based on GitHub's Logos and Usage Guidelines." + #Seasons page + seasons: + title: "The RVA Seasons" + explanation: + title: "What are RVA Seasons?" + description: "In RVA, we follow a seasonal format for online racing. Every Season consists of 6 Rankings, and each ranking consists of 28 Sessions, 18 of which are for Single races and the other 10 for Team races. Players score points for every race." + buttons: + current-season: "Current Season" + learn-more: "Learn More" + bottom: + title: "All Seasons" + present: "Present" + #Rankings page + rankings: + title: "Ranking %{number}" + title2: "Leaderboards" + small: "%{count} sessions played" + table: + country: "Country" + racer: "Racer" + pp: "PP" + pa: "PA" + mp: "MP" + po: "PO" + cc: "CC" + fj: "FJ" + fp: "FP" + sp: "SP" + sessions: + title: "Sessions" + no-sessions: "No sessions to display :(" + results: + no-team-results: "No team results to disiplay" + nav: + singles: "Singles" + teams: "Teams" + admin: + season: + edit: + button: "Edit Season" + delete: + button: "Delete season" + warning: + title: "Warning!" + body: "Deleting a Season will PERMANENTLY delete all its rankings, sessions, cars and tracks! This action is irreversible. " + close: "Close" + delete-season: "Delete Season" + #Devise strings + confirmation: + welcome: "Welcome %{email}" + description: "You can confirm your account email through the link below:" + email: + changed: + greeting: "Hello %{email}!" + changing: "We're contacting you to notify you that your email is being changed to %{email}." + changed: "We're contacting you to notify you that your email has been changed to %{email}" + password: + change: + greeting: "Hello %{email}!" + description: "We're contacting you to notify you that your password has been changed." + reset: + greeting: "Hello %{email}!" + advise: "Someone has requested a link to change your password. You can do this through the link below." + advise2: "If you didn't request this, please ignore this email." + advise3: "Your password won't change until you access the link above and create a new one." + account: + unlock: + greeting: "Hello %{email}!" + advise: "Your account has been locked due to an excessive number of unsuccessful sign in attempts." + instruction: "Click the link below to unlock your account:" + url: "Unlock my account" + registrations: + edit: + title: "Edit User" + email: + title: "Change Email" + new: "New email" + password: + title: "Change Password" + new-length: "New password (%{length} characters minimum)" + new: "New password" + confirm: "Confirm new password" + info: + title: "Change your info" + gender: "Gender" + nationality: + title: "Nationality" + small: "(National flag)" + placeholder: "Select nationality" + location: "Location" + occupation: "Occupation" + interests: "Interests" + public-email: "Public Email" + about: "About %{user}" + about-me: + title: "About me... (You may use html)" + title2: "About %{user}" + nothing: "Nothing here yet..." + placeholder: "Write something interesting..." + current-password: "Current password" + update: "Update" + update-admin: "Update %{user}" + #Development logs + repositories: + title: "Revisions" + small: "Latest git commits in our organization" + new-button: "New" + repository: "Repository" + table: + title: "Repository" + revision: "Revision" + author: "Author" + description: "Description" + when: "When" + #RVA results page + results: + title: "%{category} Races (Session %{number})" + version: "Version: %{version}" + connection: "Connection: %{protocol} (Server)" + mode: "Mode: %{physics}" + pickups: "Pickups: %{pickups}" + teams: "Teams: %{teams}" + download: "Download Session Log" + team: "Team" + admin: + title: "Admin Actions" + edit: + button: "Edit Session" + delete: + button: "Delete Session" + confirmation: + body: "Are you sure?" + container: + tooltips: + session-number: "Session Number" + final-position: "Final Position" + average-position: "Average Position" + obtained-points: "Obtained Points" + race-count: "Race Count" + participation-multiplier: "Participation Multiplier" + official-score: "Official Score" + accumulated-score: "Accumulated Score" + accumulated-points: "Accumulated Points" + sessions-played: "Sessions Played" + tracks: + not-found: "Track not found" + #Teams page + teams: + title: "RVA Teams" + no-teams: "No teams to display" + global-points: + title: "Global Team Points" + team: + leader: "Leader" + members: "Members" + #User profile page + users: + stats: + title: "Stats" + rank: + title: "rank" + tooltip: "Position in current ranking" + race-stats: + title: "Race Stats" + win-rate: "win rate" + sessions: "sessions" + races: "races" + win: "win" + wins: "wins" + podium: "podium" + podiums: "podiums" + session-played: "session played" + sessions-played: "sessions played" + race-played: "race played" + races-played: "races played" + session-history: + title: "Session History" + overall-stats: + title: "Overall Stats" + session-win: "session win" + session-wins: "session wins" + session-podium: "session podium" + session-podiums: "session podiums" + session-winrate: "session win rate" + obtained-point: "obtained point" + obtained-points: "obtained points" + official-score: "official score" + average-position: "average position" + participation: "participation rate" + tabs: + title: "General" + stats: "Stats" + admin: "Admin" + #Tournaments page + tournaments: + title: "Past Tournaments" + new: "New" + #Re-Volt car classes + classes: + rookie: "Novato" + amateur: "Amador" + advanced: "Avançado" + semi-pro: "Semi-Pro" + pro: "Pro" + super-pro: "Super-Pro" + clockwork: "Clockwork" + random: "Aleatório" + #Car metrics + car-card: + speed: "Velocidade" + kmh: "km/h" + acc: "Aceleração" + ms2: "ms²" + weight: "Peso" + kg: "Kg" + multiplier: "Multiplicador" + #Alert message boxes + alerts: + no-permission: "You do not have permission" + #Error pages + error: + 404: + title: "Error 404" + message: "Not Found" + 422: + title: "Error 404" + message: "Illegal Error" + 500: + title: "Error 404" + message: "Internal Server Error" + #Misc strings + misc: + download: "Download" + search: "Busca" + and: "&" diff --git a/config/routes/user.rb b/config/routes/user.rb index a9831687..8faa8258 100644 --- a/config/routes/user.rb +++ b/config/routes/user.rb @@ -15,5 +15,7 @@ post '/users/import', :to => 'users#import' put '/:username', :to => 'users#edit' + put '/users/locale', :to => "users#update_locale" + get ':username', :to => 'users#show', :as => :user end diff --git a/lib/tasks/users.rake b/lib/tasks/users.rake new file mode 100644 index 00000000..d7ecd54d --- /dev/null +++ b/lib/tasks/users.rake @@ -0,0 +1,9 @@ +namespace :users do + desc "Set all users' locales to the default app locale" + task reset_locales: :environment do + User.each do |u| + u.locale = I18n.default_locale + u.update! + end + end +end