Commit eeaec5db by Ngô Trung Hưng

use i18n for vietnamese & english

parent ea684fb4
Pipeline #896 canceled with stages
in 0 seconds
...@@ -33,6 +33,7 @@ gem 'breadcrumbs_on_rails' ...@@ -33,6 +33,7 @@ gem 'breadcrumbs_on_rails'
gem 'draper' gem 'draper'
gem 'devise' gem 'devise'
gem 'carrierwave' gem 'carrierwave'
gem 'rails-i18n'
# Use ActiveStorage variant # Use ActiveStorage variant
# gem 'mini_magick', '~> 4.8' # gem 'mini_magick', '~> 4.8'
......
...@@ -175,6 +175,9 @@ GEM ...@@ -175,6 +175,9 @@ GEM
nokogiri (>= 1.6) nokogiri (>= 1.6)
rails-html-sanitizer (1.3.0) rails-html-sanitizer (1.3.0)
loofah (~> 2.3) loofah (~> 2.3)
rails-i18n (5.1.3)
i18n (>= 0.7, < 2)
railties (>= 5.0, < 6)
railties (5.2.4.3) railties (5.2.4.3)
actionpack (= 5.2.4.3) actionpack (= 5.2.4.3)
activesupport (= 5.2.4.3) activesupport (= 5.2.4.3)
...@@ -266,6 +269,7 @@ DEPENDENCIES ...@@ -266,6 +269,7 @@ DEPENDENCIES
nokogiri nokogiri
puma (~> 3.11) puma (~> 3.11)
rails (~> 5.2.4, >= 5.2.4.3) rails (~> 5.2.4, >= 5.2.4.3)
rails-i18n
sass-rails (~> 5.0) sass-rails (~> 5.0)
selenium-webdriver selenium-webdriver
spring spring
......
...@@ -117,6 +117,16 @@ $main-color: #23303D; ...@@ -117,6 +117,16 @@ $main-color: #23303D;
} }
} }
.link_item_menu_header_right.custom:hover {
color: #fff;
text-decoration: none;
}
.header_img_flag {
width: 25px;
height: 15px;
}
.menu__mobile { .menu__mobile {
position: absolute; position: absolute;
height: 100vh; height: 100vh;
...@@ -163,15 +173,19 @@ $main-color: #23303D; ...@@ -163,15 +173,19 @@ $main-color: #23303D;
} }
.link_item_menu_mobile { .link_item_menu_mobile {
font-size: 17px; font-size: 17px;
color: white; color: white;
&:hover { &:hover {
text-decoration: none; text-decoration: none;
color: #999; color: #999;
} }
} }
.link_item_menu_mobile.custom:hover {
text-decoration: none;
color: #fff;
}
.padding_header_to_body { .padding_header_to_body {
padding-top: 52px; padding-top: 52px;
} }
......
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
overflow: hidden; overflow: hidden;
top: 50%; top: 50%;
left: 50%; left: 50%;
height: 300px; height: 100px;
width: 600px; width: 600px;
transform: translateY(-50%) translateX(-50%); transform: translateY(-50%) translateX(-50%);
background-color: #fff; background-color: #fff;
...@@ -82,9 +82,10 @@ ...@@ -82,9 +82,10 @@
} }
} }
.modal_login_notice_text { .modal_login_notice_text {
margin-top: 5px;
text-align: center; text-align: center;
color: #666; color: #666;
font-size: 19px; font-size: 17px;
color: rgb(60, 71, 121); color: rgb(60, 71, 121);
span { span {
...@@ -92,8 +93,8 @@ ...@@ -92,8 +93,8 @@
} }
.modal_login_header { .modal_login_header {
background-color: #eee; background-color: #eee;
height: 50px; height: 30px;
line-height: 50px; line-height: 30px;
text-align: center; text-align: center;
font-size: 18px; font-size: 18px;
color: #333; color: #333;
......
// Place all the styles related to the error controller here. // Place all the styles related to the error controller here.
// They will automatically be included in application.css. // They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/ // You can use Sass (SCSS) here: http://sass-lang.com/
@media only screen and (max-width: 768px) {
.box_content_404_img {
margin: auto;
max-width: 350px;
}
.box_content_404_text {
text-align: center;
span {
font-size: 20px !important;
font-weight: 800;
color: #99a6d5;
}
}
.box_content_404_back_to_home {
text-align: center;
a {
font-size: 18px;
color: #1a2c55;
}
}
}
.box_content_404 { .box_content_404 {
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
...@@ -20,6 +41,7 @@ ...@@ -20,6 +41,7 @@
.img_404 { .img_404 {
width: 100%; width: 100%;
} }
.box_content_404_text { .box_content_404_text {
text-align: center; text-align: center;
span { span {
......
...@@ -5,6 +5,16 @@ class ApplicationController < ActionController::Base ...@@ -5,6 +5,16 @@ class ApplicationController < ActionController::Base
protect_from_forgery with: :exception protect_from_forgery with: :exception
before_action :configure_permitted_parameters, if: :devise_controller? before_action :configure_permitted_parameters, if: :devise_controller?
before_action :set_locale
def set_locale
locale = params[:locale].to_s.strip.to_sym
I18n.locale = I18n.available_locales.include?(locale) ? locale : I18n.default_locale
end
def default_url_options
{locale: I18n.locale}
end
protected protected
......
...@@ -14,7 +14,7 @@ class JobController < ApplicationController ...@@ -14,7 +14,7 @@ class JobController < ApplicationController
@job = Job.find(params[:id]).decorate @job = Job.find(params[:id]).decorate
cities = @job.cities.first cities = @job.cities.first
industries = @job.industries.first industries = @job.industries.first
add_breadcrumb 'Trang chủ', root_path add_breadcrumb t('controller.job.detail.home'), root_path
add_breadcrumb cities.name, jobs_path(model: 'city', slug: cities.slug) add_breadcrumb cities.name, jobs_path(model: 'city', slug: cities.slug)
add_breadcrumb industries.name, jobs_path(model: 'industry', slug: industries.slug) add_breadcrumb industries.name, jobs_path(model: 'industry', slug: industries.slug)
add_breadcrumb @job.name add_breadcrumb @job.name
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<%= link_to city.name, jobs_path(model: 'city', slug: city.slug), class: 'cityjobs_link' %> <%= link_to city.name, jobs_path(model: 'city', slug: city.slug), class: 'cityjobs_link' %>
</div> </div>
<div class="box_cityjobs_count"> <div class="box_cityjobs_count">
<span><%= city.jobs.count %> Công việc</span> <span><%= "#{city.jobs.count} #{t('pages.index.job')}" %></span>
</div> </div>
</div> </div>
</div> </div>
......
<% provide(:title, 'Top thành phố') %> <% provide(:title, "#{t('pages.index.top_cities')}") %>
<%= render 'shared/scroll_top' %> <%= render 'shared/scroll_top' %>
<div class="container"> <div class="container">
<div class="box_option_location"> <div class="box_option_location">
...@@ -10,14 +10,14 @@ ...@@ -10,14 +10,14 @@
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<div class="box_option_location_header"> <div class="box_option_location_header">
<span>Bạn muốn tìm việc trong hay ngoài nước?</span> <span><%= t('pages.cities.ask') %></span>
</div> </div>
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<button class="btn_option_location btn_option_location-vn">Việt Nam</button> <button class="btn_option_location btn_option_location-vn"><%= t('pages.cities.domestic') %></button>
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<button class="btn_option_location btn_option_location-qt">Nước ngoài</button> <button class="btn_option_location btn_option_location-qt"><%= t('pages.cities.international') %></button>
</div> </div>
</div> </div>
</div> </div>
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<div class="title_list_city title_list_city_vn"> <div class="title_list_city title_list_city_vn">
<span>Các tỉnh, thành phố thuôc Việt Nam</span> <span><%= t('pages.cities.provinces_vn') %></span>
</div> </div>
</div> </div>
<div class="container"> <div class="container">
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
</div> </div>
<div class="col-lg-12"> <div class="col-lg-12">
<div class="title_list_city title_list_city_qt"> <div class="title_list_city title_list_city_qt">
<span>Quốc tế</span> <span><%= t('pages.cities.international') %></span>
</div> </div>
</div> </div>
<div class="container"> <div class="container">
......
<p>Welcome <%= @email %>!</p> <p><%= "#{t('mailer.send_register_confirmation.wellcome')} #{@email}!" %></p>
<p>By clicking on the following link, you are confirming your email address and agreeing to VeNJOB's Terms of Service.</p> <p><%= "#{t('mailer.send_register_confirmation.paragraph_1')}" %></p>
<p><%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %></p> <p><%= link_to t('mailer.send_register_confirmation.confirm'), confirmation_url(@resource, confirmation_token: @token) %></p>
<p>Hello <%= @email %>!</p> <p><%= "#{t('mailer.send_email_changed.hello')} #{@email}!"%></p>
<% if @resource.try(:unconfirmed_email?) %> <% if @resource.try(:unconfirmed_email?) %>
<p>We're contacting you to notify you that your email is being changed to <%= @resource.unconfirmed_email %>.</p> <p><%= "#{t('mailer.send_email_changed.paragraph')} #{@resource.unconfirmed_email}" %></p>
<% else %> <% else %>
<p>We're contacting you to notify you that your email has been changed to <%= @resource.email %>.</p> <p><%= "#{t('mailer.send_email_changed.paragraph')} #{ @resource.email}" %></p>
<% end %> <% end %>
<p>Hello <%= @resource.email %>!</p> <p><%= "#{t('mailer.send_email_changed.hello')} #{@resource.email}!"%></p>
<p><%= t('mailer.send_password_changed.paragraph')%></p>
<p>We're contacting you to notify you that your password has been changed.</p>
<p>Hello <%= @resource.email %>!</p> <p><%= "#{t('mailer.send_email_changed.hello')} #{@resource.email}!"%></p>
<p><%= t('mailer.send_reset_password_changed.paragraph_1') %></p>
<p>Someone has requested a link to change your password. You can do this through the link below.</p> <p><%= link_to t('mailer.send_reset_password_changed.btn_text_change_password'), edit_password_url(@resource, reset_password_token: @token) %></p>
<p><%= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @token) %></p> <p><%= t('mailer.send_reset_password_changed.paragraph_2') %></p>
<p><%= t('mailer.send_reset_password_changed.paragraph_3') %></p>
<p>If you didn't request this, please ignore this email.</p>
<p>Your password won't change until you access the link above and create a new one.</p>
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="box_form"> <div class="box_form">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<h2 style="text-align: center">Change your password?</h2><hr> <h2 style="text-align: center"><%= t('devise.title_change_password') %></h2><hr>
</div> </div>
<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| %> <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| %>
<%= f.hidden_field :reset_password_token %> <%= f.hidden_field :reset_password_token %>
...@@ -15,18 +15,18 @@ ...@@ -15,18 +15,18 @@
</div><br> </div><br>
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
<%= f.label :password, 'New password' %> <%= f.label :password, t('devise.new_password') %>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<%= f.password_field :password, autofocus: true, autocomplete: 'new-password', class: 'form-control' %> <%= f.password_field :password, autofocus: true, autocomplete: 'new-password', class: 'form-control' %>
<% if @minimum_password_length %> <% if @minimum_password_length %>
<em style="font-size: 15px; color: #666">(<%="Password have a minimum of #{@minimum_password_length} characters"%>)</em> <em style="font-size: 15px; color: #666">(<%= t('devise.notice_password', minimum_password_length: @minimum_password_length) %>)</em>
<% end %> <% end %>
</div> </div>
</div><br> </div><br>
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
<%= f.label :password_confirmation, 'Confirm new password' %><br /> <%= f.label :password_confirmation, t('devise.confirm_password') %><br />
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<%= f.password_field :password_confirmation, autocomplete: 'new-password', class: 'form-control' %> <%= f.password_field :password_confirmation, autocomplete: 'new-password', class: 'form-control' %>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="box_form"> <div class="box_form">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<h2 style="text-align: center">Forgot your password?</h2><hr> <h2 style="text-align: center"><%= t('devise.title_forget_password') %></h2><hr>
</div> </div>
<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %> <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %>
<div class="row"> <div class="row">
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<div class="row"> <div class="row">
<div class="col-lg-6"></div> <div class="col-lg-6"></div>
<div class="col-lg-6"> <div class="col-lg-6">
<%= f.submit "Send me reset password instructions", class: 'btn btn-info btn-info-custom' %> <%= f.submit t('devise.btn_text_send_me_reset_password'), class: 'btn btn-info btn-info-custom' %>
</div> </div>
</div><br> </div><br>
<% end %> <% end %>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="box_form"> <div class="box_form">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<h2 style="text-align: center">Edit my info</h2><hr> <h2 style="text-align: center"><%= t('devise.title_edit_info') %></h2><hr>
</div> </div>
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %> <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
<div class="row"> <div class="row">
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<%= render 'devise/shared/error_messages', resource: resource %> <%= render 'devise/shared/error_messages', resource: resource %>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<%= f.label :name %> <%= f.label :name, t('pages.mypage.name') %>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<%= f.text_field :name, autofocus: true, class: 'form-control' %> <%= f.text_field :name, autofocus: true, class: 'form-control' %>
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
</div><br> </div><br>
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
<%= f.label :cv %> <%= f.label :cv, t('pages.mypage.cv') %>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<%= f.file_field :cv, autofocus: true, class: 'pppp' %> <%= f.file_field :cv, autofocus: true, class: 'pppp' %>
...@@ -40,19 +40,19 @@ ...@@ -40,19 +40,19 @@
</div><br> </div><br>
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
<%= f.label :password %> <%= f.label :password, t('devise.pass_word') %>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<%= f.password_field :password, autocomplete: 'new-password', class: 'form-control' %> <%= f.password_field :password, autocomplete: 'new-password', class: 'form-control' %>
<i style="font-size: 15px; color: #666">Leave blank if you don't want to change it</i> <i style="font-size: 15px; color: #666"><%= t('devise.notice_blank_password') %></i>
<% if @minimum_password_length %> <% if @minimum_password_length %>
<em style="font-size: 15px; color: #666">(<%="Password have a minimum of #{@minimum_password_length} characters"%>)</em> <em style="font-size: 15px; color: #666">(<%= t('devise.notice_password', minimum_password_length: @minimum_password_length)%>)</em>
<% end %> <% end %>
</div> </div>
</div><br> </div><br>
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
<%= f.label :password_confirm %> <%= f.label :password_confirm, t('devise.confirm_password') %>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<%= f.password_field :password_confirmation, autocomplete: 'new-password', class: 'form-control' %> <%= f.password_field :password_confirmation, autocomplete: 'new-password', class: 'form-control' %>
...@@ -60,23 +60,23 @@ ...@@ -60,23 +60,23 @@
</div><br> </div><br>
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
<%= f.label :current_password %> <%= f.label :current_password, t('devise.current_password') %>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<%= f.password_field :current_password, autocomplete: 'current-password', class: 'form-control' %> <%= f.password_field :current_password, autocomplete: 'current-password', class: 'form-control' %>
<i style="font-size: 15px; color: #666">We need your current password to confirm your changes</i> <i style="font-size: 15px; color: #666"><%= t('devise.notice_current_password') %></i>
</div> </div>
</div><br> </div><br>
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
<%= link_to 'Back', :back, class: 'btn btn-warning btn-info-custom' %> <%= link_to t('devise.back'), :back, class: 'btn btn-warning btn-info-custom' %>
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<%= f.submit 'Update', class: 'btn btn-info btn-info-custom' %> <%= f.submit t('devise.update'), class: 'btn btn-info btn-info-custom' %>
</div> </div>
<% end %> <% end %>
<div class="col-md-4"> <div class="col-md-4">
<%= button_to 'Cancel my account', registration_path(resource_name), class: 'btn btn-danger btn-info-custom', data: { confirm: "Are you sure?" }, method: :delete %> <%= button_to t('devise.cancel_my_acc'), registration_path(resource_name), class: 'btn btn-danger btn-info-custom', data: { confirm: "Are you sure?" }, method: :delete %>
</div> </div>
</div> </div>
</div> </div>
......
<% provide(:title, 'Register') %> <% provide(:title, "#{t('devise.title_register')}") %>
<div class="container"> <div class="container">
<div class="box_form"> <div class="box_form">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<h2 style="text-align: center">Registration</h2><hr> <h2 style="text-align: center"><%= t('devise.title_register') %></h2><hr>
</div> </div>
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<div class="row"> <div class="row">
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<%= render 'devise/shared/error_messages', resource: resource %> <%= render 'devise/shared/error_messages', resource: resource %>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<%= f.label :name %> <%= f.label :name, t('pages.mypage.name') %>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<%= f.text_field :name, autofocus: true, class: 'form-control' %> <%= f.text_field :name, autofocus: true, class: 'form-control' %>
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
</div><br> </div><br>
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
<%= f.label :cv %> <%= f.label :cv, t('pages.mypage.cv') %>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<%= f.file_field :cv, autofocus: true, class: 'pppp' %> <%= f.file_field :cv, autofocus: true, class: 'pppp' %>
...@@ -36,18 +36,18 @@ ...@@ -36,18 +36,18 @@
</div><br> </div><br>
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
<%= f.label :password %> <%= f.label :password, t('devise.pass_word') %>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<%= f.password_field :password, autocomplete: 'new-password', class: 'form-control' %> <%= f.password_field :password, autocomplete: 'new-password', class: 'form-control' %>
<% if @minimum_password_length %> <% if @minimum_password_length %>
<em style="font-size: 15px;">(<%="Password have a minimum of #{@minimum_password_length} characters"%>)</em> <em style="font-size: 15px;">(<%= t('devise.notice_password',minimum_password_length: @minimum_password_length) %>)</em>
<% end %> <% end %>
</div> </div>
</div><br> </div><br>
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
<%= f.label :password_confirm %> <%= f.label :password_confirm, t('devise.confirm_password') %>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<%= f.password_field :password_confirmation, autocomplete: 'new-password', class: 'form-control' %> <%= f.password_field :password_confirmation, autocomplete: 'new-password', class: 'form-control' %>
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
<div class="row"> <div class="row">
<div class="col-md-8"></div> <div class="col-md-8"></div>
<div class="col-md-4"> <div class="col-md-4">
<%= f.submit 'Sign up', class: 'btn btn-info btn-info-custom' %> <%= f.submit t('devise.title_register'), class: 'btn btn-info btn-info-custom' %>
</div> </div>
</div> </div>
<% end %> <% end %>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="box_form"> <div class="box_form">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<h2 style="text-align: center">Login</h2><hr> <h2 style="text-align: center"><%= t('devise.title_signin') %></h2><hr>
</div> </div>
<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %> <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
<div class="row"> <div class="row">
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
</div><br> </div><br>
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
<%= f.label :password %> <%= f.label :password, t('devise.pass_word') %>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<%= f.password_field :password, autocomplete: 'new-password', class: 'form-control' %> <%= f.password_field :password, autocomplete: 'new-password', class: 'form-control' %>
...@@ -35,14 +35,14 @@ ...@@ -35,14 +35,14 @@
<% if devise_mapping.rememberable? %> <% if devise_mapping.rememberable? %>
<div class="field"> <div class="field">
<%= f.check_box :remember_me %> <%= f.check_box :remember_me %>
<%= f.label :remember_me %> <%= f.label :remember_me, t('devise.remember_me') %>
</div> </div>
<% end %> <% end %>
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<%= f.submit 'Login', class: 'btn btn-info btn-info-custom' %> <%= f.submit t('devise.title_signin'), class: 'btn btn-info btn-info-custom' %>
<div style="text-align: center; margin-top: 10px"> <div style="text-align: center; margin-top: 10px">
<%= link_to 'Forgot your password?', new_password_path(resource_name), class: 'link_ct' %> <%= link_to t('devise.ask_forget_password'), new_password_path(resource_name), class: 'link_ct' %>
</div> </div>
</div> </div>
</div><br> </div><br>
......
...@@ -8,14 +8,12 @@ ...@@ -8,14 +8,12 @@
</div><br> </div><br>
<div class="col-lg-12"> <div class="col-lg-12">
<div class="box_content_404_text"> <div class="box_content_404_text">
<span>Có vài lỗi trong đường dẫn này<br> <span><%= "#{t('pages.errors.error_500_1')}<br>#{t('pages.errors.error_500_2')}".html_safe %></span>
Đừng lo lắng! Xin lỗi bạn vì sự bất tiện trên
</span>
</div> </div>
</div> </div>
<div class="col-lg-12"> <div class="col-lg-12">
<div class="box_content_404_back_to_home"> <div class="box_content_404_back_to_home">
<%= link_to 'Cùng mình quay lại trang chủ nhé', root_path %> <%= link_to t('pages.errors.back_to_home'), root_path %>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -8,12 +8,12 @@ ...@@ -8,12 +8,12 @@
</div><br> </div><br>
<div class="col-lg-12"> <div class="col-lg-12">
<div class="box_content_404_text"> <div class="box_content_404_text">
<span>Chúng tôi không tìm thấy trang bạn bạn yêu cầu!</span> <span><%= t('pages.errors.error_404') %></span>
</div> </div>
</div> </div>
<div class="col-lg-12"> <div class="col-lg-12">
<div class="box_content_404_back_to_home"> <div class="box_content_404_back_to_home">
<%= link_to 'Cùng mình quay lại trang chủ nhé', root_path %> <%= link_to t('pages.errors.back_to_home'), root_path %>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -4,10 +4,10 @@ ...@@ -4,10 +4,10 @@
<div class="col-xs-12"> <div class="col-xs-12">
<div class = "slogan"> <div class = "slogan">
<h2 class = "slogan_text"> <h2 class = "slogan_text">
NỀN TẢNG TUYỂN DỤNG NHÂN SỰ VENJOB <%= t('pages.banner.slogan') %>
</h2> </h2>
<h5 class = "slogan_text_h5"> <h5 class = "slogan_text_h5">
NỀN TẢNG TUYỂN DỤNG NHÂN SỰ VENJOB <%= t('pages.banner.slogan') %>
</h5> </h5>
</div> </div>
</div> </div>
...@@ -18,31 +18,31 @@ ...@@ -18,31 +18,31 @@
<div class="search_scaffold"> <div class="search_scaffold">
<div class = "total_job"> <div class = "total_job">
<% if @job_count.blank? %> <% if @job_count.blank? %>
<h4 class="show_total_job">Khám phá ngay những việc làm tốt nhất trên VenJob</h4> <h4 class="show_total_job"><%= t('pages.banner.slogan_2') %></h4>
<% else %> <% else %>
<h4 class="show_total_job">Khám phá ngay <b><%= @job_count%></b> việc làm tốt nhất trên VenJob</h4> <h4 class="show_total_job"><%= t('pages.banner.slogan_3', job_count: @job_count) %></h4>
<% end %> <% end %>
</div> </div>
<div class="filter_box"> <div class="filter_box">
<div class="search_input"> <div class="search_input">
<input type="search" name="" id="" class="custom_input_search" placeholder="Nhập tiêu đề, công ty, địa điểm..."> <input type="search" name="" id="" class="custom_input_search" placeholder="<%= t('pages.banner.search_placeholder') %>">
</div> </div>
<div class="search_industries"> <div class="search_industries">
<div class="icon_list"> <div class="icon_list">
<i class="fa fa-list-ul" aria-hidden="true"></i> <i class="fa fa-list-ul" aria-hidden="true"></i>
</div> </div>
<%= select_tag 'industry', options_from_collection_for_select(@industries, 'id', 'name'), class: 'show_list_industries' %> <%= select_tag 'industry', options_from_collection_for_select(@industries, 'id', 'name'), prompt: t('pages.banner.all_industries'), class: 'show_list_industries' %>
</div> </div>
<div class="search_location"> <div class="search_location">
<div class="icon_list"> <div class="icon_list">
<i class="fas fa-map-marker-alt"></i> <i class="fas fa-map-marker-alt"></i>
</div> </div>
<%= select_tag 'city', options_from_collection_for_select(@cities, 'id', 'name', '1'), class: 'show_list_cities' %> <%= select_tag 'city', options_from_collection_for_select(@cities, 'id', 'name'), prompt: t('pages.banner.all_locations'), class: 'show_list_cities' %>
</div> </div>
<div class="search_submit"> <div class="search_submit">
<button type="submit" class="btn_search_submit"> <button type="submit" class="btn_search_submit">
<i class="fas fa-search"></i> <i class="fas fa-search"></i>
Tìm việc <%= t('pages.banner.btn_text_search') %>
</button> </button>
</div> </div>
</div> </div>
...@@ -52,35 +52,35 @@ ...@@ -52,35 +52,35 @@
<div class="box-search-tablet"> <div class="box-search-tablet">
<div class="search_scaffold-tablet"> <div class="search_scaffold-tablet">
<div class = "total_job"> <div class = "total_job">
<h4 class="show_total_job">Khám phá ngay <b><%=@job_count%></b> việc làm tốt nhất trên VenJob</h4> <h4 class="show_total_job"><%= t('pages.banner.slogan_3', job_count: @job_count) %> </h4>
</div> </div>
<div class="filter_box filter_box_tablet"> <div class="filter_box filter_box_tablet">
<div class="search_input"> <div class="search_input">
<input type="search" name="" id="" class="custom_input_search" placeholder="Nhập tiêu đề, công ty, địa điểm..."> <input type="search" name="" id="" class="custom_input_search" placeholder="<%= t('pages.banner.search_placeholder') %>">
</div> </div>
<div class="search_industries"> <div class="search_industries">
<div class="icon_list"> <div class="icon_list">
<i class="fa fa-list-ul" aria-hidden="true"></i> <i class="fa fa-list-ul" aria-hidden="true"></i>
</div> </div>
<%= select_tag 'industry', options_from_collection_for_select(@industries, 'id', 'name'), class: 'show_list_industries' %> <%= select_tag 'industry', options_from_collection_for_select(@industries, 'id', 'name'), prompt: t('pages.banner.all_industries'), class: 'show_list_industries' %>
</div> </div>
<div class="search_location"> <div class="search_location">
<div class="icon_list"> <div class="icon_list">
<i class="fas fa-map-marker-alt"></i> <i class="fas fa-map-marker-alt"></i>
</div> </div>
<%= select_tag 'city', options_from_collection_for_select(@cities, 'id', 'name', '1'), class: 'show_list_cities' %> <%= select_tag 'city', options_from_collection_for_select(@cities, 'id', 'name'), prompt: t('pages.banner.all_locations'), class: 'show_list_cities' %>
</div> </div>
<div class="search_submit"> <div class="search_submit">
<button type="submit" class="btn_search_submit"> <button type="submit" class="btn_search_submit">
<i class="fas fa-search"></i> <i class="fas fa-search"></i>
Tìm việc <%= t('pages.banner.btn_text_search') %>
</button> </button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="box-show-total-jobs-mobile"> <div class="box-show-total-jobs-mobile">
<span>Khám phá ngay <%=@job_count%></b> việc làm tốt nhất trên VenJob</span> <span><%= t('pages.banner.slogan_3', job_count: @job_count) %> </span>
</div> </div>
<!-- Process search mobile--> <!-- Process search mobile-->
<div class="box-search-mobile"> <div class="box-search-mobile">
...@@ -88,16 +88,16 @@ ...@@ -88,16 +88,16 @@
<div class="container"> <div class="container">
<div class="row no-gutters"> <div class="row no-gutters">
<div class="col-md-12"> <div class="col-md-12">
<input type="search" name="" id="" class="custom_input_mobile_search" placeholder="Nhập tiêu đề, công ty, địa điểm..."> <input type="search" name="" id="" class="custom_input_mobile_search" placeholder="<%= t('pages.banner.search_placeholder') %>">
</div> </div>
<div class="col-sm-6 col-xs-12"> <div class="col-sm-6 col-xs-12">
<div class="search_industries_mobile"> <div class="search_industries_mobile">
<%= select_tag 'industry', options_from_collection_for_select(@industries, 'id', 'name'), class: 'show_list_industries_mobile' %> <%= select_tag 'industry', options_from_collection_for_select(@industries, 'id', 'name'), prompt: t('pages.banner.all_industries'), class: 'show_list_industries_mobile' %>
</div> </div>
</div> </div>
<div class="col-sm-6 col-xs-12"> <div class="col-sm-6 col-xs-12">
<div class="search_location_mobile"> <div class="search_location_mobile">
<%= select_tag 'city', options_from_collection_for_select(@cities, 'id', 'name', '1'), class: 'show_list_cities_mobile' %> <%= select_tag 'city', options_from_collection_for_select(@cities, 'id', 'name'), prompt: t('pages.banner.all_locations'), class: 'show_list_cities_mobile' %>
</div> </div>
</div> </div>
</div> </div>
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
<div class="col-sm-12"> <div class="col-sm-12">
<button type="submit" class="btn_search_submit"> <button type="submit" class="btn_search_submit">
<i class="fas fa-search"></i> <i class="fas fa-search"></i>
Tìm việc <%= t('pages.banner.btn_text_search') %>
</button> </button>
</div> </div>
</div> </div>
......
<div class="container"> <div class="container">
<div class="border_box_cities"> <div class="border_box_cities">
<div class="box_text_five_jobs box_padding_city"> <div class="box_text_five_jobs box_padding_city">
<span>Top thành phố</span> <span><%= t('pages.index.top_cities') %></span>
</div> </div>
<div class="row no-gutters"> <div class="row no-gutters">
<% @top_cities.each do |city| %> <% @top_cities.each do |city| %>
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<%= link_to city.name, jobs_path(model: 'city', slug: city.slug),class: 'link_ct' %> <%= link_to city.name, jobs_path(model: 'city', slug: city.slug),class: 'link_ct' %>
</div> </div>
<div class="ct_jobs_count"> <div class="ct_jobs_count">
<%= link_to "#{city.jobs.count} công việc", jobs_path(model: 'city', slug: city.slug),class: 'link_ct' %> <%= link_to "#{city.jobs.count} #{t('pages.index.job')}", jobs_path(model: 'city', slug: city.slug),class: 'link_ct' %>
</div> </div>
</div> </div>
</div> </div>
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<div class="col-lg-12"> <div class="col-lg-12">
<div class="box_info_city"> <div class="box_info_city">
<div class="ct_name"> <div class="ct_name">
<%= link_to 'Xem Thêm', city_index_path, class: 'link_ct' %> <%= link_to t('pages.index.more'), city_index_path, class: 'link_ct' %>
</div> </div>
<div class="ct_jobs_count"> <div class="ct_jobs_count">
<i class="fas fa-ellipsis-h"></i> <i class="fas fa-ellipsis-h"></i>
......
<div class="container"> <div class="container">
<div class="border_box_cities"> <div class="border_box_cities">
<div class="box_text_five_jobs box_padding_city"> <div class="box_text_five_jobs box_padding_city">
<span>Top các nghành phổ biến</span> <span><%= t('pages.index.top_industries') %></span>
</div> </div>
<div class="row no-gutters"> <div class="row no-gutters">
<% @top_industries.each do |industry| %> <% @top_industries.each do |industry| %>
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<%= link_to industry.name, jobs_path(model: 'industry', slug: industry.slug), class: 'link_ct' %> <%= link_to industry.name, jobs_path(model: 'industry', slug: industry.slug), class: 'link_ct' %>
</div> </div>
<div class="ct_jobs_count"> <div class="ct_jobs_count">
<%= link_to "#{industry.jobs.count} công việc", jobs_path(model: 'industry', slug: industry.slug), class: 'link_ct' %> <%= link_to "#{industry.jobs.count} #{t('pages.index.job')}", jobs_path(model: 'industry', slug: industry.slug), class: 'link_ct' %>
</div> </div>
</div> </div>
</div> </div>
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div class="col-lg-12"> <div class="col-lg-12">
<div class="box_info_city"> <div class="box_info_city">
<div class="ct_name"> <div class="ct_name">
<%= link_to 'Xem Thêm', industry_index_path, class: 'link_ct' %> <%= link_to t('pages.index.more'), industry_index_path, class: 'link_ct' %>
</div> </div>
<div class="ct_jobs_count"> <div class="ct_jobs_count">
<i class="fas fa-ellipsis-h"></i> <i class="fas fa-ellipsis-h"></i>
......
<% provide(:title ,'Trang chủ') %> <% provide(:title, "#{t('title.home')}") %>
<%= render 'home/banner_and_search' %> <%= render 'home/banner_and_search' %>
<div class="padding_index"></div> <div class="padding_index"></div>
<% unless @job_count.nil? %> <% unless @job_count.nil? %>
<div class="box_text_five_jobs"> <div class="box_text_five_jobs">
<span>Năm công việc mới nhất dành cho bạn</span> <span><%= t('pages.index.lasted_job') %></span>
</div> </div>
<%= render 'job/modal_login' %>
<%= render partial: 'job/block_info_job', collection: @lasted_jobs, as: :data %> <%= render partial: 'job/block_info_job', collection: @lasted_jobs, as: :data %>
<%= render 'box_nine_city' %> <%= render 'box_nine_city' %>
<%= render 'box_nine_industries' %> <%= render 'box_nine_industries' %>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<%= link_to industry.name, jobs_path(model: 'industry', slug: industry.slug), class: 'cityjobs_link' %> <%= link_to industry.name, jobs_path(model: 'industry', slug: industry.slug), class: 'cityjobs_link' %>
</div> </div>
<div class="box_cityjobs_count"> <div class="box_cityjobs_count">
<span><%= industry.jobs.count %> Công việc</span> <span><%= "#{industry.jobs.count} #{t('pages.index.job')}" %></span>
</div> </div>
</div> </div>
</div> </div>
<% provide(:title, 'Top nghành') %> <% provide(:title, "#{t('pages.index.top_industries')}") %>
<%= render 'shared/scroll_top' %> <%= render 'shared/scroll_top' %>
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<div class="title_list_city title_list_city_vn"> <div class="title_list_city title_list_city_vn">
<span>Top nghành</span> <span><%= t('pages.index.top_industries') %></span>
</div> </div>
</div> </div>
<div class="container"> <div class="container">
......
...@@ -3,9 +3,15 @@ ...@@ -3,9 +3,15 @@
<div class="col-sm-12"> <div class="col-sm-12">
<div class="box_jobs"> <div class="box_jobs">
<div class="col-sm-12 d-block d-sm-none"> <div class="col-sm-12 d-block d-sm-none">
<% if user_signed_in? %>
<div class="link_favorite_top block_link_favorite md"> <div class="link_favorite_top block_link_favorite md">
<span><%= link_to '<i class="far fa-heart"></i>'.html_safe, '#', class: 'link_favorite' %><span> <span><%= link_to '<i class="far fa-heart"></i>'.html_safe, '#', class: 'link_favorite' %><span>
</div> </div>
<% else %>
<div class="block_click_favorite link_favorite_top ">
<span><i class="far fa-heart"></i><span>
</div>
<% end %>
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-10 col-md-9 col-lg-10"> <div class="col-sm-10 col-md-9 col-lg-10">
...@@ -21,21 +27,32 @@ ...@@ -21,21 +27,32 @@
<%= data.cities.map(&:name).join(' | ') %> <%= data.cities.map(&:name).join(' | ') %>
</h5> </h5>
</div> </div>
<h5 class="box_info_salary"><i class="fas fa-dollar-sign"></i>&nbsp; Lương: <%= data.salary %></h5> <h5 class="box_info_salary"><i class="fas fa-dollar-sign"></i>&nbsp;<%= "#{t('pages.index.salary')}: #{data.salary}" %></h5>
<div class="coc"> <div class="coc">
<h5 class="box_info_des"><%= strip_tags(data.description) %></h5> <h5 class="box_info_des"><%= strip_tags(data.description) %></h5>
</div> </div>
</div> </div>
</div> </div>
<div class="col-sm-2 col-md-3 d-none d-sm-block col-lg-2"> <div class="col-sm-2 col-md-3 d-none d-sm-block col-lg-2">
<% if user_signed_in? %>
<div class="box_link_favotite"> <div class="box_link_favotite">
<div class="block_link_favorite lg"> <div class="block_link_favorite lg">
<span><i class="far fa-heart"></i> <%= link_to 'Yêu thích', '#', class: 'link_favorite' %><span> <span><i class="far fa-heart"></i> <%= link_to t('pages.index.btn_text_favorite'), '#', class: 'link_favorite' %><span>
</div> </div>
<div class="block_link_favorite md"> <div class="block_link_favorite md">
<span><%= link_to '<i class="far fa-heart"></i>'.html_safe, '#', class: 'link_favorite' %><span> <span><%= link_to '<i class="far fa-heart"></i>'.html_safe, '#', class: 'link_favorite' %><span>
</div> </div>
</div> </div>
<% else %>
<div class="box_link_favotite">
<div class="block_click_favorite lg">
<span><i class="far fa-heart"></i> <%= t('pages.index.btn_text_favorite') %><span>
</div>
<div class="block_click_favorite md">
<span><i class="far fa-heart"></i><span>
</div>
</div>
<% end %>
</div> </div>
</div> </div>
</div> </div>
......
<div class="overlay_login"> <div class="overlay_login">
<div class="modal_login"> <div class="modal_login">
<div class="modal_login_header"> <div class="modal_login_header">
<span>VUI LÒNG ĐĂNG NHẬP ĐỂ THỰC HIỆN CHỨC NĂNG NÀY</span> <span><%= t('devise.notification') %></span>
<span class="icon_close_modal_login"> <span class="icon_close_modal_login">
<i class="fas fa-times"></i> <i class="fas fa-times"></i>
</span> </span>
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
<div class="row"> <div class="row">
<div class="col-lg 12"> <div class="col-lg 12">
<div class="modal_login_notice_text"> <div class="modal_login_notice_text">
<span>ĐĂNG NHẬP</span> <span><%= t('pages.confirm.modal_login').downcase.capitalize %></span><br>
<span><b><%= link_to t('devise.title_signin'), new_user_session_path, class: 'link_ct' %></b></span>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -24,13 +24,13 @@ ...@@ -24,13 +24,13 @@
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<div class="btn_apply_job"> <div class="btn_apply_job">
<%= link_to 'Nộp CV ngay', '#', class: 'btn btn-apply_job' %> <%= link_to t('pages.detail.btr_text_submit_cv'), '#', class: 'btn btn-apply_job' %>
</div> </div>
</div> </div>
<div class="col-lg-12 col-md-12"> <div class="col-lg-12 col-md-12">
<div class="box_detail_jobs"> <div class="box_detail_jobs">
<div class="box_detail_jobs_location"> <div class="box_detail_jobs_location">
<span><i class="fas fa-map-marker-alt"></i> Địa điểm làm việc: </span> <span><i class="fas fa-map-marker-alt"></i><%= t('pages.detail.work_location') %></span>
<% @job.cities.each do |x| %> <% @job.cities.each do |x| %>
<%= link_to "&nbsp;#{x.name}&nbsp;".html_safe , jobs_path(model: 'city', slug: x.slug), class: 'link_ct apply_job link_optimize'%> <%= link_to "&nbsp;#{x.name}&nbsp;".html_safe , jobs_path(model: 'city', slug: x.slug), class: 'link_ct apply_job link_optimize'%>
<% end %> <% end %>
...@@ -40,27 +40,27 @@ ...@@ -40,27 +40,27 @@
<div class="row"> <div class="row">
<div class="col-lg-4 col-md-6"> <div class="col-lg-4 col-md-6">
<div class="detail_info"> <div class="detail_info">
<span><i class="fab fa-linode"></i> Lương: <%= @job.salary %></span> <span><i class="fab fa-linode"></i> <%= "#{t('pages.index.salary')}: #{@job.salary}" %></span>
</div> </div>
</div> </div>
<div class="col-lg-4 col-md-6"> <div class="col-lg-4 col-md-6">
<div class="detail_info"> <div class="detail_info">
<span><i class="fab fa-linode"></i> Ngày đăng tin: <%= @job.posted_at %></span> <span><i class="fab fa-linode"></i> <%= "#{t('pages.detail.posted_at')}: #{@job.posted_at}" %></span>
</div> </div>
</div> </div>
<div class="col-lg-4 col-md-6"> <div class="col-lg-4 col-md-6">
<div class="detail_info"> <div class="detail_info">
<span><i class="fab fa-linode"></i> Ngày hết hạn: <%= @job.expiration_date.present? ? @job.expired_at : 'đang cập nhật' %></span> <span><i class="fab fa-linode"></i> <%= "#{t('pages.detail.expiration_date')}: #{@job.expiration_date.present? ? @job.expired_at : 'đang cập nhật'}" %></span>
</div> </div>
</div> </div>
<div class="col-lg-4 col-md-6"> <div class="col-lg-4 col-md-6">
<div class="detail_info"> <div class="detail_info">
<span><i class="fab fa-linode"></i> Kinh nghiệm: <%= @job.experience %></span> <span><i class="fab fa-linode"></i> <%= "#{t('pages.detail.experience')}: #{@job.experience}" %></span>
</div> </div>
</div> </div>
<div class="col-lg-4 col-md-6"> <div class="col-lg-4 col-md-6">
<div class="detail_info"> <div class="detail_info">
<span><i class="fab fa-linode"></i> Cấp bậc: <%= @job.level %></span> <span><i class="fab fa-linode"></i> <%= "#{t('pages.detail.level')}: #{@job.level}" %></span>
</div> </div>
</div> </div>
</div> </div>
...@@ -80,12 +80,12 @@ ...@@ -80,12 +80,12 @@
<div class="row"> <div class="row">
<div class="col-lg-6 col-md-6"> <div class="col-lg-6 col-md-6">
<div class="btn_apply_job"> <div class="btn_apply_job">
<%= link_to 'Nộp CV ngay', '#', class: 'btn btn-apply_job' %> <%= link_to t('pages.detail.btr_text_submit_cv'), '#', class: 'btn btn-apply_job' %>
</div> </div>
</div> </div>
<div class="col-lg-6 col-md-6"> <div class="col-lg-6 col-md-6">
<div class="btn_apply_job"> <div class="btn_apply_job">
<%= link_to 'Yêu thích', '#', class: 'btn btn-apply_job_favorite' %> <%= link_to t('pages.index.btn_text_favorite'), '#', class: 'btn btn-apply_job_favorite' %>
</div> </div>
</div> </div>
</div> </div>
......
<% provide(:title ,'Kết quả tìm kiếm') %> <% provide(:title ,"#{t('pages.detail.br_title')}") %>
<%= render 'home/banner_and_search' %> <%= render 'home/banner_and_search' %>
<div class="padding_index"></div> <div class="padding_index"></div>
<div class="container"> <div class="container">
...@@ -8,10 +8,10 @@ ...@@ -8,10 +8,10 @@
<span class="breadcrumb-item active"> <span class="breadcrumb-item active">
<% if @data.total_count > 0 %> <% if @data.total_count > 0 %>
<div style="word-wrap: break-word;"> <div style="word-wrap: break-word;">
<span>&nbsp;<b><%= @data.total_count %></b>&nbsp;kết quả phù hợp với từ khóa&nbsp;</span><b><%= @keyword %></b>&nbsp; <%= t('pages.result.result_find', job: @data.total_count, key: @keyword).html_safe %>
</div> </div>
<% else %> <% else %>
Không có kết quả phù hợp với từ khóa&nbsp;<b><%= @keyword %></b> <%= t('pages.result.no_result_find', key: @keyword).html_safe %>
<% end %> <% end %>
</span> </span>
</div> </div>
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
</div> </div>
</div> </div>
</div> </div>
<%= render 'job/modal_login' %>
<%= render partial: 'block_info_job', collection: @data, as: :data %> <%= render partial: 'block_info_job', collection: @data, as: :data %>
<div class="container"> <div class="container">
<div class="row"> <div class="row">
......
...@@ -10,21 +10,26 @@ ...@@ -10,21 +10,26 @@
<div class="header_top_menu_right"> <div class="header_top_menu_right">
<ul class="list_menu_header_right"> <ul class="list_menu_header_right">
<li class="list_item_menu_header_right"> <li class="list_item_menu_header_right">
<%= link_to 'Favorite', '#', class: 'link_item_menu_header_right' %> <%= link_to t('pages.index.favorite'), '#', class: 'link_item_menu_header_right' %>
</li> </li>
<li class="list_item_menu_header_right"> <li class="list_item_menu_header_right">
<%= link_to 'History', '#', class: 'link_item_menu_header_right' %> <%= link_to t('pages.index.history'), '#', class: 'link_item_menu_header_right' %>
</li> </li>
<li class="list_item_menu_header_right"> <li class="list_item_menu_header_right">
<%= link_to_if(user_signed_in?, 'My page', my_page_path, class: 'link_item_menu_header_right') do <%= link_to_if(user_signed_in?, t('pages.index.mypage'), my_page_path, class: 'link_item_menu_header_right') do
link_to 'Sign in', new_user_session_path, class: 'link_item_menu_header_right' link_to t('pages.index.signin'), new_user_session_path, class: 'link_item_menu_header_right'
end %> end %>
</li> </li>
<li class="list_item_menu_header_right"> <li class="list_item_menu_header_right">
<%= link_to_if(user_signed_in?, 'Log out', destroy_user_session_path, method: :delete, class: 'link_item_menu_header_right') do <%= link_to_if(user_signed_in?, t('pages.index.signout'), destroy_user_session_path, method: :delete, class: 'link_item_menu_header_right') do
link_to 'Register', new_user_registration_path, class: 'link_item_menu_header_right' link_to t('pages.index.register'), new_user_registration_path, class: 'link_item_menu_header_right'
end %> end %>
</li> </li>
<li class="list_item_menu_header_right">
<span class="link_item_menu_header_right custom"><%= t('pages.index.language') %></span>&nbsp;
<%= link_to image_tag('flagvn.png', class: 'header_img_flag'), locale:'vi' %><span style="color: #999;"> | </span>
<%= link_to image_tag('flagusa.png', class: 'header_img_flag'), locale:'en' %>
</li>
</ul> </ul>
</div> </div>
<%# mobile %> <%# mobile %>
...@@ -34,20 +39,27 @@ ...@@ -34,20 +39,27 @@
<div class = "menu_mobile_vertical"> <div class = "menu_mobile_vertical">
<ul class = "list_menu_mobile_vertical"> <ul class = "list_menu_mobile_vertical">
<li class = "item_menu_mobile_vertical"> <li class = "item_menu_mobile_vertical">
<%= link_to 'Favorite', '#', class: 'link_item_menu_mobile' %> <%= link_to t('pages.index.favorite'), '#', class: 'link_item_menu_mobile' %>
</li> </li>
<li class = "item_menu_mobile_vertical"> <li class = "item_menu_mobile_vertical">
<%= link_to 'History', '#', class: 'link_item_menu_mobile' %> <%= link_to t('pages.index.history'), '#', class: 'link_item_menu_mobile' %>
</li> </li>
<li class="item_menu_mobile_vertical"> <li class="item_menu_mobile_vertical">
<%= link_to_if(user_signed_in?, 'My page', my_page_path, class: 'link_item_menu_mobile') do <%= link_to_if(user_signed_in?, t('pages.index.mypage'), my_page_path, class: 'link_item_menu_mobile') do
link_to 'Sign in', new_user_session_path, class: 'link_item_menu_mobile' link_to t('pages.index.signin'), new_user_session_path, class: 'link_item_menu_mobile'
end %> end %>
</li> </li>
<li class="item_menu_mobile_vertical"> <li class="item_menu_mobile_vertical">
<%= link_to_if(user_signed_in?, 'Log out', destroy_user_session_path, method: :delete, class: 'link_item_menu_mobile') do <%= link_to_if(user_signed_in?, t('pages.index.signout'), destroy_user_session_path, method: :delete, class: 'link_item_menu_mobile') do
link_to 'Register', new_user_registration_path, class: 'link_item_menu_mobile' link_to t('pages.index.register'), new_user_registration_path, class: 'link_item_menu_mobile'
end %> end %>
</li><hr style="width: 60%; background-color: #999;">
<li class="item_menu_mobile_vertical">
<span class="link_item_menu_mobile custom"><%= t('pages.index.language') %></span>
</li>
<li class="item_menu_mobile_vertical">
<%= link_to 'Vietnamese', locale:'vi', class: 'link_item_menu_mobile' %><span style="color: #999;"> |</span>
<%= link_to 'English', locale:'en', class: 'link_item_menu_mobile' %>
</li> </li>
</ul> </ul>
</div> </div>
......
<div class="container"> <div class="container">
<div class="box_form"> <div class="box_form">
<h3>VENJOB</h3> <h3>VENJOB</h3>
Thank you for register our service, an confirmation email with registration link <p>
has been sent to your email. Please check your email within 24 hours <%= t('mailer.register_confirmation.paragraph_1') %>
Please note that the registration link is only valid for 24 hours <%= t('mailer.register_confirmation.paragraph_2') %><br>
Over that period, you will have to register your emai again.</p> <%= t('mailer.register_confirmation.paragraph_3') %>
</p>
<div class="list_email_app"> <div class="list_email_app">
<ul> <ul>
<li> <li>
<span>You're using: </span> <span><%= t('pages.mypage.you_are_using') %></span>
</li> </li>
<li> <li>
<a href="https://mail.google.com/" target="_blank"><i class="fas fa-inbox"></i> Gmail</a> <a href="https://mail.google.com/" target="_blank"><i class="fas fa-inbox"></i> Gmail</a>
......
...@@ -3,30 +3,30 @@ ...@@ -3,30 +3,30 @@
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<div class="box_my_page_header"> <div class="box_my_page_header">
<h4>My page</h4> <h4><%= t('pages.mypage.title') %></h4>
</div> </div>
</div> </div>
<div class="box_my_page_content"> <div class="box_my_page_content">
<hr> <hr>
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<span>Email: <%= current_user.email %> </span> <span><%= "#{t('pages.mypage.email')}: #{current_user.email}" %></span>
</div> </div>
<div class="col-lg-12"> <div class="col-lg-12">
<span>Name: <%= current_user.name %></span> <span><%= "#{t('pages.mypage.name')}: #{current_user.name}" %></span>
</div> </div>
<div class="col-lg-12"> <div class="col-lg-12">
<% if current_user.cv.identifier %> <% if current_user.cv.identifier %>
CV: <%= link_to current_user.cv.identifier, current_user.cv.url, target: '_blank', class: 'link_ct pdf' %> CV: <%= link_to current_user.cv.identifier, current_user.cv.url, target: '_blank', class: 'link_ct pdf' %>
<%= link_to '<i class="fas fa-download"></i>'.html_safe, current_user.cv.url, download: current_user.cv.identifier %> <%= link_to '<i class="fas fa-download"></i>'.html_safe, current_user.cv.url, download: current_user.cv.identifier %>
<% else %> <% else %>
CV: <span class="link_ct">No file</span> CV: <span class="link_ct"><%= t('pages.mypage.nofile') %></span>
<% end %> <% end %>
</div> </div>
<hr> <hr>
<div class="col-lg-6"> <div class="col-lg-6">
<%= link_to 'Update', edit_user_registration_path, class: 'btn btn-info btn-custom-padding'%> <%= link_to t('pages.mypage.update'), edit_user_registration_path, class: 'btn btn-info btn-custom-padding'%>
<%= link_to 'My jobs', '#', class: 'btn btn-warning btn-custom-padding'%> <%= link_to t('pages.mypage.myjob'), '#', class: 'btn btn-warning btn-custom-padding'%>
</div> </div>
</div> </div>
<hr> <hr>
......
...@@ -13,6 +13,10 @@ module Venjob ...@@ -13,6 +13,10 @@ module Venjob
config.exceptions_app = self.routes config.exceptions_app = self.routes
config.autoload_paths << Rails.root.join('lib/service') config.autoload_paths << Rails.root.join('lib/service')
config.autoload_paths << Rails.root.join('lib/src') config.autoload_paths << Rails.root.join('lib/src')
# i18n
config.i18n.available_locales = [:en, :vi]
config.i18n.default_locale = :en
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
# Settings in config/environments/* take precedence over those specified here. # Settings in config/environments/* take precedence over those specified here.
# Application configuration can go into files in config/initializers # Application configuration can go into files in config/initializers
# -- all .rb files in that directory are automatically loaded after loading # -- all .rb files in that directory are automatically loaded after loading
......
# Additional translations at https://github.com/heartcombo/devise/wiki/I18n
vi:
devise:
confirmations:
confirmed: 'Địa chỉ email của bạn đã được xác nhận thành công.'
send_instructions: 'Bạn sẽ nhận được một email hướng dẫn về cách xác nhận địa chỉ email của bạn trong vài phút.'
send_paranoid_instructions: 'Nếu địa chỉ email của bạn tồn tại trong sở dữ liệu của chúng tôi, bạn sẽ nhận được email hướng dẫn cách xác nhận địa chỉ email của bạn sau vài phút.'
failure:
already_authenticated: 'Bạn đã đăng nhập.'
inactive: 'Tài khoản của bạn chưa được kich hoạt.'
invalid: "%{authentication_keys} hoặc mật khẩu không hợp lệ."
locked: 'Tài khoản của bạn bị khóa.'
last_attempt: 'Bạn còn một lần thử nữa trước khi tài khoản của bạn bị khóa.'
not_found_in_database: "%{authentication_keys} hoặc mật khẩu không hợp lệ."
timeout: 'Phiên của bạn đã hết hạn. Vui lòng đăng nhập lại để tiếp tục'
unauthenticated: 'Bạn cần đăng nhập hoặc đăng trước khi tiếp tục.'
unconfirmed: 'Bạn phải xác nhận địa chỉ email của mình trước khi tiếp tục.'
mailer:
confirmation_instructions:
subject: 'Xác nhận hướng dẫn'
reset_password_instructions:
subject: 'Hướng dẫn đặt lại mật khẩu'
unlock_instructions:
subject: 'Hướng dẫn mở khóa'
email_changed:
subject: 'Email đã thay đổi'
password_change:
subject: 'Mật khẩu đã được thay đổi'
omniauth_callbacks:
failure: "Không thể xác thực bạn từ %{kind} bởi \"%{reason}\"."
success: "Đã xác thực thành công từ %{kind} tài khoản."
passwords:
no_token: 'Bạn không thể truy cập trang này nếu không nhận được email đặt lại mật khẩu. Nếu bạn đến từ email đặt lại mật khẩu, hãy đảm bảo rằng bạn đã sử dụng URL đầy đủ được cung cấp.'
send_instructions: 'Bạn sẽ nhận được một email hướng dẫn về cách đặt lại mật khẩu của mình sau vài phút.'
send_paranoid_instructions: 'Nếu địa chỉ email của bạn tồn tại trong sở dữ liệu của chúng tôi, bạn sẽ nhận được liên kết khôi phục mật khẩu tại địa chỉ email của bạn sau vài phút.'
updated: 'Mật khẩu của bạn đã được thay đổi thành công. Bây giờ bạn đã đăng nhập.'
updated_not_active: 'Mật khẩu của bạn đã được thay đổi thành công.'
registrations:
destroyed: 'Tạm biệt! Tài khoản của bạn đã được hủy thành công. Mong rằng chúng tôi sẽ sớm gặp lại bạn.'
signed_up: 'Chào mừng! Bạn đã đăng thành công.'
signed_up_but_inactive: 'Bạn đã đăng thành công. Tuy nhiên, chúng tôi không thể đăng nhập cho bạn tài khoản của bạn chưa được kích hoạt.'
signed_up_but_locked: 'Bạn đã đăng thành công. Tuy nhiên, chúng tôi không thể đăng nhập cho bạn tài khoản của bạn bị khóa.'
signed_up_but_unconfirmed: 'Một tin nhắn với một liên kết xác nhận đã được gửi đến địa chỉ email của bạn. Vui lòng nhấp vào liên kết để kích hoạt tài khoản của bạn.'
update_needs_confirmation: 'Bạn đã cập nhật tài khoản của mình thành công, nhưng chúng tôi cần xác minh địa chỉ email mới của bạn. Vui lòng kiểm tra email của bạn nhấp vào liên kết xác nhận để xác nhận địa chỉ email mới của bạn.'
updated: 'Tài khoản của bạn đã được cập nhật thành công.'
updated_but_not_signed_in: 'Tài khoản của bạn đã được cập nhật thành công, nhưng mật khẩu của bạn đã được thay đổi, bạn cần đăng nhập lại'
sessions:
signed_in: 'Đã đăng nhập thành công.'
signed_out: 'Đã đăng xuất thành công.'
already_signed_out: 'Đăng xuất thành công'
unlocks:
send_instructions: 'Bạn sẽ nhận được một email hướng dẫn về cách mở khóa tài khoản của mình sau vài phút.'
send_paranoid_instructions: 'Nếu tài khoản của bạn tồn tại, bạn sẽ nhận được email hướng dẫn cách mở khóa sau vài phút.'
unlocked: 'Tài khoản của bạn đã được mở khóa thành công. Vui lòng đăng nhập để tiếp tục.'
errors:
messages:
already_confirmed: 'Tài khoản cuản bạn đã được xác nhận, vui lòng thử đăng nhập'
confirmation_period_expired: "cần được xác nhận trong %{period}, vui lòng tạo yêu cầu mới"
expired: "đã hết hạn, vui lòng tạo yêu cầu mới"
not_found: "không tìm thấy"
not_locked: "không bị khóa"
not_saved:
one: "1 lỗi được phát hiện %{resource} trước khi lưu:"
other: "%{count} lỗi được phát hiện %{resource} trước khi lưu:"
# 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 http://guides.rubyonrails.org/i18n.html.
en: en:
hello: "Hello world" title:
home: 'Home'
pages:
index:
favorite: 'Favorite'
history: 'History'
signin: 'Sign in'
register: 'Register'
mypage: 'My page'#{t('pages.index.job')}
signout: 'Sign out'
language: 'Language'
lasted_job: 'Five new job for you'
top_industries: 'Top Industries'
top_cities: 'Top Cities'
job: 'jobs'
more: 'More'
btn_text_favorite: 'Favorite'
salary: ' Salary'
banner:
slogan: 'VENJOB HUMAN RESOURCE PLATFORM'
slogan_2: 'Instantly discover the best jobs on VenJob'
slogan_3: 'Instantly discover %{job_count} the best jobs on VenJob'
search_placeholder: 'Input title, companies, locations...'
btn_text_search: 'Find Job'
all_industries: 'All industries'
all_locations: 'All locations'
confirm:
modal_login: 'PLEASE SIGN IN TO EXECUTE THIS FUNCTION'
result:
result_find: 'There are <b>%{job}</b> results matching keyword <b>%{key}</b>'
no_result_find: 'No results match the keyword <b>%{key}</b>'
detail:
br_title: 'Result'
btr_text_submit_cv: 'Apply Now'
work_location: ' Work locations: '
posted_at: ' Posted at'
expiration_date: ' Expiration date'
experience: ' Experience'
level: ' Level'
cities:
ask: 'Do you want to find a job at Viet Nam or oversea?'
domestic: 'Viet Nam'
international: 'International'
provinces_vn: 'Provinces and cities of Vietnam'
mypage:
title: 'My page'
email: 'Email'
name: 'Name'
cv: 'Curriculum Vitae'
update: 'Update'
myjob: 'My jobs'
nofile: 'Please upload your cv'
you_are_using: "You're using:"
errors:
back_to_home: "Let's go back to the homepage"
error_500_1: 'There are some errors in this path'
error_500_2: 'Do not worry! Sorry for the inconvenience!'
error_404: 'We cannot find the page you requested!'
controller:
job:
detail:
home: 'Home'
mailer:
register_confirmation:
paragraph_1: 'Thank you for register our service, an confirmation email with registration link has been sent to your email'
paragraph_2: 'Please check your email within 24 hours. Please note that the registration link is only valid for 24 hours'
paragraph_3: 'Over that period, you will have to register your emai again.'
send_register_confirmation:
wellcome: 'Welcome'
paragraph_1: "By clicking on the following link, you are confirming your email address and agreeing to VeNJOB's Terms of Service."
confirm: 'Confirm my account'
send_email_changed:
hello: 'Hello'
paragraph: "We're contacting you to notify you that your email is being changed to"
send_reset_password_changed:
btn_text_change_password: 'Change my password'
paragraph_1: 'Someone has requested a link to change your password. You can do this through the link below.'
paragraph_2: "If you didn't request this, please ignore this email."
paragraph_3: "Your password won't change until you access the link above and create a new one."
send_password_changed:
paragraph: "We're contacting you to notify you that your password has been changed."
devise:
notification: 'NOTIFICATION'
title_signin: 'Sign in'
title_register: 'Register'
title_edit_info: 'Edit my info'
title_forget_password: 'Forgot your password?'
title_change_password: 'Change your password'
pass_word: 'Password'
new_password: 'New password'
confirm_password: 'Confirm new password'
current_password: 'Current password'
notice_blank_password: "Leave blank if you don't want to change it "
notice_password: 'Password have a minimum of %{minimum_password_length} characters'
notice_current_password: 'We need your current password to confirm your changes'
btn_text_send_me_reset_password: 'Send me reset password instructions'
btn_text_change_password: 'Change my password'
back: 'Back'
update: 'Update'
cancel_my_acc: 'Cancel my account'
remember_me: 'Remember Me'
ask_forget_password: 'Forgot your password?'
vi:
title:
home: 'Trang chủ'
pages:
index:
favorite: 'Yêu thích'
history: 'Lịch sử'
signin: 'Đăng nhập'
register: 'Đăng ký'
mypage: 'Trang nhân'
signout: 'Đăng xuất'
language: 'Ngôn ngữ'
lasted_job: 'Năm công việc mới nhất dành cho bạn'
top_industries: 'Nhóm nghành đang phổ biến'
top_cities: 'Top thành phố'
job: 'công việc'
more: 'Xem thêm'
btn_text_favorite: 'Yêu thích'
salary: ' Lương'
banner:
slogan: 'NỀN TẢNG TUYỂN DỤNG NHÂN SỰ VENJOB'
slogan_2: 'Khám phá ngay những việc làm tốt nhất trên VenJob'
slogan_3: "Khám phá ngay %{job_count} việc làm tốt nhất trên VenJob"
search_placeholder: 'Nhập tiêu đề, công ty, địa điểm...'
btn_text_search: 'Tìm việc'
all_industries: 'Tất cả nghành nghề'
all_locations: 'Tất cả đỉa điểm'
confirm:
modal_login: 'VUI LÒNG ĐĂNG NHẬP ĐỂ THỰC HIỆN CHỨC NĂNG NÀY'
result:
result_find: ' <b>%{job}</b> kết quả phù hợp với từ khóa <b>%{key}</b>'
no_result_find: 'Không kết quả phù hợp với từ khóa <b>%{key}</b>'
detail:
br_title: 'Kết quả tìm kiếm'
btr_text_submit_cv: 'Nộp CV ngay'
work_location: ' Địa điểm làm việc: '
posted_at: ' Ngày đăng tin'
expiration_date: ' Ngày hết hạn'
experience: ' Kinh nghiệm'
level: ' Cấp bậc'
cities:
ask: 'Bạn muốn tìm việc trong hay ngoài nước?'
domestic: 'Việt Nam'
international: 'Nước ngoài'
provinces_vn: 'Các tỉnh, thành phố thuôc Việt Nam'
mypage:
title: 'Trang nhân'
email: 'Email'
name: 'Họ tên'
cv: ' yếu lịch'
update: 'Cập nhật'
myjob: 'Công việc của tôi'
nofile: 'Vui lòng tải lên cv của bạn'
you_are_using: 'Bạn đang sử dụng:'
errors:
back_to_home: 'Cùng mình quay lại trang chủ nhé'
error_500_1: ' vài lỗi trong đường dẫn này'
error_500_2: 'Đừng lo lắng! Xin lỗi bạn sự bất tiện trên!'
error_404: 'Chúng tôi không tìm thấy trang bạn bạn yêu cầu!'
controller:
job:
detail:
home: 'Trang chủ'
mailer:
register_confirmation:
paragraph_1: 'Cảm ơn bạn đã đăng dịch vụ của chúng tôi, một email xác nhận với liên kết đăng đã được gửi đến email của bạn.'
paragraph_2: 'Vui lòng kiểm tra email của bạn trong vòng 24 giờ. Xin lưu ý rằng liên kết đăng chỉ hiệu lực trong 24 giờ.'
paragraph_3: 'Sau 24h nếu bạn không xác nhận, bạn sẽ phải đăng lại email của mình.'
send_register_confirmation:
wellcome: 'Chào mừng bạn '
paragraph_1: "Bằng cách nhấp vào liên kết sau, bạn đang xác nhận địa chỉ email của mình đồng ý với Điều khoản dịch vụ của VeNJOB."
confirm: 'Xác nhận tài khoản'
send_email_changed:
hello: 'Xin chào'
paragraph: 'Chúng tôi đang liên hệ với bạn để thông báo rằng email của bạn đang được thay đổi thành'
send_reset_password_changed:
btn_text_change_password: 'Thay đổi mật khẩu của tôi'
paragraph_1: 'Ai đó đã yêu cầu một liên kết để thay đổi mật khẩu của bạn. Bạn thể làm điều này thông qua liên kết dưới đây.'
paragraph_2: 'Nếu bạn không yêu cầu, vui lòng bỏ qua email này.'
paragraph_3: 'Mật khẩu của bạn sẽ không thay đổi cho đến khi bạn truy cập vào liên kết trên tạo một mật khẩu mới.'
send_password_changed:
paragraph: 'Chúng tôi đang liên hệ với bạn để thông báo rằng mật khẩu của bạn đã được thay đổi.'
devise:
notification: 'THÔNG BÁO'
title_signin: 'Đăng nhập'
title_register: 'Đăng ký'
title_edit_info: 'Cập nhật thông tin tài khoản'
title_forget_password: 'Quên mật khẩu?'
title_change_password: 'Thay đổi mật khẩu'
pass_word: 'Mật khẩu'
new_password: 'Mật khẩu mới'
confirm_password: 'Xác nhận lại mật khẩu'
current_password: 'Mật khẩu hiện tại'
notice_blank_password: 'Để trống nếu bạn không muốn thay đổi nó'
notice_password: 'Mật khẩu tối thiểu %{minimum_password_length} tự'
notice_current_password: 'Chúng tôi cần mật khẩu hiện tại của bạn để xác nhận các thay đổi của bạn'
btn_text_send_me_reset_password: 'Gửi cho tôi hướng dẫn đặt lại mật khẩu'
btn_text_change_password: 'Thay đổi mật khẩu'
back: 'Quay lại'
update: 'Cập nhật'
cancel_my_acc: 'Xóa tài khoản'
remember_me: 'Nhớ mật khẩu'
ask_forget_password: 'Bạn quên mật khẩu?'
\ No newline at end of file
# frozen_string_literal: true # frozen_string_literal: true
Rails.application.routes.draw do Rails.application.routes.draw do
scope '(:locale)', locale: /en|vi/ do
devise_for :users, controllers: {registrations: 'registrations'} devise_for :users, controllers: {registrations: 'registrations'}
root 'home#index' root 'home#index'
get 'register/:code', to: 'users#confirm_sign_up', as: :confirm_sign_up get 'register/:code', to: 'users#confirm_sign_up', as: :confirm_sign_up
...@@ -16,4 +18,5 @@ Rails.application.routes.draw do ...@@ -16,4 +18,5 @@ Rails.application.routes.draw do
# Rails error # Rails error
match '/404', to: 'error#page_not_found', via: :all match '/404', to: 'error#page_not_found', via: :all
match '/500', to: 'error#internal_server_error', via: :all match '/500', to: 'error#internal_server_error', via: :all
end
end end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment