forked from External/greenlight
		
	Merge branch 'master' into translations_en-yml--master_de_DE
This commit is contained in:
		@@ -17,7 +17,7 @@
 | 
			
		||||
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
class AccountActivationsController < ApplicationController
 | 
			
		||||
  include Verifier
 | 
			
		||||
  include Emailer
 | 
			
		||||
 | 
			
		||||
  before_action :ensure_unauthenticated
 | 
			
		||||
  before_action :find_user
 | 
			
		||||
@@ -46,7 +46,7 @@ class AccountActivationsController < ApplicationController
 | 
			
		||||
      flash[:alert] = I18n.t("verify.already_verified")
 | 
			
		||||
    else
 | 
			
		||||
      begin
 | 
			
		||||
        @user.send_activation_email(user_verification_link)
 | 
			
		||||
        send_activation_email(@user)
 | 
			
		||||
      rescue => e
 | 
			
		||||
        logger.error "Error in email delivery: #{e}"
 | 
			
		||||
        flash[:alert] = I18n.t(params[:message], default: I18n.t("delivery_error"))
 | 
			
		||||
 
 | 
			
		||||
@@ -16,11 +16,27 @@
 | 
			
		||||
# You should have received a copy of the GNU Lesser General Public License along
 | 
			
		||||
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
module Verifier
 | 
			
		||||
module Emailer
 | 
			
		||||
  extend ActiveSupport::Concern
 | 
			
		||||
 | 
			
		||||
  # Sends account activation email.
 | 
			
		||||
  def send_activation_email(user)
 | 
			
		||||
    @user = user
 | 
			
		||||
    UserMailer.verify_email(@user, user_verification_link, logo_image, user_color).deliver
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Sends password reset email.
 | 
			
		||||
  def send_password_reset_email(user)
 | 
			
		||||
    @user = user
 | 
			
		||||
    UserMailer.password_reset(@user, reset_link, logo_image, user_color).deliver_now
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Returns the link the user needs to click to verify their account
 | 
			
		||||
  def user_verification_link
 | 
			
		||||
    request.base_url + edit_account_activation_path(token: @user.activation_token, email: @user.email)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def reset_link
 | 
			
		||||
    request.base_url + edit_password_reset_path(@user.reset_token, email: @user.email)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
@@ -17,6 +17,8 @@
 | 
			
		||||
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
class PasswordResetsController < ApplicationController
 | 
			
		||||
  include Emailer
 | 
			
		||||
 | 
			
		||||
  before_action :disable_password_reset, unless: -> { Rails.configuration.enable_email_verification }
 | 
			
		||||
  before_action :find_user,   only: [:edit, :update]
 | 
			
		||||
  before_action :valid_user, only: [:edit, :update]
 | 
			
		||||
@@ -29,7 +31,7 @@ class PasswordResetsController < ApplicationController
 | 
			
		||||
    @user = User.find_by(email: params[:password_reset][:email].downcase)
 | 
			
		||||
    if @user
 | 
			
		||||
      @user.create_reset_digest
 | 
			
		||||
      @user.send_password_reset_email(reset_link)
 | 
			
		||||
      send_password_reset_email(@user)
 | 
			
		||||
      flash[:success] = I18n.t("email_sent", email_type: t("reset_password.subtitle"))
 | 
			
		||||
      redirect_to root_path
 | 
			
		||||
    else
 | 
			
		||||
@@ -78,10 +80,6 @@ class PasswordResetsController < ApplicationController
 | 
			
		||||
    redirect_to new_password_reset_url, alert: I18n.t("expired_reset_token") if current_user.password_reset_expired?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def reset_link
 | 
			
		||||
    request.base_url + edit_password_reset_path(@user.reset_token, email: @user.email)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Confirms a valid user.
 | 
			
		||||
  def valid_user
 | 
			
		||||
    unless current_user.authenticated?(:reset, params[:id])
 | 
			
		||||
 
 | 
			
		||||
@@ -26,6 +26,7 @@ class RoomsController < ApplicationController
 | 
			
		||||
  before_action :verify_room_ownership, except: [:create, :show, :join, :logout]
 | 
			
		||||
  before_action :verify_room_owner_verified, only: [:show, :join],
 | 
			
		||||
                unless: -> { !Rails.configuration.enable_email_verification }
 | 
			
		||||
  before_action :verify_user_not_admin, only: [:show]
 | 
			
		||||
 | 
			
		||||
  # POST /
 | 
			
		||||
  def create
 | 
			
		||||
@@ -244,11 +245,15 @@ class RoomsController < ApplicationController
 | 
			
		||||
    unless @room.owner.activated?
 | 
			
		||||
      flash[:alert] = t("room.unavailable")
 | 
			
		||||
 | 
			
		||||
      if current_user
 | 
			
		||||
      if current_user && !@room.owned_by?(current_user)
 | 
			
		||||
        redirect_to current_user.main_room
 | 
			
		||||
      else
 | 
			
		||||
        redirect_to root_path
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def verify_user_not_admin
 | 
			
		||||
    redirect_to admins_path if current_user && current_user&.has_role?(:super_admin)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
 | 
			
		||||
class UsersController < ApplicationController
 | 
			
		||||
  include RecordingsHelper
 | 
			
		||||
  include Verifier
 | 
			
		||||
  include Emailer
 | 
			
		||||
 | 
			
		||||
  before_action :find_user, only: [:edit, :update, :destroy]
 | 
			
		||||
  before_action :ensure_unauthenticated, only: [:new, :create]
 | 
			
		||||
@@ -46,7 +46,7 @@ class UsersController < ApplicationController
 | 
			
		||||
 | 
			
		||||
    # Start email verification and redirect to root.
 | 
			
		||||
    begin
 | 
			
		||||
      @user.send_activation_email(user_verification_link)
 | 
			
		||||
      send_activation_email(@user)
 | 
			
		||||
    rescue => e
 | 
			
		||||
      logger.error "Error in email delivery: #{e}"
 | 
			
		||||
      flash[:alert] = I18n.t(params[:message], default: I18n.t("delivery_error"))
 | 
			
		||||
 
 | 
			
		||||
@@ -19,15 +19,19 @@
 | 
			
		||||
class UserMailer < ApplicationMailer
 | 
			
		||||
  default from: Rails.configuration.smtp_sender
 | 
			
		||||
 | 
			
		||||
  def verify_email(user, url)
 | 
			
		||||
  def verify_email(user, url, image, color)
 | 
			
		||||
    @user = user
 | 
			
		||||
    @url = url
 | 
			
		||||
    @image = image
 | 
			
		||||
    @color = color
 | 
			
		||||
    mail(to: @user.email, subject: t('landing.welcome'))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def password_reset(user, url)
 | 
			
		||||
  def password_reset(user, url, image, color)
 | 
			
		||||
    @user = user
 | 
			
		||||
    @url = url
 | 
			
		||||
    @image = image
 | 
			
		||||
    @color = color
 | 
			
		||||
    mail to: user.email, subject: t('reset_password.subtitle')
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -103,8 +103,16 @@ class User < ApplicationRecord
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.admins_search(string)
 | 
			
		||||
    active_database = Rails.configuration.database_configuration[Rails.env]["adapter"]
 | 
			
		||||
    # Postgres requires created_at to be cast to a string
 | 
			
		||||
    created_at_query = if active_database == "postgresql"
 | 
			
		||||
      "created_at::text"
 | 
			
		||||
    else
 | 
			
		||||
      "created_at"
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    search_query = "name LIKE :search OR email LIKE :search OR username LIKE :search" \
 | 
			
		||||
                   " OR created_at LIKE :search OR provider LIKE :search"
 | 
			
		||||
                   " OR #{created_at_query} LIKE :search OR provider LIKE :search"
 | 
			
		||||
    search_param = "%#{string}%"
 | 
			
		||||
    where(search_query, search: search_param)
 | 
			
		||||
  end
 | 
			
		||||
@@ -149,10 +157,6 @@ class User < ApplicationRecord
 | 
			
		||||
    email_verified
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def send_activation_email(url)
 | 
			
		||||
    UserMailer.verify_email(self, url).deliver
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Sets the password reset attributes.
 | 
			
		||||
  def create_reset_digest
 | 
			
		||||
    self.reset_token = User.new_token
 | 
			
		||||
