diff --git a/Gemfile b/Gemfile index 47ce2f1c..a79eeead 100644 --- a/Gemfile +++ b/Gemfile @@ -56,6 +56,9 @@ gem 'bigbluebutton-api-ruby' gem 'bootstrap', '~> 4.1.1' gem 'tabler-rubygem' +# For detecting the users preferred language. +gem 'http_accept_language' + # Use Capistrano for deployment # gem 'capistrano-rails', group: :development diff --git a/Gemfile.lock b/Gemfile.lock index 9b2ec5b9..0bdf6cc1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -83,6 +83,7 @@ GEM globalid (0.4.1) activesupport (>= 4.2.0) hashie (3.5.7) + http_accept_language (2.1.1) i18n (1.0.1) concurrent-ruby (~> 1.0) jaro_winkler (1.5.1) @@ -274,6 +275,7 @@ DEPENDENCIES dotenv-rails factory_bot_rails faker + http_accept_language jbuilder (~> 2.5) jquery-rails listen (~> 3.0.5) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 2f720083..e7a50839 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -6,16 +6,22 @@ class ApplicationController < ActionController::Base include SessionsHelper before_action :migration_error? + before_action :set_locale + + protect_from_forgery with: :exception + + MEETING_NAME_LIMIT = 90 + USER_NAME_LIMIT = 30 # Show an information page when migration fails and there is a version error. def migration_error? render :migration_error unless ENV["DB_MIGRATE_FAILED"].blank? end - protect_from_forgery with: :exception - - MEETING_NAME_LIMIT = 90 - USER_NAME_LIMIT = 30 + # Sets the appropriate locale. + def set_locale + I18n.locale = http_accept_language.language_region_compatible_from(I18n.available_locales) + end def meeting_name_limit MEETING_NAME_LIMIT @@ -58,12 +64,12 @@ class ApplicationController < ActionController::Base # Default, unconfigured meeting options. def default_meeting_options - invite_msg = "To invite someone to the meeting, send them this link:" + invite_msg = I18n.t("invite_message") { user_is_moderator: false, meeting_logout_url: request.base_url + logout_room_path(@room), meeting_recorded: true, - moderator_message: "#{invite_msg}\n\n #{request.base_url + room_path(@room)}", + moderator_message: "#{invite_msg}\n\n#{request.base_url + room_path(@room)}", } end end diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 41a623d8..1a5a5f3e 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true class SessionsController < ApplicationController - LOGIN_FAILED = "Login failed due to invalid credentials. Are you sure you typed them correctly?" - # GET /users/logout def destroy logout @@ -15,7 +13,7 @@ class SessionsController < ApplicationController if user.try(:authenticate, session_params[:password]) login(user) else - redirect_to root_path, notice: LOGIN_FAILED + redirect_to root_path, notice: I18n.t("login_failed") end end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 869df464..877cc49e 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -59,14 +59,14 @@ class UsersController < ApplicationController if errors.empty? && @user.save # Notify the user that their account has been updated. - redirect_to edit_user_path(@user), notice: "Information successfully updated." + redirect_to edit_user_path(@user), notice: I18n.t("info_update_success") else # Append custom errors. errors.each { |k, v| @user.errors.add(k, v) } render :edit end elsif @user.update_attributes(user_params) - redirect_to edit_user_path(@user), notice: "Information successfully updated." + redirect_to edit_user_path(@user), notice: I18n.t("info_update_success") else render :edit end diff --git a/app/views/application/migration_error.html.erb b/app/views/application/migration_error.html.erb index 8d90ff3d..06d9d420 100644 --- a/app/views/application/migration_error.html.erb +++ b/app/views/application/migration_error.html.erb @@ -2,14 +2,14 @@
-

Greenlight encountered a database migration error.
This may be because you haven't updated to Greenlight 2.0.

-

If you are not an administrator, please contact one.

-

We've released a new version of Greenlight, but your database isn't compatible.

+

<%= t("errors.migration_error.notice") %>

+

<%= t("errors.migration_error.contact_admin") %>

+

<%= t("errors.migration_error.version") %>

