From b862c447f16e7528a64fbf1bbeba1b4b3c8f573f Mon Sep 17 00:00:00 2001
From: Jean-Philippe Lang
Date: Sat, 29 Jul 2006 19:54:22 +0000
Subject: [PATCH] Localization plugin removed (replaced with GLoc)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@14 e93f8b46-1217-0410-a6f0-8f06a7374b81
---
redmine/app/controllers/account_controller.rb | 22 +-
redmine/app/controllers/application.rb | 10 +-
.../controllers/enumerations_controller.rb | 7 +-
redmine/app/controllers/help_controller.rb | 2 +-
.../app/controllers/projects_controller.rb | 2 +-
redmine/app/controllers/roles_controller.rb | 7 +-
redmine/app/helpers/application_helper.rb | 12 +-
redmine/app/helpers/search_filter_helper.rb | 25 +-
redmine/app/models/auth_source_ldap.rb | 2 +-
redmine/app/models/enumeration.rb | 12 +-
redmine/app/models/issue_status.rb | 4 -
redmine/app/models/mailer.rb | 3 +-
redmine/app/models/member.rb | 18 +-
redmine/app/models/news.rb | 18 +-
redmine/app/models/permission.rb | 32 +-
redmine/app/models/role.rb | 10 +-
redmine/app/models/tracker.rb | 4 -
redmine/app/models/user.rb | 3 +-
redmine/app/views/account/my_account.rhtml | 8 +-
redmine/app/views/account/register.rhtml | 16 +-
redmine/app/views/admin/info.rhtml | 2 +-
redmine/app/views/custom_fields/list.rhtml | 2 +-
redmine/app/views/documents/_form.rhtml | 2 +-
redmine/app/views/documents/edit.rhtml | 4 +-
redmine/app/views/documents/show.rhtml | 20 +-
redmine/app/views/enumerations/_form.rhtml | 2 +-
redmine/app/views/enumerations/edit.rhtml | 6 +-
redmine/app/views/enumerations/list.rhtml | 17 +-
redmine/app/views/enumerations/new.rhtml | 4 +-
.../app/views/issue_categories/_form.rhtml | 2 +-
redmine/app/views/issue_categories/edit.rhtml | 4 +-
redmine/app/views/issue_statuses/_form.rhtml | 8 +-
redmine/app/views/issue_statuses/edit.rhtml | 4 +-
redmine/app/views/issue_statuses/list.rhtml | 14 +-
redmine/app/views/issue_statuses/new.rhtml | 4 +-
redmine/app/views/issues/_list_simple.rhtml | 48 +--
redmine/app/views/issues/change_status.rhtml | 13 +-
redmine/app/views/issues/edit.rhtml | 21 +-
redmine/app/views/issues/show.rhtml | 43 +-
redmine/app/views/layouts/base.rhtml | 60 +--
redmine/app/views/mailer/_issue.rhtml | 4 +-
redmine/app/views/news/_form.rhtml | 6 +-
redmine/app/views/news/edit.rhtml | 4 +-
redmine/app/views/news/show.rhtml | 6 +-
redmine/app/views/projects/_form.rhtml | 12 +-
redmine/app/views/projects/add.rhtml | 4 +-
redmine/app/views/projects/add_document.rhtml | 22 +-
redmine/app/views/projects/add_file.rhtml | 9 +-
redmine/app/views/projects/add_issue.rhtml | 21 +-
redmine/app/views/projects/add_news.rhtml | 4 +-
redmine/app/views/projects/add_version.rhtml | 4 +-
redmine/app/views/projects/changelog.rhtml | 2 +-
redmine/app/views/projects/destroy.rhtml | 8 +-
redmine/app/views/projects/list.rhtml | 8 +-
.../app/views/projects/list_documents.rhtml | 6 +-
redmine/app/views/projects/list_files.rhtml | 14 +-
redmine/app/views/projects/list_issues.rhtml | 83 ++--
redmine/app/views/projects/list_members.rhtml | 2 +-
redmine/app/views/projects/list_news.rhtml | 6 +-
redmine/app/views/projects/settings.rhtml | 30 +-
redmine/app/views/projects/show.rhtml | 27 +-
redmine/app/views/reports/_simple.rhtml | 6 +-
redmine/app/views/reports/issue_report.rhtml | 8 +-
redmine/app/views/roles/_form.rhtml | 16 +-
redmine/app/views/roles/edit.rhtml | 6 +-
redmine/app/views/roles/list.rhtml | 8 +-
redmine/app/views/roles/new.rhtml | 7 +-
redmine/app/views/roles/workflow.rhtml | 20 +-
redmine/app/views/trackers/_form.rhtml | 4 +-
redmine/app/views/trackers/edit.rhtml | 4 +-
redmine/app/views/trackers/list.rhtml | 8 +-
redmine/app/views/trackers/new.rhtml | 4 +-
redmine/app/views/users/_form.rhtml | 20 +-
redmine/app/views/users/add.rhtml | 4 +-
redmine/app/views/users/edit.rhtml | 5 +-
redmine/app/views/users/list.rhtml | 24 +-
redmine/app/views/versions/_form.rhtml | 6 +-
redmine/app/views/versions/edit.rhtml | 4 +-
redmine/app/views/welcome/index.rhtml | 13 +-
redmine/db/migrate/001_setup.rb | 89 ++--
.../db/migrate/002_default_configuration.rb | 61 ---
redmine/db/redmine_demo.db | Bin 40960 -> 0 bytes
redmine/doc/CHANGELOG | 9 +-
redmine/doc/docbook/fr/images/issues_list.png | Bin 0 -> 8233 bytes
redmine/doc/docbook/fr/images/users_list.png | Bin 0 -> 6502 bytes
redmine/doc/docbook/fr/images/workflow.png | Bin 0 -> 6503 bytes
redmine/doc/docbook/fr/redmine-userdoc-fr.xml | 400 ++++++++++++++++++
redmine/lang/en.yml | 1 +
redmine/lang/fr.yml | 103 ++++-
redmine/lib/tasks/load_default_data.rake | 43 ++
redmine/test/fixtures/permissions.yml | 84 ++--
redmine/test/integration/account_test.rb | 4 -
92 files changed, 1093 insertions(+), 647 deletions(-)
delete mode 100644 redmine/db/migrate/002_default_configuration.rb
delete mode 100644 redmine/db/redmine_demo.db
create mode 100644 redmine/doc/docbook/fr/images/issues_list.png
create mode 100644 redmine/doc/docbook/fr/images/users_list.png
create mode 100644 redmine/doc/docbook/fr/images/workflow.png
create mode 100644 redmine/doc/docbook/fr/redmine-userdoc-fr.xml
create mode 100644 redmine/lib/tasks/load_default_data.rake
diff --git a/redmine/app/controllers/account_controller.rb b/redmine/app/controllers/account_controller.rb
index b156bfd5b..bc65622b8 100644
--- a/redmine/app/controllers/account_controller.rb
+++ b/redmine/app/controllers/account_controller.rb
@@ -41,7 +41,7 @@ class AccountController < ApplicationController
self.logged_in_user = user
redirect_back_or_default :controller => 'account', :action => 'my_page'
else
- flash[:notice] = l(:notice_account_invalid_creditentials)
+ flash.now[:notice] = l(:notice_account_invalid_creditentials)
end
end
end
@@ -64,7 +64,7 @@ class AccountController < ApplicationController
@user = self.logged_in_user
if request.post? and @user.update_attributes(@params[:user])
set_localization
- flash[:notice] = l(:notice_account_updated)
+ flash.now[:notice] = l(:notice_account_updated)
self.logged_in_user.reload
end
end
@@ -72,11 +72,12 @@ class AccountController < ApplicationController
# Change logged in user's password
def change_password
@user = self.logged_in_user
+ flash.now[:notice] = l(:notice_can_t_change_password) and render :action => 'my_account' and return if @user.auth_source_id
if @user.check_password?(@params[:password])
@user.password, @user.password_confirmation = params[:new_password], params[:new_password_confirmation]
- flash[:notice] = l(:notice_account_password_updated) if @user.save
+ flash.now[:notice] = l(:notice_account_password_updated) if @user.save
else
- flash[:notice] = l(:notice_account_wrong_password)
+ flash.now[:notice] = l(:notice_account_wrong_password)
end
render :action => 'my_account'
end
@@ -100,11 +101,16 @@ class AccountController < ApplicationController
return
else
if request.post?
- user = User.find_by_mail(params[:mail])
- flash[:notice] = l(:notice_account_unknown_email) and return unless user
+ user = User.find_by_mail(params[:mail])
+ # user not found in db
+ flash.now[:notice] = l(:notice_account_unknown_email) and return unless user
+ # user uses an external authentification
+ flash.now[:notice] = l(:notice_can_t_change_password) and return if user.auth_source_id
+ # create a new token for password recovery
token = Token.new(:user => user, :action => "recovery")
if token.save
- Mailer.set_language_if_valid(Localization.lang)
+ # send token to user via email
+ Mailer.set_language_if_valid(user.language)
Mailer.deliver_lost_password(token)
flash[:notice] = l(:notice_account_lost_email_sent)
redirect_to :action => 'login'
@@ -143,7 +149,7 @@ class AccountController < ApplicationController
@user.custom_values = @custom_values
token = Token.new(:user => @user, :action => "register")
if @user.save and token.save
- Mailer.set_language_if_valid(Localization.lang)
+ Mailer.set_language_if_valid(@user.language)
Mailer.deliver_register(token)
flash[:notice] = l(:notice_account_register_done)
redirect_to :controller => ''
diff --git a/redmine/app/controllers/application.rb b/redmine/app/controllers/application.rb
index adae23550..8acbb0926 100644
--- a/redmine/app/controllers/application.rb
+++ b/redmine/app/controllers/application.rb
@@ -37,21 +37,19 @@ class ApplicationController < ActionController::Base
end
def set_localization
- Localization.lang = begin
- if self.logged_in_user and Localization.langs.keys.include? self.logged_in_user.language
+ lang = begin
+ if self.logged_in_user and self.logged_in_user.language and !self.logged_in_user.language.empty? and GLoc.valid_languages.include? self.logged_in_user.language.to_sym
self.logged_in_user.language
elsif request.env['HTTP_ACCEPT_LANGUAGE']
accept_lang = HTTPUtils.parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.split('-').first
- if Localization.langs.keys.include? accept_lang
+ if accept_lang and !accept_lang.empty? and GLoc.valid_languages.include? accept_lang.to_sym
accept_lang
end
end
rescue
nil
end || $RDM_DEFAULT_LANG
-
- set_language_if_valid(Localization.lang)
-
+ set_language_if_valid(lang)
end
def require_login
diff --git a/redmine/app/controllers/enumerations_controller.rb b/redmine/app/controllers/enumerations_controller.rb
index 01664c85e..8e5be0a20 100644
--- a/redmine/app/controllers/enumerations_controller.rb
+++ b/redmine/app/controllers/enumerations_controller.rb
@@ -38,7 +38,7 @@ class EnumerationsController < ApplicationController
def create
@enumeration = Enumeration.new(params[:enumeration])
if @enumeration.save
- flash[:notice] = 'Enumeration was successfully created.'
+ flash[:notice] = l(:notice_successful_create)
redirect_to :action => 'list', :opt => @enumeration.opt
else
render :action => 'new'
@@ -52,7 +52,7 @@ class EnumerationsController < ApplicationController
def update
@enumeration = Enumeration.find(params[:id])
if @enumeration.update_attributes(params[:enumeration])
- flash[:notice] = 'Enumeration was successfully updated.'
+ flash[:notice] = l(:notice_successful_update)
redirect_to :action => 'list', :opt => @enumeration.opt
else
render :action => 'edit'
@@ -60,7 +60,8 @@ class EnumerationsController < ApplicationController
end
def destroy
- Enumeration.find(params[:id]).destroy
+ Enumeration.find(params[:id]).destroy
+ flash[:notice] = l(:notice_successful_delete)
redirect_to :action => 'list'
rescue
flash[:notice] = "Unable to delete enumeration"
diff --git a/redmine/app/controllers/help_controller.rb b/redmine/app/controllers/help_controller.rb
index e51d077a1..6fde039d5 100644
--- a/redmine/app/controllers/help_controller.rb
+++ b/redmine/app/controllers/help_controller.rb
@@ -31,7 +31,7 @@ class HelpController < ApplicationController
end
end
# choose language according to available help translations
- lang = (@help_config['langs'].include? Localization.lang) ? Localization.lang : @help_config['langs'].first
+ lang = (@help_config['langs'].include? current_language) ? current_language : @help_config['langs'].first
if template
redirect_to "/manual/#{lang}/#{template}"
diff --git a/redmine/app/controllers/projects_controller.rb b/redmine/app/controllers/projects_controller.rb
index 3c4d806b5..3d45f7268 100644
--- a/redmine/app/controllers/projects_controller.rb
+++ b/redmine/app/controllers/projects_controller.rb
@@ -227,7 +227,7 @@ class ProjectsController < ApplicationController
CSV::Writer.generate(export, ',') do |csv|
csv << %w(Id Status Tracker Subject Author Created Updated)
@issues.each do |issue|
- csv << [issue.id, issue.status.name, issue.tracker.name, issue.subject, issue.author.display_name, _('(time)', issue.created_on), _('(time)', issue.updated_on)]
+ csv << [issue.id, issue.status.name, issue.tracker.name, issue.subject, issue.author.display_name, l_datetime(issue.created_on), l_datetime(issue.updated_on)]
end
end
export.rewind
diff --git a/redmine/app/controllers/roles_controller.rb b/redmine/app/controllers/roles_controller.rb
index 657f62e05..0e26ff56c 100644
--- a/redmine/app/controllers/roles_controller.rb
+++ b/redmine/app/controllers/roles_controller.rb
@@ -37,7 +37,7 @@ class RolesController < ApplicationController
redirect_to :action => 'list'
end
end
- @permissions = Permission.find(:all, :order => 'sort ASC')
+ @permissions = Permission.find(:all, :conditions => ["is_public=?", false], :order => 'sort ASC')
end
def edit
@@ -48,7 +48,7 @@ class RolesController < ApplicationController
flash[:notice] = 'Role was successfully updated.'
redirect_to :action => 'list'
end
- @permissions = Permission.find(:all, :order => 'sort ASC')
+ @permissions = Permission.find(:all, :conditions => ["is_public=?", false], :order => 'sort ASC')
end
def destroy
@@ -61,8 +61,7 @@ class RolesController < ApplicationController
redirect_to :action => 'list'
end
- def workflow
-
+ def workflow
@role = Role.find_by_id(params[:role_id])
@tracker = Tracker.find_by_id(params[:tracker_id])
diff --git a/redmine/app/helpers/application_helper.rb b/redmine/app/helpers/application_helper.rb
index ddb846073..6e395d3da 100644
--- a/redmine/app/helpers/application_helper.rb
+++ b/redmine/app/helpers/application_helper.rb
@@ -50,18 +50,18 @@ module ApplicationHelper
end
def format_date(date)
- _('(date)', date) if date
+ l_date(date) if date
end
def format_time(time)
- _('(time)', time) if time
+ l_datetime(time) if time
end
def pagination_links_full(paginator, options={}, html_options={})
html =''
- html << link_to(('« ' + _('Previous') ), { :page => paginator.current.previous }) + ' ' if paginator.current.previous
+ html << link_to(('« ' + l(:label_previous) ), { :page => paginator.current.previous }) + ' ' if paginator.current.previous
html << (pagination_links(paginator, options, html_options) || '')
- html << ' ' + link_to((_('Next') + ' »'), { :page => paginator.current.next }) if paginator.current.next
+ html << ' ' + link_to((l(:label_next) + ' »'), { :page => paginator.current.next }) if paginator.current.next
html
end
@@ -90,4 +90,8 @@ module ApplicationHelper
""
end
end
+
+ def lang_options_for_select
+ GLoc.valid_languages.collect {|lang| [ l_lang_name(lang.to_s, lang), lang.to_s]}
+ end
end
diff --git a/redmine/app/helpers/search_filter_helper.rb b/redmine/app/helpers/search_filter_helper.rb
index 98b281225..62ff5f291 100644
--- a/redmine/app/helpers/search_filter_helper.rb
+++ b/redmine/app/helpers/search_filter_helper.rb
@@ -58,42 +58,43 @@ module SearchFilterHelper
def search_filter_init_list_issues
search_filter_criteria('status_id') {
- [ [_('[Open]'), "O", ["issue_statuses.is_closed=?", false]],
- [_('[All]'), "A", nil]
+ [ [('['+l(:label_open_issues_plural)+']'), "O", ["issue_statuses.is_closed=?", false]],
+ [('['+l(:label_closed_issues_plural)+']'), "C", ["issue_statuses.is_closed=?", true]],
+ [('['+l(:label_all)+']'), "A", nil]
] + IssueStatus.find(:all).collect {|s| [s.name, s.id, ["issues.status_id=?", s.id]] }
}
search_filter_criteria('tracker_id') {
- [ [_('[All]'), "A", nil]
+ [ [('['+l(:label_all)+']'), "A", nil]
] + Tracker.find(:all).collect {|s| [s.name, s.id, ["issues.tracker_id=?", s.id]] }
}
search_filter_criteria('priority_id') {
- [ [_('[All]'), "A", nil]
+ [ [('['+l(:label_all)+']'), "A", nil]
] + Enumeration.find(:all, :conditions => ['opt=?','IPRI']).collect {|s| [s.name, s.id, ["issues.priority_id=?", s.id]] }
}
search_filter_criteria('category_id') {
- [ [_('[All]'), "A", nil],
- [_('[None]'), "N", ["issues.category_id is null"]]
+ [ [('['+l(:label_all)+']'), "A", nil],
+ [('['+l(:label_none)+']'), "N", ["issues.category_id is null"]]
] + @project.issue_categories.find(:all).collect {|s| [s.name, s.id, ["issues.category_id=?", s.id]] }
}
search_filter_criteria('fixed_version_id') {
- [ [_('[All]'), "A", nil],
- [_('[None]'), "N", ["issues.fixed_version_id is null"]]
+ [ [('['+l(:label_all)+']'), "A", nil],
+ [('['+l(:label_none)+']'), "N", ["issues.fixed_version_id is null"]]
] + @project.versions.collect {|s| [s.name, s.id, ["issues.fixed_version_id=?", s.id]] }
}
search_filter_criteria('assigned_to_id') {
- [ [_('[All]'), "A", nil],
- [_('[None]'), "N", ["issues.assigned_to_id is null"]]
+ [ [('['+l(:label_all)+']'), "A", nil],
+ [('['+l(:label_none)+']'), "N", ["issues.assigned_to_id is null"]]
] + @project.users.collect {|s| [s.display_name, s.id, ["issues.assigned_to_id=?", s.id]] }
}
search_filter_criteria('subproject_id') {
- [ [_('[None]'), "N", ["issues.project_id=?", @project.id]],
- [_('[All]'), "A", ["(issues.project_id=? or projects.parent_id=?)", @project.id, @project.id]]
+ [ [('['+l(:label_none)+']'), "N", ["issues.project_id=?", @project.id]],
+ [('['+l(:label_all)+']'), "A", ["(issues.project_id=? or projects.parent_id=?)", @project.id, @project.id]]
]
}
end
diff --git a/redmine/app/models/auth_source_ldap.rb b/redmine/app/models/auth_source_ldap.rb
index 9579a1094..895cf1c63 100644
--- a/redmine/app/models/auth_source_ldap.rb
+++ b/redmine/app/models/auth_source_ldap.rb
@@ -30,7 +30,7 @@ class AuthSourceLdap < AuthSource
# get user's DN
ldap_con = initialize_ldap_con(self.account, self.account_password)
login_filter = Net::LDAP::Filter.eq( self.attr_login, login )
- object_filter = Net::LDAP::Filter.eq( "objectClass", "organizationalPerson" )
+ object_filter = Net::LDAP::Filter.eq( "objectClass", "*" )
dn = String.new
ldap_con.search( :base => self.base_dn,
:filter => object_filter & login_filter,
diff --git a/redmine/app/models/enumeration.rb b/redmine/app/models/enumeration.rb
index 7f985d2f8..122da15c5 100644
--- a/redmine/app/models/enumeration.rb
+++ b/redmine/app/models/enumeration.rb
@@ -21,18 +21,14 @@ class Enumeration < ActiveRecord::Base
validates_presence_of :opt, :name
validates_uniqueness_of :name, :scope => [:opt]
- OPTIONS = [
- ["Issue priorities", "IPRI"],
- ["Document categories", "DCAT"]
- ].freeze
+ OPTIONS = {
+ "IPRI" => :enumeration_issue_priorities,
+ "DCAT" => :enumeration_doc_categories
+ }.freeze
def self.get_values(option)
find(:all, :conditions => ['opt=?', option])
end
-
- def name
- _ self.attributes['name']
- end
private
def check_integrity
diff --git a/redmine/app/models/issue_status.rb b/redmine/app/models/issue_status.rb
index ef9862092..426580987 100644
--- a/redmine/app/models/issue_status.rb
+++ b/redmine/app/models/issue_status.rb
@@ -38,10 +38,6 @@ class IssueStatus < ActiveRecord::Base
statuses
end
- def name
- _ self.attributes['name']
- end
-
private
def check_integrity
raise "Can't delete status" if Issue.find(:first, :conditions => ["status_id=?", self.id]) or IssueHistory.find(:first, :conditions => ["status_id=?", self.id])
diff --git a/redmine/app/models/mailer.rb b/redmine/app/models/mailer.rb
index bf4c85dbb..755764dc0 100644
--- a/redmine/app/models/mailer.rb
+++ b/redmine/app/models/mailer.rb
@@ -45,6 +45,5 @@ class Mailer < ActionMailer::Base
@from = 'redmine@somenet.foo'
@subject = "redMine account activation"
@body['token'] = token
- end
-
+ end
end
diff --git a/redmine/app/models/member.rb b/redmine/app/models/member.rb
index d37936561..1214b6443 100644
--- a/redmine/app/models/member.rb
+++ b/redmine/app/models/member.rb
@@ -16,14 +16,14 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class Member < ActiveRecord::Base
- belongs_to :user
- belongs_to :role
- belongs_to :project
-
- validates_presence_of :role, :user, :project
+ belongs_to :user
+ belongs_to :role
+ belongs_to :project
+
+ validates_presence_of :role, :user, :project
validates_uniqueness_of :user_id, :scope => :project_id
-
- def name
- self.user.display_name
- end
+
+ def name
+ self.user.display_name
+ end
end
diff --git a/redmine/app/models/news.rb b/redmine/app/models/news.rb
index c4884ace5..faafa7eef 100644
--- a/redmine/app/models/news.rb
+++ b/redmine/app/models/news.rb
@@ -16,13 +16,13 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class News < ActiveRecord::Base
- belongs_to :project
- belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
-
- validates_presence_of :title, :description
-
- # returns last created news
- def self.latest
- find(:all, :limit => 5, :include => [ :author, :project ], :order => "news.created_on DESC")
- end
+ belongs_to :project
+ belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
+
+ validates_presence_of :title, :description
+
+ # returns last created news
+ def self.latest
+ find(:all, :limit => 5, :include => [ :author, :project ], :order => "news.created_on DESC")
+ end
end
diff --git a/redmine/app/models/permission.rb b/redmine/app/models/permission.rb
index 164ca21b9..620974608 100644
--- a/redmine/app/models/permission.rb
+++ b/redmine/app/models/permission.rb
@@ -16,27 +16,27 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class Permission < ActiveRecord::Base
- has_and_belongs_to_many :roles
-
- validates_presence_of :controller, :action, :description
-
+ has_and_belongs_to_many :roles
+
+ validates_presence_of :controller, :action, :description
+
GROUPS = {
- 100 => "Project",
- 200 => "Membres",
- 300 => "Versions",
- 400 => "Issue categories",
- 1000 => "Issues",
- 1100 => "News",
- 1200 => "Documents",
- 1300 => "Files",
- }.freeze
+ 100 => :label_project,
+ 200 => :label_member_plural,
+ 300 => :label_version_plural,
+ 400 => :label_issue_category_plural,
+ 1000 => :label_issue_plural,
+ 1100 => :label_news_plural,
+ 1200 => :label_document_plural,
+ 1300 => :label_attachment_plural,
+ }.freeze
@@cached_perms_for_public = nil
@@cached_perms_for_roles = nil
- def name
- self.controller + "/" + self.action
- end
+ def name
+ self.controller + "/" + self.action
+ end
def group_id
(self.sort / 100)*100
diff --git a/redmine/app/models/role.rb b/redmine/app/models/role.rb
index ce880b5cc..6908095e9 100644
--- a/redmine/app/models/role.rb
+++ b/redmine/app/models/role.rb
@@ -17,13 +17,13 @@
class Role < ActiveRecord::Base
before_destroy :check_integrity
- has_and_belongs_to_many :permissions
+ has_and_belongs_to_many :permissions
has_many :workflows, :dependent => true
has_many :members
-
- validates_presence_of :name
- validates_uniqueness_of :name
-
+
+ validates_presence_of :name
+ validates_uniqueness_of :name
+
private
def check_integrity
raise "Can't delete role" if Member.find(:first, :conditions =>["role_id=?", self.id])
diff --git a/redmine/app/models/tracker.rb b/redmine/app/models/tracker.rb
index ca37eb939..a4376a351 100644
--- a/redmine/app/models/tracker.rb
+++ b/redmine/app/models/tracker.rb
@@ -24,10 +24,6 @@ class Tracker < ActiveRecord::Base
validates_presence_of :name
validates_uniqueness_of :name
- def name
- _ self.attributes['name']
- end
-
private
def check_integrity
raise "Can't delete tracker" if Issue.find(:first, :conditions => ["tracker_id=?", self.id])
diff --git a/redmine/app/models/user.rb b/redmine/app/models/user.rb
index ea313483c..ba489ac14 100644
--- a/redmine/app/models/user.rb
+++ b/redmine/app/models/user.rb
@@ -57,7 +57,7 @@ class User < ActiveRecord::Base
# user has an external authentication method
return nil unless user.auth_source.authenticate(login, password)
else
- # local authentication
+ # authentication with local password
return nil unless User.hash_password(password) == user.hashed_password
end
else
@@ -69,6 +69,7 @@ class User < ActiveRecord::Base
onthefly.language = $RDM_DEFAULT_LANG
if onthefly.save
user = find(:first, :conditions => ["login=?", login])
+ logger.info("User '#{user.login}' created on the fly.") if logger
end
end
end
diff --git a/redmine/app/views/account/my_account.rhtml b/redmine/app/views/account/my_account.rhtml
index 097e23181..4aa6e62db 100644
--- a/redmine/app/views/account/my_account.rhtml
+++ b/redmine/app/views/account/my_account.rhtml
@@ -23,7 +23,7 @@
<%= text_field 'user', 'mail' %>
<%=l(:field_language)%>
- <%= select("user", "language", Localization.langs.invert) %>
+ <%= select("user", "language", lang_options_for_select) %>
<%= check_box 'user', 'mail_notification' %> <%=l(:field_mail_notification)%>
@@ -34,7 +34,8 @@
-
+
+<% unless @user.auth_source_id %>
<%=l(:field_password)%>
@@ -51,5 +52,6 @@
<%= submit_tag l(:button_save) %>
<%= end_form_tag %>
-
+
+<% end %>
\ No newline at end of file
diff --git a/redmine/app/views/account/register.rhtml b/redmine/app/views/account/register.rhtml
index 2bdf380f9..3a953a254 100644
--- a/redmine/app/views/account/register.rhtml
+++ b/redmine/app/views/account/register.rhtml
@@ -1,7 +1,6 @@
<%=l(:label_register)%>
<%= start_form_tag %>
-
<%= error_messages_for 'user' %>
@@ -25,22 +24,15 @@
<%= text_field 'user', 'mail' %>
<%=l(:field_language)%>
-<%= select("user", "language", Localization.langs.invert) %>
+<%= select("user", "language", lang_options_for_select) %>
-<% for custom_value in @custom_values %>
-
-
<%= content_tag "label", custom_value.custom_field.name %>
- <% if custom_value.custom_field.is_required? %>* <% end %>
-
- <%= custom_field_tag custom_value %>
-
+<% for custom_value in @custom_values %>
+
<%= custom_field_tag_with_label custom_value %>
<% end %>
-
-
<%= check_box 'user', 'mail_notification' %> <%=l(:field_mail_notification)%>
- <%= submit_tag l(:button_submit) %>
+<%= submit_tag l(:button_submit) %>
<%= end_form_tag %>
diff --git a/redmine/app/views/admin/info.rhtml b/redmine/app/views/admin/info.rhtml
index 03dddafb6..4777a151e 100644
--- a/redmine/app/views/admin/info.rhtml
+++ b/redmine/app/views/admin/info.rhtml
@@ -1,4 +1,4 @@
-<%=_('Information')%>
+<%=l(:label_information_plural)%>
<%=l(:field_version)%>: <%= RDM_APP_NAME %> <%= RDM_APP_VERSION %>
diff --git a/redmine/app/views/custom_fields/list.rhtml b/redmine/app/views/custom_fields/list.rhtml
index fba952100..7f45f7a89 100644
--- a/redmine/app/views/custom_fields/list.rhtml
+++ b/redmine/app/views/custom_fields/list.rhtml
@@ -7,7 +7,7 @@
<%=l(:field_field_format)%>
<%=l(:field_is_required)%>
<%=l(:field_is_for_all)%>
- <%=_('Used by')%>
+ <%=l(:label_used_by)%>
<% for custom_field in @custom_fields %>
diff --git a/redmine/app/views/documents/_form.rhtml b/redmine/app/views/documents/_form.rhtml
index e4dac38e6..ae56cdd46 100644
--- a/redmine/app/views/documents/_form.rhtml
+++ b/redmine/app/views/documents/_form.rhtml
@@ -9,7 +9,7 @@
<%=l(:field_title)%> *
<%= text_field 'document', 'title', :size => 60 %>
-<%=l(:field_description)%> *
+
<%=l(:field_description)%>
<%= text_area 'document', 'description', :cols => 60, :rows => 5 %>
diff --git a/redmine/app/views/documents/edit.rhtml b/redmine/app/views/documents/edit.rhtml
index 2f1e9a94c..059c99d9b 100644
--- a/redmine/app/views/documents/edit.rhtml
+++ b/redmine/app/views/documents/edit.rhtml
@@ -1,8 +1,8 @@
-<%=_('Document')%>
+<%=l(:label_document)%>
<%= start_form_tag :action => 'edit', :id => @document %>
<%= render :partial => 'form' %>
- <%= submit_tag _('Save') %>
+ <%= submit_tag l(:button_save) %>
<%= end_form_tag %>
diff --git a/redmine/app/views/documents/show.rhtml b/redmine/app/views/documents/show.rhtml
index 1cadf7c42..136621331 100644
--- a/redmine/app/views/documents/show.rhtml
+++ b/redmine/app/views/documents/show.rhtml
@@ -1,18 +1,18 @@
<%= @document.title %>
-<%=_('Description')%>: <%= @document.description %>
-<%=_('Category')%>: <%= @document.category.name %>
+<%=l(:field_description)%>: <%= @document.description %>
+<%=l(:field_category)%>: <%= @document.category.name %>
<% if authorize_for('documents', 'edit') %>
- <%= start_form_tag ({ :controller => 'documents', :action => 'edit', :id => @document }, :method => 'get' ) %>
- <%= submit_tag _('Edit') %>
+ <%= start_form_tag({ :controller => 'documents', :action => 'edit', :id => @document }, :method => 'get' ) %>
+ <%= submit_tag l(:button_edit) %>
<%= end_form_tag %>
<% end %>
<% if authorize_for('documents', 'destroy') %>
- <%= start_form_tag ({ :controller => 'documents', :action => 'destroy', :id => @document } ) %>
- <%= submit_tag _('Delete') %>
+ <%= start_form_tag({ :controller => 'documents', :action => 'destroy', :id => @document } ) %>
+ <%= submit_tag l(:button_delete) %>
<%= end_form_tag %>
<% end %>
@@ -24,12 +24,12 @@
<%= link_to attachment.filename, :action => 'download', :id => @document, :attachment_id => attachment %>
<%= format_date(attachment.created_on) %>
<%= attachment.author.display_name %>
- <%= human_size(attachment.filesize) %> <%= attachment.downloads %> <%=_('download')%>(s)
+ <%= human_size(attachment.filesize) %> <%= lwr(:label_download, attachment.downloads) %>
<% if authorize_for('documents', 'destroy_attachment') %>
<%= start_form_tag :action => 'destroy_attachment', :id => @document, :attachment_id => attachment %>
- <%= submit_tag _('Delete'), :class => "button-small" %>
+ <%= submit_tag l(:button_delete), :class => "button-small" %>
<%= end_form_tag %>
<% end %>
@@ -40,8 +40,8 @@
<% if authorize_for('documents', 'add_attachment') %>
<%= start_form_tag ({ :controller => 'documents', :action => 'add_attachment', :id => @document }, :multipart => true) %>
- <%=_('Add file')%> <%= file_field 'attachment', 'file' %>
- <%= submit_tag _('Add') %>
+ <%=l(:label_attachment_new)%> <%= file_field 'attachment', 'file' %>
+ <%= submit_tag l(:button_add) %>
<%= end_form_tag %>
<% end %>
diff --git a/redmine/app/views/enumerations/_form.rhtml b/redmine/app/views/enumerations/_form.rhtml
index d78dc358c..280eebfbd 100644
--- a/redmine/app/views/enumerations/_form.rhtml
+++ b/redmine/app/views/enumerations/_form.rhtml
@@ -3,7 +3,7 @@
<%= hidden_field 'enumeration', 'opt' %>
-<%=_('Name')%>
+
<%=l(:field_name)%>
<%= text_field 'enumeration', 'name' %>
diff --git a/redmine/app/views/enumerations/edit.rhtml b/redmine/app/views/enumerations/edit.rhtml
index 16bd377f3..5c26414eb 100644
--- a/redmine/app/views/enumerations/edit.rhtml
+++ b/redmine/app/views/enumerations/edit.rhtml
@@ -1,10 +1,10 @@
-<%=_('Enumerations')%>
+<%=l(:label_enumerations)%>
<%= start_form_tag :action => 'update', :id => @enumeration %>
<%= render :partial => 'form' %>
- <%= submit_tag _('Save') %>
+ <%= submit_tag l(:button_save) %>
<%= end_form_tag %>
<%= start_form_tag :action => 'destroy', :id => @enumeration %>
- <%= submit_tag _('Delete') %>
+ <%= submit_tag l(:button_delete) %>
<%= end_form_tag %>
\ No newline at end of file
diff --git a/redmine/app/views/enumerations/list.rhtml b/redmine/app/views/enumerations/list.rhtml
index b5ce65c23..15b91c1ac 100644
--- a/redmine/app/views/enumerations/list.rhtml
+++ b/redmine/app/views/enumerations/list.rhtml
@@ -1,22 +1,21 @@
-<%=_('Enumerations')%>
+<%=l(:label_enumerations)%>
-<% for option in Enumeration::OPTIONS %>
+<% Enumeration::OPTIONS.each do |option, name| %>
- <% if @params[:opt]==option[1] %>
+ <% if @params[:opt]==option %>
- <%= image_tag 'dir_open' %> <%=_ option[0] %>
+ <%= image_tag 'dir_open' %> <%= l(name) %>
- <% for value in Enumeration::find(:all, :conditions => [ "opt = ?", option[1]]) %>
+ <% for value in Enumeration.find(:all, :conditions => ["opt = ?", option]) %>
<%= link_to value.name, :action => 'edit', :id => value %>
<% end %>
- <%= link_to ('» ' + _('New')), :action => 'new', :opt => option[1] %>
+ <%= link_to ('» ' + l(:label_new)), :action => 'new', :opt => option %>
<% else %>
- <%= image_tag 'dir' %> <%= link_to _(option[0]), :opt => option[1] %>
+ <%= image_tag 'dir' %> <%= link_to l(name), :opt => option %>
<% end %>
-<% end %>
-
+<% end %>
\ No newline at end of file
diff --git a/redmine/app/views/enumerations/new.rhtml b/redmine/app/views/enumerations/new.rhtml
index 30048f2fd..87ede016c 100644
--- a/redmine/app/views/enumerations/new.rhtml
+++ b/redmine/app/views/enumerations/new.rhtml
@@ -1,6 +1,6 @@
-<%=_('New enumeration')%>
+<%=l(:label_enumeration_new)%>
<%= start_form_tag :action => 'create' %>
<%= render :partial => 'form' %>
- <%= submit_tag _('Create') %>
+ <%= submit_tag l(:button_create) %>
<%= end_form_tag %>
diff --git a/redmine/app/views/issue_categories/_form.rhtml b/redmine/app/views/issue_categories/_form.rhtml
index eba2f1672..fdf0cfda8 100644
--- a/redmine/app/views/issue_categories/_form.rhtml
+++ b/redmine/app/views/issue_categories/_form.rhtml
@@ -1,7 +1,7 @@
<%= error_messages_for 'issue_category' %>
-<%=_('Name')%>
+
<%l(:field_name)%>
<%= text_field 'issue_category', 'name' %>
diff --git a/redmine/app/views/issue_categories/edit.rhtml b/redmine/app/views/issue_categories/edit.rhtml
index 3afdd1c63..087dd7c1b 100644
--- a/redmine/app/views/issue_categories/edit.rhtml
+++ b/redmine/app/views/issue_categories/edit.rhtml
@@ -1,6 +1,6 @@
-Editing issue category
+<%=l(:label_issue_category)%>
<%= start_form_tag :action => 'edit', :id => @category %>
<%= render :partial => 'form' %>
- <%= submit_tag _('Save') %>
+ <%= submit_tag l(:button_save) %>
<%= end_form_tag %>
diff --git a/redmine/app/views/issue_statuses/_form.rhtml b/redmine/app/views/issue_statuses/_form.rhtml
index 7c4d63674..237466a3e 100644
--- a/redmine/app/views/issue_statuses/_form.rhtml
+++ b/redmine/app/views/issue_statuses/_form.rhtml
@@ -1,16 +1,16 @@
<%= error_messages_for 'issue_status' %>
-<%=_('Name')%> *
+
<%=l(:field_name)%> *
<%= text_field 'issue_status', 'name' %>
<%= check_box 'issue_status', 'is_closed' %>
-<%=_('Issue closed')%>
+<%=l(:field_is_closed)%>
<%= check_box 'issue_status', 'is_default' %>
-<%=_('Default status')%>
+<%=l(:field_is_default)%>
-<%=_('Color')%>
+
<%=l(:field_html_color)%>
#<%= text_field 'issue_status', 'html_color', :maxlength => 6 %> *
diff --git a/redmine/app/views/issue_statuses/edit.rhtml b/redmine/app/views/issue_statuses/edit.rhtml
index d3ed92201..140a40d94 100644
--- a/redmine/app/views/issue_statuses/edit.rhtml
+++ b/redmine/app/views/issue_statuses/edit.rhtml
@@ -1,6 +1,6 @@
-<%=_('Issue status')%>
+<%=l(:label_issue_status)%>
<%= start_form_tag :action => 'update', :id => @issue_status %>
<%= render :partial => 'form' %>
- <%= submit_tag _('Save') %>
+ <%= submit_tag l(:button_save) %>
<%= end_form_tag %>
diff --git a/redmine/app/views/issue_statuses/list.rhtml b/redmine/app/views/issue_statuses/list.rhtml
index 8c0532263..ce7f8469c 100644
--- a/redmine/app/views/issue_statuses/list.rhtml
+++ b/redmine/app/views/issue_statuses/list.rhtml
@@ -1,11 +1,11 @@
-<%=_('Issue statuses')%>
+<%=l(:label_issue_status_plural)%>
- <%=_('Status')%>
- <%=_('Default status')%>
- <%=_('Issue closed')%>
- <%=_('Color')%>
+ <%=l(:field_status)%>
+ <%=l(:field_is_default)%>
+ <%=l(:field_is_closed)%>
+ <%=l(:field_html_color)%>
@@ -17,7 +17,7 @@
 
<%= start_form_tag :action => 'destroy', :id => status %>
- <%= submit_tag _('Delete'), :class => "button-small" %>
+ <%= submit_tag l(:button_delete), :class => "button-small" %>
<%= end_form_tag %>
@@ -27,4 +27,4 @@
<%= pagination_links_full @issue_status_pages %>
-<%= link_to '» ' + _('New issue status'), :action => 'new' %>
+<%= link_to '» ' + l(:label_issue_status_new), :action => 'new' %>
diff --git a/redmine/app/views/issue_statuses/new.rhtml b/redmine/app/views/issue_statuses/new.rhtml
index f7ac082e9..1dc61eb85 100644
--- a/redmine/app/views/issue_statuses/new.rhtml
+++ b/redmine/app/views/issue_statuses/new.rhtml
@@ -1,6 +1,6 @@
-<%=_('New issue status')%>
+<%=l(:label_issue_status_new)%>
<%= start_form_tag :action => 'create' %>
<%= render :partial => 'form' %>
- <%= submit_tag _('Create') %>
+ <%= submit_tag l(:button_create) %>
<%= end_form_tag %>
diff --git a/redmine/app/views/issues/_list_simple.rhtml b/redmine/app/views/issues/_list_simple.rhtml
index 66b70a1da..bcc05d1e8 100644
--- a/redmine/app/views/issues/_list_simple.rhtml
+++ b/redmine/app/views/issues/_list_simple.rhtml
@@ -1,28 +1,28 @@
<% if issues.length > 0 %>
-
-
-
-
- #
- <%=_('Tracker')%>
- <%=_('Subject')%>
-
- <% for issue in issues %>
-
-
- <%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %>
-
- <%= issue.project.name %> - <%= issue.tracker.name %>
- <%= issue.status.name %> - <%= format_time(issue.updated_on) %>
-
- <%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %>
-
-
- <% end %>
-
-
+
+
+
+
+ #
+ <%=l(:field_tracker)%>
+ <%=l(:field_subject)%>
-
+ <% for issue in issues %>
+
+
+ <%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %>
+
+ <%= issue.project.name %> - <%= issue.tracker.name %>
+ <%= issue.status.name %> - <%= format_time(issue.updated_on) %>
+
+ <%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %>
+
+
+ <% end %>
+
+
+
+
<% else %>
- <%=_('No issue')%>
+ <%=l(:label_no_data)%>
<% end %>
\ No newline at end of file
diff --git a/redmine/app/views/issues/change_status.rhtml b/redmine/app/views/issues/change_status.rhtml
index aa85ae249..35494dbb9 100644
--- a/redmine/app/views/issues/change_status.rhtml
+++ b/redmine/app/views/issues/change_status.rhtml
@@ -1,4 +1,4 @@
-<%=_('Issue')%> #<%= @issue.id %>: <%= @issue.subject %>
+<%=l(:label_issue)%> #<%= @issue.id %>: <%= @issue.subject %>
<%= error_messages_for 'history' %>
<%= start_form_tag :action => 'change_status', :id => @issue %>
@@ -7,26 +7,25 @@
<%= hidden_field 'history', 'status_id' %>
-
<%=_('New status')%>: <%= @history.status.name %>
+
<%=l(:label_issue_status_new)%>: <%= @history.status.name %>
-
<%=_('Assigned to')%>
+
<%=l(:field_assigned_to)%>
<%= options_from_collection_for_select @assignable_to, "id", "display_name", @issue.assigned_to_id %>
-
<%=_('Fixed in version')%>
+
<%=l(:field_fixed_version)%>
--none--
<%= options_from_collection_for_select @issue.project.versions, "id", "name", @issue.fixed_version_id %>
-
<%=_('Notes')%>
+
<%=l(:field_notes)%>
<%= text_area 'history', 'notes', :cols => 60, :rows => 10 %>
-
-<%= submit_tag _('Save') %>
+<%= submit_tag l(:button_save) %>
<%= end_form_tag %>
diff --git a/redmine/app/views/issues/edit.rhtml b/redmine/app/views/issues/edit.rhtml
index 876542fbe..b8fc6ad4c 100644
--- a/redmine/app/views/issues/edit.rhtml
+++ b/redmine/app/views/issues/edit.rhtml
@@ -1,21 +1,21 @@
-<%=_@issue.tracker.name%> #<%= @issue.id %> - <%= @issue.subject %>
+<%= @issue.tracker.name %> #<%= @issue.id %> - <%= @issue.subject %>
<%= error_messages_for 'issue' %>
<%= start_form_tag :action => 'edit', :id => @issue %>
-
<%=_('Status')%>: <%= @issue.status.name %>
+
<%=l(:field_status)%>: <%= @issue.status.name %>
-
<%=_('Priority')%> *
+
<%=l(:field_priority)%> *
<%= options_from_collection_for_select @priorities, "id", "name", @issue.priority_id %>
-
<%=_('Assigned to')%>
+
<%=l(:field_assigned_to)%>
<%= options_from_collection_for_select @issue.project.members, "user_id", "name", @issue.assigned_to_id %>
@@ -23,24 +23,27 @@
-
<%=_('Category')%>
+
<%=l(:field_category)%>
<%= options_from_collection_for_select @project.issue_categories, "id", "name", @issue.category_id %>
-
<%=_('Subject')%> *
+
<%=l(:field_subject)%> *
<%= text_field 'issue', 'subject', :size => 60 %>
-
<%=_('Description')%> *
+
<%=l(:field_description)%> *
<%= text_area 'issue', 'description', :cols => 60, :rows => 10 %>
+
+
<%=l(:field_due_date)%>
+<%= date_select 'issue', 'due_date', :start_year => Date.today.year, :include_blank => true %>
<% for custom_value in @custom_values %>
<%= custom_field_tag_with_label custom_value %>
<% end %>
-
<%=_('Fixed in version')%>
+
<%=l(:field_fixed_version)%>
--none--
<%= options_from_collection_for_select @project.versions, "id", "name", @issue.fixed_version_id %>
@@ -49,5 +52,5 @@
-<%= submit_tag _('Save') %>
+<%= submit_tag l(:button_save) %>
<%= end_form_tag %>
diff --git a/redmine/app/views/issues/show.rhtml b/redmine/app/views/issues/show.rhtml
index 649f9adf9..acba6af0c 100644
--- a/redmine/app/views/issues/show.rhtml
+++ b/redmine/app/views/issues/show.rhtml
@@ -1,42 +1,43 @@
-
-<%=_(@issue.tracker.name)%> #<%= @issue.id %> - <%= @issue.subject %>
+<%= @issue.tracker.name %> #<%= @issue.id %> - <%= @issue.subject %>
-
<%=_('Status')%>: <%= @issue.status.name %>
-
<%=_('Priority')%>: <%= @issue.priority.name %>
-
<%=_('Category')%>: <%= @issue.category.name unless @issue.category_id.nil? %>
-
<%=_('Author')%>: <%= @issue.author.display_name %>
-
<%=_('Assigned to')%>: <%= @issue.assigned_to.display_name unless @issue.assigned_to.nil? %>
-
-
<%=_('Subject')%>: <%= @issue.subject %>
-
<%=_('Description')%>: <%= simple_format auto_link @issue.description %>
-
<%=_('Created on')%>: <%= format_date(@issue.created_on) %>
+
+<%=l(:field_status)%> : <%= @issue.status.name %>    
+<%=l(:field_priority)%> : <%= @issue.priority.name %>    
+<%=l(:field_assigned_to)%> : <%= @issue.assigned_to ? @issue.assigned_to.display_name : "-" %>    
+<%=l(:field_category)%> : <%= @issue.category ? @issue.category.name : "-" %>
+
+
<%=l(:field_author)%> : <%= @issue.author.display_name %>
+
<%=l(:field_subject)%> : <%= @issue.subject %>
+
<%=l(:field_description)%> : <%= simple_format auto_link @issue.description %>
+
<%=l(:field_due_date)%> : <%= format_date(@issue.due_date) %>
+
<%=l(:field_created_on)%> : <%= format_date(@issue.created_on) %>
<% for custom_value in @custom_values %>
-
<%= custom_value.custom_field.name %> : <%= show_value custom_value %>
+
<%= custom_value.custom_field.name %> : <%= show_value custom_value %>
<% end %>
<% if authorize_for('issues', 'edit') %>
<%= start_form_tag ({:controller => 'issues', :action => 'edit', :id => @issue}, :method => "get" ) %>
- <%= submit_tag _('Edit') %>
+ <%= submit_tag l(:button_edit) %>
<%= end_form_tag %>
<% end %>
<% if authorize_for('issues', 'change_status') and @status_options and !@status_options.empty? %>
<%= start_form_tag ({:controller => 'issues', :action => 'change_status', :id => @issue}) %>
-
<%=_('Change status')%>:
+
<%=l(:label_change_status)%> :
<%= options_from_collection_for_select @status_options, "id", "name" %>
- <%= submit_tag _ "Update..." %>
+ <%= submit_tag l(:button_change) %>
<%= end_form_tag %>
<% end %>
<% if authorize_for('issues', 'destroy') %>
<%= start_form_tag ({:controller => 'issues', :action => 'destroy', :id => @issue} ) %>
- <%= submit_tag _ "Delete" %>
+ <%= submit_tag l(:button_delete) %>
<%= end_form_tag %>
<% end %>
@@ -46,7 +47,7 @@
-
<%=_('History')%>
+
<%=l(:label_history)%>
<% for history in @issue.histories.find(:all, :include => :author) %>
@@ -64,7 +65,7 @@
-
<%=_('Attachments')%>
+
<%=l(:label_attachment_plural)%>
<% for attachment in @issue.attachments %>
@@ -74,7 +75,7 @@
<% if authorize_for('issues', 'destroy_attachment') %>
<%= start_form_tag :action => 'destroy_attachment', :id => @issue, :attachment_id => attachment %>
- <%= submit_tag _('Delete'), :class => "button-small" %>
+ <%= submit_tag l(:button_delete), :class => "button-small" %>
<%= end_form_tag %>
<% end %>
@@ -84,8 +85,8 @@
<% if authorize_for('issues', 'add_attachment') %>
<%= start_form_tag ({ :controller => 'issues', :action => 'add_attachment', :id => @issue }, :multipart => true) %>
- <%=_('Add file')%>: <%= file_field 'attachment', 'file' %>
- <%= submit_tag _('Add') %>
+ <%=l(:label_attachment_new)%>: <%= file_field 'attachment', 'file' %>
+ <%= submit_tag l(:button_add) %>
<%= end_form_tag %>
<% end %>
diff --git a/redmine/app/views/layouts/base.rhtml b/redmine/app/views/layouts/base.rhtml
index de99a0b4a..dd85ed5c3 100644
--- a/redmine/app/views/layouts/base.rhtml
+++ b/redmine/app/views/layouts/base.rhtml
@@ -14,33 +14,33 @@