@@ -160,11 +164,6 @@ class User < ApplicationRecord
 | 
			
		||||
    update_attribute(:reset_sent_at, Time.zone.now)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Sends password reset email.
 | 
			
		||||
  def send_password_reset_email(url)
 | 
			
		||||
    UserMailer.password_reset(self, url).deliver_now
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Returns true if the given token matches the digest.
 | 
			
		||||
  def authenticated?(attribute, token)
 | 
			
		||||
    digest = send("#{attribute}_digest")
 | 
			
		||||
 
 | 
			
		||||
@@ -68,15 +68,16 @@
 | 
			
		||||
                    <td><%= user.email && user.email != "" ? user.email : user.username%></td>
 | 
			
		||||
                    <td><%= user.provider %></td>
 | 
			
		||||
                    <td class="text-center">
 | 
			
		||||
                      <% if user.has_role? :denied %>
 | 
			
		||||
                    <% roles = user.roles().pluck(:name) %>
 | 
			
		||||
                      <% if roles.include?("denied")%>
 | 
			
		||||
                        <div class="user-role btn btn-sm btn-gray-dark">
 | 
			
		||||
                          <%= t("roles.banned") %>
 | 
			
		||||
                        </div>
 | 
			
		||||
                      <% elsif user.has_role? :super_admin %>
 | 
			
		||||
                      <% elsif roles.include?("super_admin") %>
 | 
			
		||||
                        <div class="user-role btn btn-sm btn-red">
 | 
			
		||||
                          <%= t("roles.super_admin") %>
 | 
			
		||||
                        </div>
 | 
			
		||||
                      <% elsif user.has_role? :admin %>
 | 
			
		||||
                      <% elsif roles.include?("admin") %>
 | 
			
		||||
                        <div class="user-role btn btn-sm btn-yellow">
 | 
			
		||||
                          <%= t("roles.administrator") %>
 | 
			
		||||
                        </div>
 | 
			
		||||
@@ -87,13 +88,13 @@
 | 
			
		||||
                      <% end %>
 | 
			
		||||
                    </td>
 | 
			
		||||
                    <td>
 | 
			
		||||
                      <% unless user.has_role? :super_admin %>
 | 
			
		||||
                      <% unless roles.include?("super_admin") %>
 | 
			
		||||
                        <div class="item-action dropdown">
 | 
			
		||||
                          <a href="javascript:void(0)" data-toggle="dropdown" class="icon">
 | 
			
		||||
                            <i class="fas fa-ellipsis-v px-4"></i>
 | 
			
		||||
                          </a>
 | 
			
		||||
                          <div class="dropdown-menu dropdown-menu">
 | 
			
		||||
                            <% if user.has_role? :denied %>
 | 
			
		||||
                            <% if roles.include?("denied") %>
 | 
			
		||||
                              <%= button_to admin_unban_path(user_uid: user.uid), class: "dropdown-item" do %>
 | 
			
		||||
                                <i class="dropdown-icon fas fa-lock-open"></i> <%= t("administrator.users.settings.unban") %>
 | 
			
		||||
                              <% end %>
 | 
			
		||||
@@ -105,11 +106,11 @@
 | 
			
		||||
                                <i class="dropdown-icon fas fa-user-minus"></i> <%= t("administrator.users.settings.delete") %>
 | 
			
		||||
                              </button>
 | 
			
		||||
 | 
			
		||||
                              <% if user.has_role? :admin %>
 | 
			
		||||
                              <% if roles.include?("admin") %>
 | 
			
		||||
                                <%= button_to admin_demote_path(user_uid: user.uid), class: "dropdown-item" do %>
 | 
			
		||||
                                  <i class="dropdown-icon fas fa-level-down-alt"></i> <%= t("administrator.users.settings.demote") %>
 | 
			
		||||
                                <% end %>
 | 
			
		||||
                              <% elsif user.has_role? :user %>
 | 
			
		||||
                              <% elsif roles.include?("user") %>
 | 
			
		||||
                                <%= button_to admin_promote_path(user_uid: user.uid), class: "dropdown-item" do %>
 | 
			
		||||
                                  <i class="dropdown-icon fas fa-level-up-alt"></i> <%= t("administrator.users.settings.promote") %>
 | 
			
		||||
                                <% end %>
 | 
			
		||||
 
 | 
			
		||||
@@ -50,7 +50,7 @@
 | 
			
		||||
            <% end %>
 | 
			
		||||
 | 
			
		||||
            <% if Rails.configuration.room_features.include? "mute-on-join" %>
 | 
			
		||||
              <label class="custom-switch mt-3 mb-3 w-100 text-left d-inline-block">
 | 
			
		||||
              <label class="custom-switch pl-0 mt-3 mb-3 w-100 text-left d-inline-block">
 | 
			
		||||
                <span class="custom-switch-description"><%= t("modal.room_settings.mute")%></span>
 | 
			
		||||
                <%= f.check_box :mute_on_join, class: "custom-switch-input", checked: false %>
 | 
			
		||||
                <span class="custom-switch-indicator float-right"></span>
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@
 | 
			
		||||
%>
 | 
			
		||||
  <div style="text-align:center; font-family:'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif">
 | 
			
		||||
    <div style="display:inline-block; background-color:#F5F7FB; border:1px solid #d3d3d3; padding: 25px 70px">
 | 
			
		||||
      <%= image_tag(logo_image, height: '70')%>
 | 
			
		||||
      <%= image_tag(@image, height: '70')%>
 | 
			
		||||
 | 
			
		||||
      <h1 style="margin-bottom:30px">
 | 
			
		||||
        <%= t('mailer.user.password_reset.title') %>
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
      </p>
 | 
			
		||||
 | 
			
		||||
      <a
 | 
			
		||||
        style="background: <%= user_color %>;color: #ffffff; padding: 10px 15px; box-shadow: 0 2px 4px 0 rgba(0,0,0,.25);border: 1px solid transparent;text-decoration:none;"
 | 
			
		||||
        style="background: <%= @color %>;color: #ffffff; padding: 10px 15px; box-shadow: 0 2px 4px 0 rgba(0,0,0,.25);border: 1px solid transparent;text-decoration:none;"
 | 
			
		||||
        href="<%= @url %>">
 | 
			
		||||
        <%= t('mailer.user.password_reset.reset_link') %>
 | 
			
		||||
      </a>
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
 | 
			
		||||
  <div style="text-align:center; font-family:'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif">
 | 
			
		||||
    <div style="display:inline-block; background-color:#F5F7FB; border:1px solid #d3d3d3; padding: 25px 70px">
 | 
			
		||||
      <%= image_tag(logo_image, height: '70') %>
 | 
			
		||||
      <%= image_tag(@image, height: '70') %>
 | 
			
		||||
 | 
			
		||||
      <h1 style="margin-bottom:30px">
 | 
			
		||||
        <%= t('mailer.user.verify_email.welcome', name: @user[:name]) %>
 | 
			
		||||
@@ -36,7 +36,7 @@
 | 
			
		||||
        <%= t('mailer.user.verify_email.verify') %>
 | 
			
		||||
      </p>
 | 
			
		||||
 | 
			
		||||
      <a style="background: <%= user_color %>;color: #ffffff; padding: 10px 15px; box-shadow: 0 2px 4px 0 rgba(0,0,0,.25);border: 1px solid transparent;text-decoration:none;" href="<%= @url %>">
 | 
			
		||||
      <a style="background: <%= @color %>;color: #ffffff; padding: 10px 15px; box-shadow: 0 2px 4px 0 rgba(0,0,0,.25);border: 1px solid transparent;text-decoration:none;" href="<%= @url %>">
 | 
			
		||||
        <%= t('mailer.user.verify_email.verify_link') %>
 | 
			
		||||
      </a>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -173,7 +173,7 @@ en:
 | 
			
		||||
  max_concurrent: The maximum number of concurrent sessions allowed has been reached!
 | 
			
		||||
  modal:
 | 
			
		||||
    create_room:
 | 
			
		||||
      auto_join: Automatically join me into the room.
 | 
			
		||||
      auto_join: Automatically join me into the room
 | 
			
		||||
      create: Create Room
 | 
			
		||||
      free_delete: You will be free to delete this room at any time.
 | 
			
		||||
      name_placeholder: Enter a room name...
 | 
			
		||||
 
 | 
			
		||||
@@ -21,36 +21,89 @@ es:
 | 
			
		||||
    attributes:
 | 
			
		||||
      user:
 | 
			
		||||
        accepted_terms: "Términos y condiciones"
 | 
			
		||||
  administrator:
 | 
			
		||||
    site_settings:
 | 
			
		||||
      branding:
 | 
			
		||||
        change: Cambiar imagen
 | 
			
		||||
        info: Cambiar la imagen personalizada que aparece en la esquina superior izquierda
 | 
			
		||||
        placeholder: Enlace de la imagen...
 | 
			
		||||
        title: Imagen personalizada
 | 
			
		||||
      color:
 | 
			
		||||
        info: Cambiar el color principal utilizado en todo el sitio web
 | 
			
		||||
        title: Color principal
 | 
			
		||||
      subtitle: Personalizar Greenlight
 | 
			
		||||
      title: Configuración del sitio web
 | 
			
		||||
    flash:
 | 
			
		||||
      banned: El usuario ha sido bloqueado.
 | 
			
		||||
      unbanned: El usuario ha sido desbloqueado.
 | 
			
		||||
      delete: El usuario ha sido eliminado.
 | 
			
		||||
      delete_fail: El usuario no pudo ser eliminado.
 | 
			
		||||
      demoted: El usuario ha sido degradado.
 | 
			
		||||
      promoted: El usuario ha sido promovido.
 | 
			
		||||
      unauthorized: No estas autorizado para ejecutar operaciones en este usuario.
 | 
			
		||||
    title: Configuración de organización
 | 
			
		||||
    users:
 | 
			
		||||
      edit:
 | 
			
		||||
        title: Editar detalles de usuario
 | 
			
		||||
      settings:
 | 
			
		||||
        ban: Bloquear usuario
 | 
			
		||||
        delete: Eliminar
 | 
			
		||||
        demote: Degradar usuario
 | 
			
		||||
        edit: Editar
 | 
			
		||||
        promote: Promover a administrador
 | 
			
		||||
        unban: Desbloquear usuario
 | 
			
		||||
      table:
 | 
			
		||||
        authenticator: Autenificador
 | 
			
		||||
        created: Creado
 | 
			
		||||
        name: Nombre
 | 
			
		||||
        not_found: No se encontraron usuarios con ese criterio
 | 
			
		||||
        no_users: No se encontraron usuarios
 | 
			
		||||
        role: Rol
 | 
			
		||||
        uid: Identificador de usuario
 | 
			
		||||
        username: Nombre de usuario
 | 
			
		||||
      title: Administrar usuarios
 | 
			
		||||
  bigbluebutton: BigBlueButton
 | 
			
		||||
  bigbluebutton_exception: Oh no! Ocurrió un error al iniciar la sesión
 | 
			
		||||
  bigbluebutton_exception: Oh no! Ocurrió un error al iniciar la sesión.
 | 
			
		||||
  cancel: Cancelar
 | 
			
		||||
  cookies:
 | 
			
		||||
    cookie_info: "Las cookies nos ayudan a proveer nuestros servicios. Al utilizar nuestros servicios, usted acepta nuestro uso de cookies."
 | 
			
		||||
    cookie_button: Acepto
 | 
			
		||||
  copy: Copiar
 | 
			
		||||
  default_admin: "Estas usilizando la contraseña por omisión para esta cuenta de usuario. Haz click <a href=\"%{edit_link}\">aquí </a> para cambiarla"
 | 
			
		||||
  delete: Eliminar
 | 
			
		||||
  delivery_error: Ocurrió un error durante el envío de correo electrónico. Por favor contacte un administrador.
 | 
			
		||||
  docs: Documentación
 | 
			
		||||
  email: Cuenta de correo
 | 
			
		||||
  email_sent: El mensaje fue enviado! (Verifica tu carpeta de Spam sí no lo haz recibido)
 | 
			
		||||
  email_sent: "Tu email de %{email_type} ha sido enviado. (Revisa tu carpeta de Spam sí no lo has recibido)"
 | 
			
		||||
  enter_your_name: Introduce tu nombre
 | 
			
		||||
  errors:
 | 
			
		||||
    internal:
 | 
			
		||||
      message: Oh no! Parece que algo falló de tu lado.
 | 
			
		||||
      help: "El error ha sido registrado, vamos a revisarlo."
 | 
			
		||||
    migration_error:
 | 
			
		||||
      contact_admin: "Sí tu no eres administrador, contacta a uno."
 | 
			
		||||
      contact_admin: "Sí no eres administrador, contacta a uno."
 | 
			
		||||
      continue: Me gustaría seguir utilizando la versión 1.0
 | 
			
		||||
      notice: >
 | 
			
		||||
        Greenlight encontro un error al migrar la base de datos. <br>Esto puede deberse a que no hás actualizado a Greenlight versión 2.0
 | 
			
		||||
      upgrade: Muestrame como actualizar a la verisión 2.0
 | 
			
		||||
      version: Hemos publicado una nueva version de Greenlight pero tu base de datos no es compatible.
 | 
			
		||||
    messages:
 | 
			
		||||
      blank: el valor no puede estar vacío
 | 
			
		||||
      too_short: es demasiado corta
 | 
			
		||||
      invalid: es invalida
 | 
			
		||||
      taken: ya existe
 | 
			
		||||
      accepted: debe ser aceptado
 | 
			
		||||
      confirmation: "no conicide %{attribute}"
 | 
			
		||||
      inclusion: no está incluido en la lista
 | 
			
		||||
    not_found:
 | 
			
		||||
      message: Ups! parece que no podemos encontrarle
 | 
			
		||||
      message: Oh no! parece que no podemos encontrarle.
 | 
			
		||||
      help: "¿Puede ser que haya sido eliminada?"
 | 
			
		||||
    title: Errores
 | 
			
		||||
    unauthorized:
 | 
			
		||||
      message: No tienes acceso a ésta aplicación
 | 
			
		||||
      help: "Sí tu crees que este es un error, contacta al administrador del sistema"
 | 
			
		||||
    unprocessable:
 | 
			
		||||
      message: "Ups!, La acción no puede ser procesada"
 | 
			
		||||
      message: "Oh no!, La acción no puede ser procesada."
 | 
			
		||||
      help: Desafortunadamente esta no es una acción valida
 | 
			
		||||
  expired_reset_token: El enlace para reiniciar la contraseña ha expirado
 | 
			
		||||
  features:
 | 
			
		||||
@@ -68,11 +121,12 @@ es:
 | 
			
		||||
  go_back: Atrás
 | 
			
		||||
  greenlight: Greenlight
 | 
			
		||||
  header:
 | 
			
		||||
    create_room: Crear sala
 | 
			
		||||
    all_recordings: Todas las grabaciones
 | 
			
		||||
    dropdown:
 | 
			
		||||
      account_settings: Organización
 | 
			
		||||
      help: "¿Necesitas ayuda?"
 | 
			
		||||
      home: Sala principal
 | 
			
		||||
      settings: Configuración
 | 
			
		||||
      home: Inicio
 | 
			
		||||
      settings: Perfil de usuario
 | 
			
		||||
      signout: Salir
 | 
			
		||||
  home_room: Sala principal
 | 
			
		||||
  info_update_success: La información ha sido actualizada exitósamente
 | 
			
		||||
@@ -93,10 +147,11 @@ es:
 | 
			
		||||
    video: Ve nuestro tutorial de como utilizar Greenlight
 | 
			
		||||
    upgrade: Muestrame como actualizar a versión 2.0
 | 
			
		||||
    version: Hemos publicado una nueva version de Greenlight pero tu base de datos no es compatible.
 | 
			
		||||
  language_name: Español
 | 
			
		||||
  language_name: Español (México)
 | 
			
		||||
  language_default: Por omisión (idioma del navegador)
 | 
			
		||||
  ldap_error: No se puede conectar al servidor LDAP. Compruebe la configuración de LDAP en el archivo "env" y asegúrate de que tu servidor está ejecutándose.
 | 
			
		||||
  login: Ingresar
 | 
			
		||||
  login_title: Ingresar a tu cuenta
 | 
			
		||||
  mailer:
 | 
			
		||||
    user:
 | 
			
		||||
      password_reset:
 | 
			
		||||