- Show me how to upgrade to 2.0! + <%= t("errors.migration_error.upgrade") %> - I'd like to stay using 1.0. + <%= t("errors.migration_error.continue") %>
diff --git a/app/views/errors/internal_error.html.erb b/app/views/errors/internal_error.html.erb index c0cd592b..ddf4c539 100644 --- a/app/views/errors/internal_error.html.erb +++ b/app/views/errors/internal_error.html.erb @@ -2,10 +2,10 @@
500
-

Oh no! Looks like something went wrong on our end.

-

The error has been logged, we'll take a look!

+

<%= t("errors.internal.message") %>

+

<%= t("errors.internal.help") %>

- Go back + <%= t("go_back") %>
diff --git a/app/views/errors/not_found.html.erb b/app/views/errors/not_found.html.erb index 5b975728..82f6b7f1 100644 --- a/app/views/errors/not_found.html.erb +++ b/app/views/errors/not_found.html.erb @@ -2,10 +2,10 @@
404
-

Whoops! Looks like we can't find that.

-

Is it possible its been removed?

+

<%= t("errors.not_found.message") %>

+

<%= t("errors.not_found.help") %>

- Go back + <%= t("go_back") %>
diff --git a/app/views/errors/unprocessable.html.erb b/app/views/errors/unprocessable.html.erb index bbe004d5..67958f07 100644 --- a/app/views/errors/unprocessable.html.erb +++ b/app/views/errors/unprocessable.html.erb @@ -2,10 +2,10 @@
422
-

Oops! Request is unprocessable.

-

Unforunately this isn't a valid request.

+

<%= t("errors.unprocessable.message") %>

+

<%= t("errors.unprocessable.help") %>

- Go back + <%= t("go_back") %>
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index b814347d..bf5a174d 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -1,7 +1,7 @@ - Greenlight + <%= t("greenlight") %> <%= csrf_meta_tags %> @@ -19,15 +19,14 @@
- <%= render "shared/header" %> <% if bigbluebutton_endpoint_default? %> <%= render "shared/error_banner" do %> -

This deployment is using a pre-configured testing server, - you should replace this with your own. - For details, see the <%= link_to "documentation", "http://docs.bigbluebutton.org/install/greenlight.html#installing-greenlight", target: "_blank" %>. +

<%= t("test_install", + href: link_to(t("docs").downcase, "http://docs.bigbluebutton.org/install/greenlight-v2.html#2-install-greenlight", target: "_blank") + ).html_safe %> <% end %> <% end %> @@ -42,7 +41,6 @@ <% if current_user %> <%= render "shared/modals/create_room_modal" %> <% end %> -

<%= render "shared/footer" %> diff --git a/app/views/main/index.html.erb b/app/views/main/index.html.erb index 57ca2794..cd25f5c3 100644 --- a/app/views/main/index.html.erb +++ b/app/views/main/index.html.erb @@ -9,11 +9,11 @@
-

Welcome to Greenlight.

-

A simple front end for your BigBlueButton Open Source Web Conferencing Server.

+

<%= t("landing.welcome") %>

+

<%= t("landing.about") %>

<%= link_to "https://youtu.be/Hso8yLzkqj8", class: "p-3", target: "_blank" do %> -

Watch a tutorial on using Greenlight

+

<%= t("landing.video") %>

<% end %>
diff --git a/app/views/rooms/join.html.erb b/app/views/rooms/join.html.erb index caa6b7ac..bff59dd1 100644 --- a/app/views/rooms/join.html.erb +++ b/app/views/rooms/join.html.erb @@ -4,11 +4,11 @@ <%= f.text_field :join_name, required: true, class: "form-control join-form", - placeholder: "Enter your name!", + placeholder: t("enter_your_name"), value: "#{current_user ? current_user.name : ''}", readonly: !current_user.nil? %> - <%= f.submit "Join", class: "btn btn-primary px-7 join-form" %> + <%= f.submit t("room.join"), class: "btn btn-primary px-7 join-form" %>
<% end %> diff --git a/app/views/rooms/show.html.erb b/app/views/rooms/show.html.erb index f48df08c..67e17c6e 100644 --- a/app/views/rooms/show.html.erb +++ b/app/views/rooms/show.html.erb @@ -7,8 +7,8 @@ <% end %> -