@@ -107,8 +162,9 @@ es:
 | 
			
		||||
        expire: Este enlace expira en dos horas
 | 
			
		||||
        ignore: Puedes ignorar este mensaje sin preocupaciones sí no haz sido tu quien solicito el cambio de contraseña.
 | 
			
		||||
      verify_email:
 | 
			
		||||
        welcome: "Bienvenido a %{bigbluebutton}, %{name}!"
 | 
			
		||||
        success: "El registro de tu cuenta %{bigbluebutton} ha sido exitoso. Tu nombre de usuario es %{email}."
 | 
			
		||||
        welcome: "Bienvenido a tu espacio personal %{name}"
 | 
			
		||||
        success: "Haciendo uso de %{bigbluebutton}, puedes crear tus propias salas para sostener reuniones y colaborar con otros."
 | 
			
		||||
        username: "Tu nombre de usuario es %{email}"
 | 
			
		||||
        verify: "Para verificar la cuenta, haz click en el botón que aparece abajo."
 | 
			
		||||
        verify_text: 'Utiliza este enlace para verificar tu cuenta: %{url}'
 | 
			
		||||
        verify_link: Verificar la cuenta de usuario
 | 
			
		||||
@@ -117,20 +173,21 @@ es:
 | 
			
		||||
  modal:
 | 
			
		||||
    create_room:
 | 
			
		||||
      auto_join: Eniame a la sala automáticamente cuando empiece ls sesión
 | 
			
		||||
      create: Crear sala
 | 
			
		||||
      free_delete: Podrás eliminar la sala en el momento que quieras
 | 
			
		||||
      name_placeholder: Introduce un nombre para la sala
 | 
			
		||||
      not_blank: El nombre de la sala no puede estar vacío
 | 
			
		||||
      title: Crear una sala nueva
 | 
			
		||||
    delete_account:
 | 
			
		||||
      confirm: "¿Estás seguro de querer eliminar tu cuenta?"
 | 
			
		||||
      delete: "Estoy seguro, elimina mi cuenta"
 | 
			
		||||
      confirm: "¿Estas seguro de querer eliminar esta cuenta de usuario?"
 | 
			
		||||
      delete: Estoy seguro de eliminar ésta cuenta
 | 
			
		||||
      keep: "De hecho, la conserbaré"
 | 
			
		||||
      warning: "Esta decisión es final, <b>No</b> podrás recuperar la información asociada"
 | 
			
		||||
    delete_room:
 | 
			
		||||
      confirm: "¿Estás seguro de querer eliminar %{room}?"
 | 
			
		||||
      delete: "Estoy seguro, elimina esta sala"
 | 
			
		||||
      keep: "Cambie de opinión, la conservaré"
 | 
			
		||||
      warning: <b>No</b> podrás recuperar la sala ni las grabaciones asociadas
 | 
			
		||||
      warning: "La recuperación de la sala o grabaciones asociadas a %{recordings_num} <b>no</b> sera posible."
 | 
			
		||||
    login:
 | 
			
		||||
      or: o
 | 
			
		||||
      with: "Ingresar con %{provider}"
 | 
			
		||||
@@ -150,6 +207,11 @@ es:
 | 
			
		||||
  name_update_success: El nombre de la sala ha sido actualizado exitósamente
 | 
			
		||||
  no_user_email_exists: "No hay ningún usuario existente con el correo electrónico especificado. Por favor, asegúrese de que lo escribió correctamente."
 | 
			
		||||
  omniauth_error: Ocurrió un error al intentar ingresar utilizando OmniAuth. Por favor intente nuevamente o contacte un administrador.
 | 
			
		||||
  pagy:
 | 
			
		||||
    nav:
 | 
			
		||||
      prev: "‹ Anterior"
 | 
			
		||||
      next: "Siguiente ›"
 | 
			
		||||
      gap: "…"
 | 
			
		||||
  password: Contraseña
 | 
			
		||||
  password_empty_notice: La contraseña no puede estar vacía
 | 
			
		||||
  password_reset_success: La contraseña ha sido cambiada
 | 
			
		||||
@@ -158,7 +220,12 @@ es:
 | 
			
		||||
    google: Google
 | 
			
		||||
    microsoft_office365: Office 365
 | 
			
		||||
    twitter: Twitter
 | 
			
		||||
  recaptcha:
 | 
			
		||||
    errors:
 | 
			
		||||
      recaptcha_unreachable: Oh no! La respuesta de tu reCAPTCHA falló. Intentalo de nuevo.
 | 
			
		||||
      verification_failed: "La verificación reCAPTCHA ha falado, intentalo nuevamente."
 | 
			
		||||
  recording:
 | 
			
		||||
    all_recordings: Todas las grabaciones
 | 
			
		||||
    email: Enviar correo electrónico con la grabación
 | 
			
		||||
    no_recordings: "Esta sala no tiene grabaciones %{inject}"
 | 
			
		||||
    no_user_recordings: No tienes grabaciones
 | 
			
		||||
@@ -182,7 +249,13 @@ es:
 | 
			
		||||
    password: Nueva contraseña
 | 
			
		||||
    confirm: Confirmación de nueva contraseña
 | 
			
		||||
    update: Actualizar contraseña
 | 
			
		||||
  roles:
 | 
			
		||||
    administrator: Administrador
 | 
			
		||||
    banned: Bloqueado
 | 
			
		||||
    super_admin: Super Administrador
 | 
			
		||||
    user: Usuario
 | 
			
		||||
  room:
 | 
			
		||||
    create_room: Crear una sala
 | 
			
		||||
    create_room_error: Ocurrió un error al crear la sala
 | 
			
		||||
    create_room_success: La sala fue creada exitósamente
 | 
			
		||||
    invited: Hás sido invitado a ingresar
 | 
			
		||||
@@ -191,7 +264,7 @@ es:
 | 
			
		||||
    last_session: "Última sesión en %{session}"
 | 
			
		||||
    owner: Dueño
 | 
			
		||||
    no_sessions: Esta sala todavía no tiene sesiones
 | 
			
		||||
    recordings: Grabaciones
 | 
			
		||||
    recordings: Grabaciones de sala
 | 
			
		||||
    sessions: Sesiones
 | 
			
		||||
    settings: Configuración de sala
 | 
			
		||||
    start: Iniciar
 | 
			
		||||
@@ -199,7 +272,7 @@ es:
 | 
			
		||||
    update_settings_error: Ocurrió un error al actualizar la configuración de la sala
 | 
			
		||||
    update_settings_success: La configuración de la sala fue actualizada exitósamente
 | 
			
		||||
    wait:
 | 
			
		||||
      message: Ups! L sesión todavía no dado inicio
 | 
			
		||||
      message: Oh no! La sesión todavía no ha comenzado.
 | 
			
		||||
      auto: Serás enviado a la sala automáticamente cuando empiece ls sesión
 | 
			
		||||
  settings:
 | 
			
		||||
    account:
 | 
			
		||||
@@ -215,17 +288,14 @@ es:
 | 
			
		||||
      disclaimer: "Sí elijes eliminar tu cuenta de usuario, <b>NO</b> podrá ser recuperada. Toda la información relacionada con tu cuenta, incluyendo configuración, salas y grabaciones, será eliminada."
 | 
			
		||||
      subtitle: Eliminar la cuenta de forma permanente
 | 
			
		||||
      title: Eliminar cuenta
 | 
			
		||||
    design:
 | 
			
		||||
      not_supported: Personalización no es soportada actualmente
 | 
			
		||||
      subtitle: Personalizar Greenlight
 | 
			
		||||
      title: Diseño
 | 
			
		||||
    password:
 | 
			
		||||
      confirmation: Confirmación de contraseña nueva
 | 
			
		||||
      new: Contraseña nueva
 | 
			
		||||
      old: Contraseña anterior
 | 
			
		||||
      subtitle: Cambiar tu contraseña
 | 
			
		||||
      title: Contraseña
 | 
			
		||||
    title: Configuración
 | 
			
		||||
    title: Perfil de usuario
 | 
			
		||||
    search: Buscar
 | 
			
		||||
  signup:
 | 
			
		||||
    password_confirm: Confirmación de contraseña
 | 
			
		||||
    subtitle: Crear una cuenta
 | 
			
		||||