<%= @room.sessions %> Sessions | <%= @recordings.length %> Recordings

- +

<%= @room.sessions %> <%= t("room.sessions") %> | <%= @recordings.length %> <%= t("room.recordings") %>

+
- Copy + <%= t("copy") %>
-
<% if @is_running %> - <%= button_to "Join", room_path(@room), class: "btn btn-primary btn-block px-7 start-button float-right" %> + <%= button_to t("room.join"), room_path(@room), class: "btn btn-primary btn-block px-7 start-button float-right" %> <% else %> - <%= button_to "Start", start_room_path(@room), class: "btn btn-primary btn-block px-7 start-button float-right" %> + <%= button_to t("room.start"), start_room_path(@room), class: "btn btn-primary btn-block px-7 start-button float-right" %> <% end %>
diff --git a/app/views/rooms/wait.html.erb b/app/views/rooms/wait.html.erb index 83f01a7e..4857ab3f 100644 --- a/app/views/rooms/wait.html.erb +++ b/app/views/rooms/wait.html.erb @@ -1,8 +1,8 @@ <%= render 'shared/room_event' do %>
-

Oops! The meeting hasn't started yet.

-

You will automatically join when the meeting starts.

+

<%= t("room.wait.message") %>

+

<%= t("room.wait.auto") %>

diff --git a/app/views/shared/_features.html.erb b/app/views/shared/_features.html.erb index cd9b1f8e..02ef73b2 100644 --- a/app/views/shared/_features.html.erb +++ b/app/views/shared/_features.html.erb @@ -1,4 +1,4 @@ -

Features

+

<%= t("features.title") %>

@@ -6,19 +6,19 @@ -

Personalized Rooms

+

<%= t("features.rooms") %>

-

Recording Management

+

<%= t("features.recordings") %>

-

Custom Designs

+

<%= t("features.designs") %>

diff --git a/app/views/shared/_footer.html.erb b/app/views/shared/_footer.html.erb index 686d95ec..f3f55c2a 100644 --- a/app/views/shared/_footer.html.erb +++ b/app/views/shared/_footer.html.erb @@ -1,3 +1,3 @@ diff --git a/app/views/shared/_header.html.erb b/app/views/shared/_header.html.erb index 5720dd70..2c535060 100644 --- a/app/views/shared/_header.html.erb +++ b/app/views/shared/_header.html.erb @@ -9,7 +9,7 @@
<% if current_user %> -   Create Room +   <%= t("header.create_room") %> <% else %> - <% if Rails.configuration.omniauth_bn_launcher && !current_user %> - <%= link_to "Login", "#{Rails.configuration.relative_url_root}/auth/bn_launcher", :class => "btn btn-pill btn-outline-primary mx-2" %> + <% if Rails.configuration.omniauth_bn_launcher && !current_user %> + <%= link_to t("login"), "#{Rails.configuration.relative_url_root}/auth/bn_launcher", :class => "btn btn-pill btn-outline-primary mx-2" %> <% else %> - <%= link_to "Login", "#loginModal", :class => "btn btn-pill btn-outline-primary mx-2", "data-toggle": "modal" %> + <%= link_to t("login"), "#loginModal", :class => "btn btn-pill btn-outline-primary mx-2", "data-toggle": "modal" %> <% end %> <% if allow_user_signup? %> - <%= link_to "Signup", signup_path, :class => "btn btn-pill btn-outline-primary mx-2" %> + <%= link_to t("signup.title"), signup_path, :class => "btn btn-pill btn-outline-primary mx-2" %> <% end %> <%= render "shared/modals/login_modal" %> diff --git a/app/views/shared/_room_event.html.erb b/app/views/shared/_room_event.html.erb index 5236bc43..3108c266 100644 --- a/app/views/shared/_room_event.html.erb +++ b/app/views/shared/_room_event.html.erb @@ -2,7 +2,7 @@
-

You have been invited to join

+

<%= t("room.invited") %>

<%= @room.name %>