@@ -247,3 +317,4 @@ es:
 | 
			
		||||
    resend: Reenviar enlace para verificación de cuenta de correo
 | 
			
		||||
    signin: "Ingresa para tener acceso a la información de tu cuenta "
 | 
			
		||||
    title: Verificar tu cuenta de correo
 | 
			
		||||
    verification: Verificación
 | 
			
		||||
 
 | 
			
		||||
@@ -21,36 +21,89 @@ es_MX:
 | 
			
		||||
    attributes:
 | 
			
		||||
      user:
 | 
			
		||||
        accepted_terms: "Términos y condiciones"
 | 
			
		||||
  administrator:
 | 
			
		||||
    site_settings:
 | 
			
		||||
      branding:
 | 
			
		||||
        change: Cambiar imagen
 | 
			
		||||
        info: Cambiar la imagen personalizada que aparece en la esquina superior izquierda
 | 
			
		||||
        placeholder: Enlace de la imagen...
 | 
			
		||||
        title: Imagen personalizada
 | 
			
		||||
      color:
 | 
			
		||||
        info: Cambiar el color principal utilizado en todo el sitio web
 | 
			
		||||
        title: Color principal
 | 
			
		||||
      subtitle: Personalizar Greenlight
 | 
			
		||||
      title: Configuración del sitio web
 | 
			
		||||
    flash:
 | 
			
		||||
      banned: El usuario ha sido bloqueado.
 | 
			
		||||
      unbanned: El usuario ha sido desbloqueado.
 | 
			
		||||
      delete: El usuario ha sido eliminado.
 | 
			
		||||
      delete_fail: El usuario no pudo ser eliminado.
 | 
			
		||||
      demoted: El usuario ha sido degradado.
 | 
			
		||||
      promoted: El usuario ha sido promovido.
 | 
			
		||||
      unauthorized: No estas autorizado para ejecutar operaciones en este usuario.
 | 
			
		||||
    title: Configuración de organización
 | 
			
		||||
    users:
 | 
			
		||||
      edit:
 | 
			
		||||
        title: Editar detalles de usuario
 | 
			
		||||
      settings:
 | 
			
		||||
        ban: Bloquear usuario
 | 
			
		||||
        delete: Eliminar
 | 
			
		||||
        demote: Degradar usuario
 | 
			
		||||
        edit: Editar
 | 
			
		||||
        promote: Promover a administrador
 | 
			
		||||
        unban: Desbloquear usuario
 | 
			
		||||
      table:
 | 
			
		||||
        authenticator: Autenificador
 | 
			
		||||
        created: Creado
 | 
			
		||||
        name: Nombre
 | 
			
		||||
        not_found: No se encontraron usuarios con ese criterio
 | 
			
		||||
        no_users: No se encontraron usuarios
 | 
			
		||||
        role: Rol
 | 
			
		||||
        uid: Identificador de usuario
 | 
			
		||||
        username: Nombre de usuario
 | 
			
		||||
      title: Administrar usuarios
 | 
			
		||||
  bigbluebutton: BigBlueButton
 | 
			
		||||
  bigbluebutton_exception: Oh no! Ocurrió un error al iniciar la sesión
 | 
			
		||||
  bigbluebutton_exception: Oh no! Ocurrió un error al iniciar la sesión.
 | 
			
		||||
  cancel: Cancelar
 | 
			
		||||
  cookies:
 | 
			
		||||
    cookie_info: "Las cookies nos ayudan a proveer nuestros servicios. Al utilizar nuestros servicios, usted acepta nuestro uso de cookies."
 | 
			
		||||
    cookie_button: Acepto
 | 
			
		||||
  copy: Copiar
 | 
			
		||||
  default_admin: "Estas usilizando la contraseña por omisión para esta cuenta de usuario. Haz click <a href=\"%{edit_link}\">aquí </a> para cambiarla"
 | 
			
		||||
  delete: Eliminar
 | 
			
		||||
  delivery_error: Ocurrió un error durante el envío de correo electrónico. Por favor contacte un administrador.
 | 
			
		||||
  docs: Documentación
 | 
			
		||||
  email: Cuenta de correo
 | 
			
		||||
  email_sent: El mensaje fue enviado! (Verifica tu carpeta de Spam sí no lo haz recibido)
 | 
			
		||||
  email_sent: "Tu email de %{email_type} ha sido enviado. (Revisa tu carpeta de Spam sí no lo has recibido)"
 | 
			
		||||
  enter_your_name: Introduce tu nombre
 | 
			
		||||
  errors:
 | 
			
		||||
    internal:
 | 
			
		||||
      message: Oh no! Parece que algo falló de tu lado.
 | 
			
		||||
      help: "El error ha sido registrado, vamos a revisarlo."
 | 
			
		||||
    migration_error:
 | 
			
		||||
      contact_admin: "Sí tu no eres administrador, contacta a uno."
 | 
			
		||||
      contact_admin: "Sí no eres administrador, contacta a uno."
 | 
			
		||||
      continue: Me gustaría seguir utilizando la versión 1.0
 | 
			
		||||
      notice: >
 | 
			
		||||
        Greenlight encontro un error al migrar la base de datos. <br>Esto puede deberse a que no hás actualizado a Greenlight versión 2.0
 | 
			
		||||
      upgrade: Muestrame como actualizar a la verisión 2.0
 | 
			
		||||
      version: Hemos publicado una nueva version de Greenlight pero tu base de datos no es compatible.
 | 
			
		||||
    messages:
 | 
			
		||||
      blank: el valor no puede estar vacío
 | 
			
		||||
      too_short: es demasiado corta
 | 
			
		||||
      invalid: es invalida
 | 
			
		||||
      taken: ya existe
 | 
			
		||||
      accepted: debe ser aceptado
 | 
			
		||||
      confirmation: "no conicide %{attribute}"
 | 
			
		||||
      inclusion: no está incluido en la lista
 | 
			
		||||
    not_found:
 | 
			
		||||
      message: Ups! parece que no podemos encontrarle
 | 
			
		||||
      message: Oh no! parece que no podemos encontrarle.
 | 
			
		||||
      help: "¿Puede ser que haya sido eliminada?"
 | 
			
		||||
    title: Errores
 | 
			
		||||
    unauthorized:
 | 
			
		||||
      message: No tienes acceso a ésta aplicación
 | 
			
		||||
      help: "Sí tu crees que este es un error, contacta al administrador del sistema"
 | 
			
		||||
    unprocessable:
 | 
			
		||||
      message: "Ups!, La acción no puede ser procesada"
 | 
			
		||||
      message: "Oh no!, La acción no puede ser procesada."
 | 
			
		||||
      help: Desafortunadamente esta no es una acción valida
 | 
			
		||||
  expired_reset_token: El enlace para reiniciar la contraseña ha expirado
 | 
			
		||||
  features:
 | 
			
		||||
@@ -68,11 +121,12 @@ es_MX:
 | 
			
		||||
  go_back: Atrás
 | 
			
		||||
  greenlight: Greenlight
 | 
			
		||||
  header:
 | 
			
		||||
    create_room: Crear sala
 | 
			
		||||
    all_recordings: Todas las grabaciones
 | 
			
		||||
    dropdown:
 | 
			
		||||
      account_settings: Organización
 | 
			
		||||
      help: "¿Necesitas ayuda?"
 | 
			
		||||
      home: Sala principal
 | 
			
		||||
      settings: Configuración
 | 
			
		||||
      home: Inicio
 | 
			
		||||
      settings: Perfil de usuario
 | 
			
		||||
      signout: Salir
 | 
			
		||||
  home_room: Sala principal
 | 
			
		||||
  info_update_success: La información ha sido actualizada exitósamente
 | 
			
		||||
@@ -97,6 +151,7 @@ es_MX:
 | 
			
		||||
  language_default: Por omisión (idioma del navegador)
 | 
			
		||||
  ldap_error: No se puede conectar al servidor LDAP. Compruebe la configuración de LDAP en el archivo "env" y asegúrate de que tu servidor está ejecutándose.
 | 
			
		||||
  login: Ingresar
 | 
			
		||||
  login_title: Ingresar a tu cuenta
 | 
			
		||||
  mailer:
 | 
			
		||||
    user:
 | 
			
		||||
      password_reset:
 | 
			
		||||
@@ -107,8 +162,9 @@ es_MX:
 | 
			
		||||
        expire: Este enlace expira en dos horas
 | 
			
		||||
        ignore: Puedes ignorar este mensaje sin preocupaciones sí no haz sido tu quien solicito el cambio de contraseña.
 | 
			
		||||
      verify_email:
 | 
			
		||||
        welcome: "Bienvenido a %{bigbluebutton}, %{name}!"
 | 
			
		||||
        success: "El registro de tu cuenta %{bigbluebutton} ha sido exitoso. Tu nombre de usuario es %{email}."
 | 
			
		||||
        welcome: "Bienvenido a tu espacio personal %{name}"
 | 
			
		||||
        success: "Haciendo uso de %{bigbluebutton}, puedes crear tus propias salas para sostener reuniones y colaborar con otros."
 | 
			
		||||
        username: "Tu nombre de usuario es %{email}"
 | 
			
		||||
        verify: "Para verificar la cuenta, haz click en el botón que aparece abajo."
 | 
			
		||||
        verify_text: 'Utiliza este enlace para verificar tu cuenta: %{url}'
 | 
			
		||||
        verify_link: Verificar la cuenta de usuario
 | 
			
		||||
@@ -117,20 +173,21 @@ es_MX:
 | 
			
		||||
  modal:
 | 
			
		||||
    create_room:
 | 
			
		||||
      auto_join: Eniame a la sala automáticamente cuando empiece ls sesión
 | 
			
		||||
      create: Crear sala
 | 
			
		||||
      free_delete: Podrás eliminar la sala en el momento que quieras
 | 
			
		||||
      name_placeholder: Introduce un nombre para la sala
 | 
			
		||||
      not_blank: El nombre de la sala no puede estar vacío
 | 
			
		||||
      title: Crear una sala nueva
 | 
			
		||||
    delete_account:
 | 
			
		||||
      confirm: "¿Estás seguro de querer eliminar tu cuenta?"
 | 
			
		||||
      delete: "Estoy seguro, elimina mi cuenta"
 | 
			
		||||
      confirm: "¿Estas seguro de querer eliminar esta cuenta de usuario?"
 | 
			
		||||
      delete: Estoy seguro de eliminar ésta cuenta
 | 
			
		||||
      keep: "De hecho, la conserbaré"
 | 
			
		||||
      warning: "Esta decisión es final, <b>No</b> podrás recuperar la información asociada"
 | 
			
		||||
    delete_room:
 | 
			
		||||
      confirm: "¿Estás seguro de querer eliminar %{room}?"
 | 
			
		||||
      delete: "Estoy seguro, elimina esta sala"
 | 
			
		||||
      keep: "Cambie de opinión, la conservaré"
 | 
			
		||||
      warning: <b>No</b> podrás recuperar la sala ni las grabaciones asociadas
 | 
			
		||||
      warning: "La recuperación de la sala o grabaciones asociadas a %{recordings_num} <b>no</b> sera posible."
 | 
			
		||||
    login:
 | 
			
		||||
      or: o
 | 
			
		||||
      with: "Ingresar con %{provider}"
 | 
			
		||||
@@ -150,6 +207,11 @@ es_MX:
 | 
			
		||||
  name_update_success: El nombre de la sala ha sido actualizado exitósamente
 | 
			
		||||
  no_user_email_exists: "No hay ningún usuario existente con el correo electrónico especificado. Por favor, asegúrese de que lo escribió correctamente."
 | 
			
		||||
  omniauth_error: Ocurrió un error al intentar ingresar utilizando OmniAuth. Por favor intente nuevamente o contacte un administrador.
 | 
			
		||||
  pagy:
 | 
			
		||||
    nav:
 | 
			
		||||
      prev: "‹ Anterior"
 | 
			
		||||
      next: "Siguiente ›"
 | 
			
		||||
      gap: "…"
 | 
			
		||||
  password: Contraseña
 | 
			
		||||
  password_empty_notice: La contraseña no puede estar vacía
 | 
			
		||||
  password_reset_success: La contraseña ha sido cambiada
 | 
			
		||||
@@ -158,7 +220,12 @@ es_MX:
 | 
			
		||||
    google: Google
 | 
			
		||||
    microsoft_office365: Office 365
 | 
			
		||||
    twitter: Twitter
 | 
			
		||||
  recaptcha:
 | 
			
		||||
    errors:
 | 
			
		||||
      recaptcha_unreachable: Oh no! La respuesta de tu reCAPTCHA falló. Intentalo de nuevo.
 | 
			
		||||
      verification_failed: "La verificación reCAPTCHA ha falado, intentalo nuevamente."
 | 
			
		||||
  recording:
 | 
			
		||||
    all_recordings: Todas las grabaciones
 | 
			
		||||
    email: Enviar correo electrónico con la grabación
 | 
			
		||||
    no_recordings: "Esta sala no tiene grabaciones %{inject}"
 | 
			
		||||
    no_user_recordings: No tienes grabaciones
 | 
			
		||||
@@ -182,7 +249,13 @@ es_MX:
 | 
			
		||||
    password: Nueva contraseña
 | 
			
		||||
    confirm: Confirmación de nueva contraseña
 | 
			
		||||
    update: Actualizar contraseña
 | 
			
		||||
  roles:
 | 
			
		||||
    administrator: Administrador
 | 
			
		||||
    banned: Bloqueado
 | 
			
		||||
    super_admin: Super Administrador
 | 
			
		||||
    user: Usuario
 | 
			
		||||
  room:
 | 
			
		||||
    create_room: Crear una sala
 | 
			
		||||
    create_room_error: Ocurrió un error al crear la sala
 | 
			
		||||
    create_room_success: La sala fue creada exitósamente
 | 
			
		||||
    invited: Hás sido invitado a ingresar
 | 
			
		||||
@@ -191,7 +264,7 @@ es_MX:
 | 
			
		||||
    last_session: "Última sesión en %{session}"
 | 
			
		||||
    owner: Dueño
 | 
			
		||||
    no_sessions: Esta sala todavía no tiene sesiones
 | 
			
		||||
    recordings: Grabaciones
 | 
			
		||||
    recordings: Grabaciones de sala
 | 
			
		||||
    sessions: Sesiones
 | 
			
		||||
    settings: Configuración de sala
 | 
			
		||||
    start: Iniciar
 | 
			
		||||
@@ -199,7 +272,7 @@ es_MX:
 | 
			
		||||
    update_settings_error: Ocurrió un error al actualizar la configuración de la sala
 | 
			
		||||
    update_settings_success: La configuración de la sala fue actualizada exitósamente
 | 
			
		||||
    wait:
 | 
			
		||||
      message: Ups! L sesión todavía no dado inicio
 | 
			
		||||
      message: Oh no! La sesión todavía no ha comenzado.
 | 
			
		||||
      auto: Serás enviado a la sala automáticamente cuando empiece ls sesión
 | 
			
		||||
  settings:
 | 
			
		||||
    account:
 | 
			
		||||