@@ -15,7 +15,7 @@ <% else %> <% end %> -
<%= @room.owner.name %> (Owner)
+
<%= @room.owner.name %> (<%= t("room.invited") %>)
diff --git a/app/views/shared/_sessions.html.erb b/app/views/shared/_sessions.html.erb index b218d5b7..5609f538 100644 --- a/app/views/shared/_sessions.html.erb +++ b/app/views/shared/_sessions.html.erb @@ -1,7 +1,7 @@
- <%= render "shared/components/subtitle", subtitle: (only_public ? "Public " : "") + "Recordings", search: true %> + <%= render "shared/components/subtitle", subtitle: (only_public ? t("recording.visibility.public") + " " : "") + t("room.recordings"), search: true %>
@@ -9,12 +9,12 @@ - - - - - - + + + + + + <% unless only_public %> <% end %> @@ -24,7 +24,7 @@ <% if recordings.empty? %> <% else %> @@ -39,7 +39,7 @@
NameThumbnailsLengthUsersVisibilityFormats<%= t("recording.table.name") %><%= t("recording.table.thumbnails") %><%= t("recording.table.length") %><%= t("recording.table.users") %><%= t("recording.table.visibility") %><%= t("recording.table.formats") %>
- <%= "This room has no #{(only_public ? "public " : "")} recordings." %> + <%= t("recording.no_recordings", inject: only_public ? t("recording.visibility.public").downcase + " " : "") %>
-
+
diff --git a/app/views/shared/components/_public_recording_row.html.erb b/app/views/shared/components/_public_recording_row.html.erb index 7350467f..3b272628 100644 --- a/app/views/shared/components/_public_recording_row.html.erb +++ b/app/views/shared/components/_public_recording_row.html.erb @@ -2,7 +2,7 @@
<%= recording[:name] %>
- Recorded on <%= recording_date(recording[:startTime]) %> + <%= t("recording.recorded_on", date: recording_date(recording[:startTime])) %>
@@ -15,22 +15,22 @@
- Length + <%= t("recording.table.length") %>
<%= recording_length(recording[:startTime], recording[:endTime]) %>
- Users + <%= t("recording.table.users") %>
<%= recording[:participants] %> diff --git a/app/views/shared/components/_recording_row.html.erb b/app/views/shared/components/_recording_row.html.erb index 887021ad..c1576f0e 100644 --- a/app/views/shared/components/_recording_row.html.erb +++ b/app/views/shared/components/_recording_row.html.erb @@ -2,7 +2,7 @@
<%= recording[:name] %>
- Recorded on <%= recording_date(recording[:startTime]) %> + <%= t("recording.recorded_on", date: recording_date(recording[:startTime])) %>
@@ -15,29 +15,29 @@
- Length + <%= t("recording.table.length") %>
<%= recording_length(recording[:startTime], recording[:endTime]) %>
- Users + <%= t("recording.table.users") %>
<%= recording[:participants] %> @@ -51,10 +51,10 @@ diff --git a/app/views/shared/components/_room_block.html.erb b/app/views/shared/components/_room_block.html.erb index 0a796d84..24480fea 100644 --- a/app/views/shared/components/_room_block.html.erb +++ b/app/views/shared/components/_room_block.html.erb @@ -15,9 +15,9 @@

<%= room.name %>