@@ -215,17 +288,14 @@ es_MX:
 | 
			
		||||
      disclaimer: "Sí elijes eliminar tu cuenta de usuario, <b>NO</b> podrá ser recuperada. Toda la información relacionada con tu cuenta, incluyendo configuración, salas y grabaciones, será eliminada."
 | 
			
		||||
      subtitle: Eliminar la cuenta de forma permanente
 | 
			
		||||
      title: Eliminar cuenta
 | 
			
		||||
    design:
 | 
			
		||||
      not_supported: Personalización no es soportada actualmente
 | 
			
		||||
      subtitle: Personalizar Greenlight
 | 
			
		||||
      title: Diseño
 | 
			
		||||
    password:
 | 
			
		||||
      confirmation: Confirmación de contraseña nueva
 | 
			
		||||
      new: Contraseña nueva
 | 
			
		||||
      old: Contraseña anterior
 | 
			
		||||
      subtitle: Cambiar tu contraseña
 | 
			
		||||
      title: Contraseña
 | 
			
		||||
    title: Configuración
 | 
			
		||||
    title: Perfil de usuario
 | 
			
		||||
    search: Buscar
 | 
			
		||||
  signup:
 | 
			
		||||
    password_confirm: Confirmación de contraseña
 | 
			
		||||
    subtitle: Crear una cuenta
 | 
			
		||||
@@ -247,3 +317,4 @@ es_MX:
 | 
			
		||||
    resend: Reenviar enlace para verificación de cuenta de correo
 | 
			
		||||
    signin: "Ingresa para tener acceso a la información de tu cuenta "
 | 
			
		||||
    title: Verificar tu cuenta de correo
 | 
			
		||||
    verification: Verificación
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@ zh_CN:
 | 
			
		||||
        info: 更改整个网站使用的主颜色
 | 
			
		||||
        title: 主颜色
 | 
			
		||||
      subtitle: 自定义Greenlight
 | 
			
		||||
      title: 站点设置
 | 
			
		||||
      title: 网站设置
 | 
			
		||||
    flash:
 | 
			
		||||
      banned: 已成功禁止用户。
 | 
			
		||||
      unbanned: 已成功取消对用户的禁止。
 | 
			
		||||
@@ -41,7 +41,7 @@ zh_CN:
 | 
			
		||||
      demoted: 用户已成功降级
 | 
			
		||||
      promoted: 用户已成功升级
 | 
			
		||||
      unauthorized: 您无权对此用户执行操作
 | 
			
		||||
    title: 组织设置
 | 
			
		||||
    title: 全局设置
 | 
			
		||||
    users:
 | 
			
		||||
      edit:
 | 
			
		||||
        title: 编辑用户详细信息
 | 
			
		||||
@@ -53,7 +53,7 @@ zh_CN:
 | 
			
		||||
        promote: 提升为管理员
 | 
			
		||||
        unban: 取消禁止用户
 | 
			
		||||
      table:
 | 
			
		||||
        authenticator: Authenticator
 | 
			
		||||
        authenticator: 认证方式
 | 
			
		||||
        created: Created
 | 
			
		||||
        name: 名字
 | 
			
		||||
        not_found: 没有与您的搜索匹配的用户
 | 
			
		||||
@@ -89,6 +89,12 @@ zh_CN:
 | 
			
		||||
      version: 我们已经发布了新版Greenlight,但您的数据库不兼容。
 | 
			
		||||
    messages:
 | 
			
		||||
      blank: 不能是空白的
 | 
			
		||||
      too_short: 太短了
 | 
			
		||||
      invalid: 无效
 | 
			
		||||
      taken: 已经有人用了
 | 
			
		||||
      accepted: 必须同意
 | 
			
		||||
      confirmation: "不匹配%{attribute}"
 | 
			
		||||
      inclusion: 列表中不存在
 | 
			
		||||
    not_found:
 | 
			
		||||
      message: 哎哟!看来我们找不到它了。
 | 
			
		||||
      help: 它有可能被移除了吗?
 | 
			
		||||
@@ -102,7 +108,7 @@ zh_CN:
 | 
			
		||||
  expired_reset_token: 密码重置链接已过期!
 | 
			
		||||
  features:
 | 
			
		||||
    title: 功能
 | 
			
		||||
    rooms: 个人房间
 | 
			
		||||
    rooms: 个人会议室
 | 
			
		||||
    recordings: 录像管理
 | 
			
		||||
    designs: 定制设计
 | 
			
		||||
    authentication: 用户认证
 | 
			
		||||
@@ -117,12 +123,12 @@ zh_CN:
 | 
			
		||||
  header:
 | 
			
		||||
    all_recordings: 所有录像
 | 
			
		||||
    dropdown:
 | 
			
		||||
      account_settings: 组织
 | 
			
		||||
      account_settings: 全局设置
 | 
			
		||||
      help: 帮助
 | 
			
		||||
      home: 大厅
 | 
			
		||||
      settings: Profile
 | 
			
		||||
      home: 首页
 | 
			
		||||
      settings: 个人设置
 | 
			
		||||
      signout: 退出
 | 
			
		||||
  home_room: 大厅
 | 
			
		||||
  home_room: 首页会议室
 | 
			
		||||
  info_update_success: 信息更新成功。
 | 
			
		||||
  invalid_user: 由于找不到用户,登录失败。您确定电子邮件帐户是正确的吗?
 | 
			
		||||
  invalid_credentials: 登录失败。输入有误?
 | 
			
		||||
@@ -136,7 +142,7 @@ zh_CN:
 | 
			
		||||
        autogenerated: '此电子邮件由BigBlueButton自动生成。'
 | 
			
		||||
        footer: 'BigBlueButton是一个开源的Web会议系统。有关BigBlueButton的更多信息,请参阅https://bigBlueButton.org/。'
 | 
			
		||||
  landing:
 | 
			
		||||
    about: "%{href} 是开源Web会议服务器BigBluebutton的简易前端。我们可以创建个人房间并主持会议,或通过链接加入其他会议。"
 | 
			
		||||
    about: "%{href} 是开源Web会议服务器BigBluebutton的简易前端。我们可以创建并主持会议,或通过链接加入其他会议。"
 | 
			
		||||
    welcome: 欢迎使用BigBlueButton
 | 
			
		||||
    video: 请看使用说明
 | 
			
		||||
    upgrade: 告诉我怎么升级到 2.0!
 | 
			
		||||
@@ -157,7 +163,7 @@ zh_CN:
 | 
			
		||||
        ignore: 如果您没有请求密码重置,安全的做法是忽略此电子邮件。
 | 
			
		||||
      verify_email:
 | 
			
		||||
        welcome: "欢迎来到您的个人空间,%{name}!"
 | 
			
		||||
        success: "使用%{bigbluebutton},您可以创建自己的会议室来主持会议并与其他人协作。"
 | 
			
		||||
        success: "使用%{bigbluebutton},您可以创建私有会议室来主持会议并与其他人协作。"
 | 
			
		||||
        username: "您的用户名是%{email}。"
 | 
			
		||||
        verify: 要验证您的帐户,只需单击下面的按钮。
 | 
			
		||||
        verify_text: '要验证您的帐户,只需点击以下链接:%{url}'
 | 
			
		||||
@@ -166,12 +172,12 @@ zh_CN:
 | 
			
		||||
  max_concurrent: 已达到允许的最大并发会话数!
 | 
			
		||||
  modal:
 | 
			
		||||
    create_room:
 | 
			
		||||
      auto_join: 自动加入此房间
 | 
			
		||||
      create: 创建房间
 | 
			
		||||
      free_delete: 任何时候都可以删除这个房间
 | 
			
		||||
      name_placeholder: 这里请输入房间名...
 | 
			
		||||
      not_blank: 房间名不能为空
 | 
			
		||||
      title: 创建新的房间
 | 
			
		||||
      auto_join: 自动加入此会议室
 | 
			
		||||
      create: 创建会议室
 | 
			
		||||
      free_delete: 任何时候都可以删除这个会议室
 | 
			
		||||
      name_placeholder: 这里请输入会议室名称...
 | 
			
		||||
      not_blank: 会议室名称不能为空
 | 
			
		||||
      title: 创建新的会议室
 | 
			
		||||
    delete_account:
 | 
			
		||||
      confirm: 确实要删除此帐户吗?
 | 
			
		||||
      delete: 我确定要删除这个帐户。
 | 
			
		||||