<% if room.sessions > 0 %> - Last session on <%= recording_date(room.last_session) %> + <%= t("room.last_session", session: recording_date(room.last_session)) %> <% else %> - This room has no sessions, yet! + <%= t("room.no_sessions") %> <% end %>
@@ -28,11 +28,11 @@
diff --git a/app/views/shared/modals/_create_room_modal.html.erb b/app/views/shared/modals/_create_room_modal.html.erb index bcf9e7c5..d5436b3d 100644 --- a/app/views/shared/modals/_create_room_modal.html.erb +++ b/app/views/shared/modals/_create_room_modal.html.erb @@ -4,7 +4,7 @@
diff --git a/app/views/shared/modals/_delete_room_modal.html.erb b/app/views/shared/modals/_delete_room_modal.html.erb index 5ce6854f..294262cd 100644 --- a/app/views/shared/modals/_delete_room_modal.html.erb +++ b/app/views/shared/modals/_delete_room_modal.html.erb @@ -4,20 +4,20 @@
diff --git a/app/views/shared/modals/_login_modal.html.erb b/app/views/shared/modals/_login_modal.html.erb index 5896d4fb..6d63cfe3 100644 --- a/app/views/shared/modals/_login_modal.html.erb +++ b/app/views/shared/modals/_login_modal.html.erb @@ -4,18 +4,22 @@ @@ -34,12 +38,12 @@ - <%= f.password_field :password, class: "form-control", placeholder: "Password", value: "" %> + <%= f.password_field :password, class: "form-control", placeholder: t("password"), value: "" %> <% end %> diff --git a/app/views/shared/settings/_account.html.erb b/app/views/shared/settings/_account.html.erb index cc9669a5..f4505da1 100644 --- a/app/views/shared/settings/_account.html.erb +++ b/app/views/shared/settings/_account.html.erb @@ -3,24 +3,24 @@
- <%= f.label "Fullname", class: "form-label" %> + <%= f.label t("settings.account.fullname"), class: "form-label" %>
- <%= f.text_field :name, class: "form-control #{form_is_invalid?(@user, :name)}", placeholder: "Fullname" %> + <%= f.text_field :name, class: "form-control #{form_is_invalid?(@user, :name)}", placeholder: t("settings.account.fullname") %>
- <%= f.label "Email", class: "form-label" %> + <%= f.label t("email"), class: "form-label" %>
- <%= f.text_field :email, class: "form-control #{form_is_invalid?(@user, :email)}", placeholder: "Email" %> + <%= f.text_field :email, class: "form-control #{form_is_invalid?(@user, :email)}", placeholder: t("email") %>

- <%= f.label "Provider", class: "form-label" %> + <%= f.label t("settings.account.provider"), class: "form-label" %> <%= f.text_field :provider, class: "form-control", readonly: "" %> - <%= f.label "Image", class: "form-label mt-5" %> + <%= f.label t("settings.account.image"), class: "form-label mt-5" %>
<% if current_user.image.blank? %> @@ -30,11 +30,11 @@ <% end %>
- <%= f.text_field :image, class: "form-control #{form_is_invalid?(@user, :image)}", placeholder: "Profile Image URL" %> + <%= f.text_field :image, class: "form-control #{form_is_invalid?(@user, :image)}", placeholder: t("settings.account.image_url") %>
<% end %> diff --git a/app/views/shared/settings/_design.html.erb b/app/views/shared/settings/_design.html.erb index 7e8afcdf..c69ea908 100644 --- a/app/views/shared/settings/_design.html.erb +++ b/app/views/shared/settings/_design.html.erb @@ -1,7 +1,7 @@
-
Customization not currently supported.
+
<%= t("settings.design.not_supported") %>
diff --git a/app/views/shared/settings/_password.html.erb b/app/views/shared/settings/_password.html.erb index 43e846e0..3dc486b2 100644 --- a/app/views/shared/settings/_password.html.erb +++ b/app/views/shared/settings/_password.html.erb @@ -3,18 +3,18 @@
- <%= f.label "Old Password", class: "form-label" %> + <%= f.label t("settings.password.old"), class: "form-label" %> <%= f.password_field :password, class: "form-control #{form_is_invalid?(@user, :password)}" %>
- <%= f.label "New Password", class: "form-label" %> + <%= f.label t("settings.password.new"), class: "form-label" %> <%= f.password_field :new_password, class: "form-control #{form_is_invalid?(@user, :password)}" %>
- <%= f.label "New Password Confirmation", class: "form-label" %> + <%= f.label t("settings.password.confirmation"), class: "form-label" %> <%= f.password_field :password_confirmation, class: "form-control #{form_is_invalid?(@user, :password_confirmation)}" %>
<% end %> diff --git a/app/views/users/edit.html.erb b/app/views/users/edit.html.erb index 27240083..11854729 100644 --- a/app/views/users/edit.html.erb +++ b/app/views/users/edit.html.erb @@ -1,26 +1,26 @@
- <%= render "shared/components/subtitle", subtitle: "Settings", search: false %> + <%= render "shared/components/subtitle", subtitle: t("settings.title"), search: false %>
<% if @user.social_uid.nil? %> <% end %>
- + <% if @user.errors.any? %> -
Errors:
+
<%= t("errors.title") %>:
    <% @user.errors.full_messages.each do |err| %>
  • <%= err %>.
  • @@ -35,13 +35,13 @@
    - <%= render "shared/settings/setting_view", setting_id: "account", setting_title: "Update your Account Info" %> + <%= render "shared/settings/setting_view", setting_id: "account", setting_title: t("settings.account.subtitle") %> <% if @user.social_uid.nil? %> - <%= render "shared/settings/setting_view", setting_id: "password", setting_title: "Change your Password" %> + <%= render "shared/settings/setting_view", setting_id: "password", setting_title: t("settings.password.subtitle") %> <% end %> - <%= render "shared/settings/setting_view", setting_id: "design", setting_title: "Customize GreenLight" %> + <%= render "shared/settings/setting_view", setting_id: "design", setting_title: t("settings.design.subtitle") %>