@@ -179,28 +185,33 @@ zh_CN:
 | 
			
		||||
      warning: 这是最终决定,您将<b>无法</b>恢复相关数据。
 | 
			
		||||
    delete_room:
 | 
			
		||||
      confirm: "确定要删除%{room}吗?"
 | 
			
		||||
      delete: 我确定删除这个房间
 | 
			
		||||
      delete: 我确定删除这个会议室
 | 
			
		||||
      keep: 我还是留着它吧
 | 
			
		||||
      warning: 您将<b>无法</b>恢复这个房间和它相关的所有录像
 | 
			
		||||
      warning: "您将 <b>不能</b> 恢复这个会议室或任何跟 %{recordings_num} 相关的录像。"
 | 
			
		||||
    login:
 | 
			
		||||
      or: 或
 | 
			
		||||
      with: "通过 %{provider}登录"
 | 
			
		||||
      forgot_password: 忘记密码?
 | 
			
		||||
    rename_recording:
 | 
			
		||||
    room_settings:
 | 
			
		||||
      title: 房间设置
 | 
			
		||||
      update: 更新房间
 | 
			
		||||
      title: 会议室设置
 | 
			
		||||
      update: 修改会议室
 | 
			
		||||
      client: 选择客户端类型
 | 
			
		||||
      mute: 用户加入时静音
 | 
			
		||||
      default: 默认
 | 
			
		||||
      html: HTML5
 | 
			
		||||
      flash: Flash
 | 
			
		||||
      footer_text: 您可以随时调整房间
 | 
			
		||||
      footer_text: 您可以随时调整会议室
 | 
			
		||||
    rename_room:
 | 
			
		||||
      name_placeholder: 这里请输入新房间名称…
 | 
			
		||||
  name_update_success: 房间名修改成功!
 | 
			
		||||
      name_placeholder: 这里请输入新会议室名称…
 | 
			
		||||
  name_update_success: 会议室名称修改成功!
 | 
			
		||||
  no_user_email_exists: 没有指定电子邮件的现有用户。请确保输入正确。
 | 
			
		||||
  omniauth_error: 与omniauth进行身份验证时出错。请再试一次,或与管理员联系!
 | 
			
		||||
  pagy:
 | 
			
		||||
    nav:
 | 
			
		||||
      prev: "‹ 上一页"
 | 
			
		||||
      next: "下一页 ›"
 | 
			
		||||
      gap: "…"
 | 
			
		||||
  password: 密码
 | 
			
		||||
  password_empty_notice: 密码不能为空。
 | 
			
		||||
  password_reset_success: 密码已重置。
 | 
			
		||||
@@ -209,10 +220,14 @@ zh_CN:
 | 
			
		||||
    google: Google
 | 
			
		||||
    microsoft_office365: Office 365
 | 
			
		||||
    twitter: Twitter
 | 
			
		||||
  recaptcha:
 | 
			
		||||
    errors:
 | 
			
		||||
      recaptcha_unreachable: 哎呀,我们未能验证您的reCAPTCHA 响应。请再试一次。
 | 
			
		||||
      verification_failed: reCAPTCHA 验证失败,请再试一次。
 | 
			
		||||
  recording:
 | 
			
		||||
    all_recordings: 所有录像
 | 
			
		||||
    email: 通过Email发送录像
 | 
			
		||||
    no_recordings: "这个房间没有%{inject}录像"
 | 
			
		||||
    no_recordings: "这个会议室没有%{inject}录像"
 | 
			
		||||
    no_user_recordings: 您当前没有录像。
 | 
			
		||||
    no_matched_recordings: "没有搜索到 %{inject} 录像"
 | 
			
		||||
    recorded_on: "录制于%{date}"
 | 
			
		||||
@@ -232,7 +247,7 @@ zh_CN:
 | 
			
		||||
  reset_password:
 | 
			
		||||
    subtitle: 重置密码
 | 
			
		||||
    password: 新密码
 | 
			
		||||
    confirm: 重复输入新密码
 | 
			
		||||
    confirm: 再次输入新密码
 | 
			
		||||
    update: 更新密码
 | 
			
		||||
  roles:
 | 
			
		||||
    administrator: 管理员
 | 
			
		||||
@@ -240,22 +255,22 @@ zh_CN:
 | 
			
		||||
    super_admin: 超级管理员
 | 
			
		||||
    user: 用户
 | 
			
		||||
  room:
 | 
			
		||||
    create_room: 创建房间
 | 
			
		||||
    create_room_error: 创建房间出错
 | 
			
		||||
    create_room_success: 房间创建成功
 | 
			
		||||
    create_room: 创建会议室
 | 
			
		||||
    create_room_error: 创建会议室出错
 | 
			
		||||
    create_room_success: 会议室创建成功
 | 
			
		||||
    invited: 您已被邀请加入
 | 
			
		||||
    invite_participants: 邀请参与者的链接
 | 
			
		||||
    join: 加入
 | 
			
		||||
    last_session: "上一次会议%{session}"
 | 
			
		||||
    owner: 主持人
 | 
			
		||||
    no_sessions: 房间从未使用!
 | 
			
		||||
    recordings: 房间录像
 | 
			
		||||
    no_sessions: 会议室从未使用!
 | 
			
		||||
    recordings: 会议录像
 | 
			
		||||
    sessions: 会议
 | 
			
		||||
    settings: 房间设置
 | 
			
		||||
    settings: 会议室设置
 | 
			
		||||
    start: 开始
 | 
			
		||||
    unavailable: 由于未验证所有者的电子邮件,此房间当前不可用。
 | 
			
		||||
    update_settings_error: 更新房间设置出错
 | 
			
		||||
    update_settings_success: 房间设置更新成功
 | 
			
		||||
    unavailable: 由于未验证所有者的电子邮件,此会议室当前不可用。
 | 
			
		||||
    update_settings_error: 修改会议室设置出错
 | 
			
		||||
    update_settings_success: 会议室设置修改成功
 | 
			
		||||
    wait:
 | 
			
		||||
      message: 哎呀!会议还没开始呢。
 | 
			
		||||
      auto: 会议开始后您将自动进入
 | 
			
		||||
@@ -265,21 +280,21 @@ zh_CN:
 | 
			
		||||
      language: 语言
 | 
			
		||||
      provider: 应用平台
 | 
			
		||||
      image: 头像
 | 
			
		||||
      image_url: 头像URL
 | 
			
		||||
      subtitle: 更新您的帐户信息
 | 
			
		||||
      image_url: 个人头像URL
 | 
			
		||||
      subtitle: 更新帐户信息
 | 
			
		||||
      title: 帐户信息
 | 
			
		||||
    delete:
 | 
			
		||||
      button: 我确定要删除我的帐户
 | 
			
		||||
      disclaimer: 删除帐户后<b>无法</b>恢复。帐户所有相关信息都会被移除,包括设置、房间和录像。
 | 
			
		||||
      disclaimer: 删除帐户后<b>无法</b>恢复。帐户所有相关信息都会被移除,包括设置、会议室和录像。
 | 
			
		||||
      subtitle: 永久删除您的帐户
 | 
			
		||||
      title: 删除帐户
 | 
			
		||||
    password:
 | 
			
		||||
      confirmation: 重复输入新密码
 | 
			
		||||
      confirmation: 再次输入新密码
 | 
			
		||||
      new: 新密码
 | 
			
		||||
      old: 旧密码
 | 
			
		||||
      subtitle: 修改密码
 | 
			
		||||
      title: 密码
 | 
			
		||||
    title: Profile
 | 
			
		||||
    title: 个人设置
 | 
			
		||||
    search: 搜索
 | 
			
		||||
  signup:
 | 
			
		||||
    password_confirm: 重复输入新密码
 | 
			
		||||
 
 | 
			
		||||
@@ -97,6 +97,15 @@ describe RoomsController, type: :controller do
 | 
			
		||||
 | 
			
		||||
      expect(assigns(:name)).to eql("")
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it "redirects to admin if user is a super_admin" do
 | 
			
		||||
      @request.session[:user_id] = @owner.id
 | 
			
		||||
      @owner.add_role :super_admin
 | 
			
		||||
 | 
			
		||||
      get :show, params: { room_uid: @owner.main_room, search: :none }
 | 
			
		||||
 | 
			
		||||
      expect(response).to redirect_to(admins_path)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe "POST #create" do
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user