diff --git a/app/views/users/new.html.erb b/app/views/users/new.html.erb index 06b3168d..55f5d378 100644 --- a/app/views/users/new.html.erb +++ b/app/views/users/new.html.erb @@ -3,33 +3,33 @@
-

Create an Account

+

<%= t("signup.subtitle") %>

<%= form_for @user, url: create_user_path, method: :post do |f| %>
- <%= f.label "Fullname", class: "form-label" %> - <%= f.text_field :name, class: "form-control #{form_is_invalid?(@user, :name)}", placeholder: "Fullname" %> + <%= f.label t("settings.account.fullname"), class: "form-label" %> + <%= f.text_field :name, class: "form-control #{form_is_invalid?(@user, :name)}", placeholder: t("settings.account.fullname") %>
<%= @user.errors.full_messages_for(:name).first %>
- <%= f.label "Email", class: "form-label" %> - <%= f.text_field :email, class: "form-control #{form_is_invalid?(@user, :email)}", placeholder: "Email" %> + <%= f.label t("email"), class: "form-label" %> + <%= f.text_field :email, class: "form-control #{form_is_invalid?(@user, :email)}", placeholder: t("email") %>
<%= @user.errors.full_messages_for(:email).first %>
- <%= f.label "Password", class: "form-label" %> - <%= f.password_field :password, class: "form-control #{form_is_invalid?(@user, :password)}", placeholder: "Password" %> + <%= f.label t("password"), class: "form-label" %> + <%= f.password_field :password, class: "form-control #{form_is_invalid?(@user, :password)}", placeholder: t("password") %>
<%= @user.errors.full_messages_for(:password).first %>
- <%= f.label "Password Confirmation", class: "form-label" %> - <%= f.password_field :password_confirmation, class: "form-control #{form_is_invalid?(@user, :password_confirmation)}", placeholder: "Password Confirmation" %> + <%= f.label t("signup.password_confirm"), class: "form-label" %> + <%= f.password_field :password_confirmation, class: "form-control #{form_is_invalid?(@user, :password_confirmation)}", placeholder: t("signup.password_confirm") %>
<%= @user.errors.full_messages_for(:password_confirmation).first %>
<% end %>
diff --git a/app/views/users/terms.html.erb b/app/views/users/terms.html.erb index e00d52e2..a0220725 100644 --- a/app/views/users/terms.html.erb +++ b/app/views/users/terms.html.erb @@ -2,14 +2,14 @@
-

Terms and Conditions

+

<%= t("terms.title") %>

<%= Rails.configuration.terms %>

- <%= button_to "I accept the terms and conditions.", terms_path, params: {accept: true}, class: "btn btn-primary btn-space" %> + <%= button_to t("terms.accept"), terms_path, params: {accept: true}, class: "btn btn-primary btn-space" %>
diff --git a/config/application.rb b/config/application.rb index 3216ccd4..b82dcc0f 100644 --- a/config/application.rb +++ b/config/application.rb @@ -17,9 +17,16 @@ module Greenlight # Use custom error routes. config.exceptions_app = routes + # Configure I18n localization. + config.i18n.available_locales = %w(en) + config.i18n.default_locale = "en" + + # Check if a loadbalancer is configured. config.loadbalanced_configuration = ENV["LOADBALANCER_ENDPOINT"].present? && ENV["LOADBALANCER_SECRET"].present? + # The default callback url that bn launcher will redirect to config.gl_callback_url = ENV["GL_CALLBACK_URL"] + # Setup BigBlueButton configuration. if config.loadbalanced_configuration # Fetch credentials from a loadbalancer based on provider. diff --git a/config/locales/en.yml b/config/locales/en.yml index 06539571..0ac42048 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,23 +1,127 @@ -# Files in the config/locales directory are used for internationalization -# and are automatically loaded by Rails. If you want to use locales other -# than English, add the necessary files in this directory. -# -# To use the locales, use `I18n.t`: -# -# I18n.t 'hello' -# -# In views, this is aliased to just `t`: -# -# <%= t('hello') %> -# -# To use a different locale, set it with `I18n.locale`: -# -# I18n.locale = :es -# -# This would use the information in config/locales/es.yml. -# -# To learn more, please read the Rails Internationalization guide -# available at http://guides.rubyonrails.org/i18n.html. +# English (en) locale. en: - hello: "Hello world" + bigbluebutton: BigBlueButton + cancel: Cancel + copy: Copy + delete: Delete + docs: Documentation + email: Email + enter_your_name: Enter your name! + errors: + internal: + message: Oh no! Looks like something went wrong on our end. + help: The error has been logged, we'll take a look! + migration_error: + contact_admin: If you are not an administrator, please contact one. + continue: I'd like to stay using 1.0. + notice: > + Greenlight encountered a database migration error.
+ This may be because you haven't updated to Greenlight 2.0. + not_found: + message: Whoops! Looks like we can't find that. + help: Is it possible its been removed? + title: Errors + unprocessable: + message: Oops! Request is unprocessable. + help: Unforunately this isn't a valid request. + features: + title: Features + rooms: Personalized Rooms + recordings: Recording Management + designs: Custom Designs + footer: + powered_by: Powered by %{href}. + go_back: Go back + greenlight: Greenlight + header: + create_room: Create Room + dropdown: + help: Need help? + home: Home room + settings: Settings + signout: Sign out + info_update_success: Information successfully updated. + invite_message: "To invite someone to the meeting, send them this link:" + landing: + about: A simple front end for your BigBlueButton Open Source Web Conferencing Server. + welcome: Welcome to Greenlight. + video: Watch a tutorial on using Greenlight + upgrade: Show me how to upgrade to 2.0! + version: We've released a new version of Greenlight, but your database isn't compatible. + login: Login + login_failed: Login failed due to invalid credentials. Are you sure you typed them correctly? + modal: + create_room: + auto_join: Automatically join me into the room. + free_delete: You will be free to delete this room at any time. + name_placeholder: Enter a room name... + not_blank: Room name cannot be blank. + title: Create New Room + delete_room: + confirm: Are you sure you want to delete %{room}? + delete: I'm sure, delete this room. + keep: On second thought, I'll keep it. + warning: You will not be able to recover this room or any of its associated recordings. + login: + or: or + with: Login with %{provider} + password: Password + recording: + email: Email Recording + no_recordings: This room has no %{inject}recordings. + recorded_on: Recorded on %{date} + table: + name: Name + thumbnails: Thumbnails + length: Length + users: Users + visibility: Visibility + formats: Formats + visibility: + public: Public + unlisted: Unlisted + room: + invited: You have been inivited to join + invite_participants: Invite Participants + join: Join + last_session: Last session on %{session} + owner: Owner + no_sessions: This room has no sessions, yet! + recordings: Recordings + sessions: Sessions + settings: Room Settings + start: Start + wait: + message: Oops! The meeting hasn't started yet. + auto: You will automatically join when the meeting starts. + settings: + account: + fullname: Fullname + provider: Provider + image: Image + image_url: Profile Image URL + subtitle: Update your Account Info + title: Account + design: + not_supported: Customization not currently supported. + subtitle: Customize Greenlight + title: Design + password: + confirmation: New Password Confirmation + new: New Password + old: Old Password + subtitle: Change your Password + title: Password + title: Settings + signup: + password_confirm: Password Confirmation + subtitle: Create an Account + title: Signup + terms: + accept: I accept the terms and conditions. + title: Terms and Conditions + test_install: > + This deployment is using a pre-configured testing server, you should replace this with your own. + For details, see the %{href}. + update: Update