Conflicts:
	config/locales/zh.yml
This commit is contained in:
alan 2015-03-02 14:50:10 +08:00
commit 22ac578ede
53 changed files with 1709 additions and 526 deletions

View File

@ -8,10 +8,11 @@ module Mobile
optional :school_id, type: Integer, desc: '传入学校id,返回该学校课程列表' optional :school_id, type: Integer, desc: '传入学校id,返回该学校课程列表'
requires :per_page_count, type: Integer, desc: '每页总数' requires :per_page_count, type: Integer, desc: '每页总数'
requires :page, type: Integer, desc: '当前页码' requires :page, type: Integer, desc: '当前页码'
optional :token, type: String
end end
get do get do
cs = CoursesService.new cs = CoursesService.new
courses = cs.course_list(params) courses = cs.course_list(params,current_user.nil? ? User.find(2):current_user)
present :data, courses, with: Mobile::Entities::Course present :data, courses, with: Mobile::Entities::Course
present :status, 0 present :status, 0
end end
@ -130,10 +131,11 @@ module Mobile
desc "搜索课程" desc "搜索课程"
params do params do
requires :name, type: String, desc: "课程名" requires :name, type: String, desc: "课程名"
optional :token, type: String
end end
get 'search' do get 'search' do
cs = CoursesService.new cs = CoursesService.new
courses = cs.search_course(params) courses = cs.search_course(params,current_user.nil? ? User.find(2):current_user)
present :data, courses, with: Mobile::Entities::Course present :data, courses, with: Mobile::Entities::Course
present :status, 0 present :status, 0
end end
@ -165,13 +167,15 @@ module Mobile
desc "返回单个课程" desc "返回单个课程"
params do params do
requires :id, type: Integer requires :id, type: Integer
optional :token, type: String
end end
route_param :id do route_param :id do
get do get do
cs = CoursesService.new cs = CoursesService.new
course = cs.show_course(params,(current_user.nil? ? User.find(2):current_user)) course = cs.show_course(params,(current_user.nil? ? User.find(2):current_user))
#course = Course.find(params[:id]) #course = Course.find(params[:id])
{status: 0, data: course} present :data, course, with: Mobile::Entities::Course
present :status, 0
end end
end end

View File

@ -82,6 +82,7 @@ module Mobile
desc "用户搜索" desc "用户搜索"
params do params do
requires :name, type: String, desc: '用户名关键字' requires :name, type: String, desc: '用户名关键字'
requires :search_by, type: String,desc: '搜索依据0 昵称1 用户名2 邮箱'
end end
get 'search/search_user' do get 'search/search_user' do
us = UsersService.new us = UsersService.new

View File

@ -1,6 +1,7 @@
module Mobile module Mobile
module Entities module Entities
class Course < Grape::Entity class Course < Grape::Entity
include Redmine::I18n
def self.course_expose(field) def self.course_expose(field)
expose field do |f,opt| expose field do |f,opt|
c = nil c = nil
@ -9,9 +10,11 @@ module Mobile
else else
c = f[:course] c = f[:course]
end end
if field == :img_url if f.is_a?(Hash) && f.key?(field)
f[field] if f.is_a?(Hash) && f.key?(field) f[field] if f.is_a?(Hash) && f.key?(field)
#f.img_url if f.respond_to?(:img_url) #f.img_url if f.respond_to?(:img_url)
elsif field == :created_at || field == :updated_at
(format_time(c[field]) if (c.is_a?(Hash) && c.key?(field))) || (format_time(c.send(field)) if c.respond_to?(field))
else else
(c[field] if (c.is_a?(Hash) && c.key?(field))) || (c.send(field) if c.respond_to?(field)) (c[field] if (c.is_a?(Hash) && c.key?(field))) || (c.send(field) if c.respond_to?(field))
end end
@ -53,6 +56,8 @@ module Mobile
expose :my_homework,using: Mobile::Entities::HomeworkAttach do |f, opt| expose :my_homework,using: Mobile::Entities::HomeworkAttach do |f, opt|
f[:my_homework] if f.is_a?(Hash) && f.key?(:my_homework) f[:my_homework] if f.is_a?(Hash) && f.key?(:my_homework)
end end
course_expose :current_user_is_member
course_expose :current_user_is_teacher
end end
end end
end end

View File

@ -6,12 +6,11 @@ module Mobile
c[field] if (c.is_a?(Hash) && c.key?(field)) c[field] if (c.is_a?(Hash) && c.key?(field))
end end
end end
course_dynamic_expose :type
course_dynamic_expose :count
course_dynamic_expose :course_name course_dynamic_expose :course_name
course_dynamic_expose :need_anonymous_comments_count course_dynamic_expose :course_id
course_dynamic_expose :student_commit_number course_dynamic_expose :course_img_url
course_dynamic_expose :news_count
course_dynamic_expose :message_count
end end
end end
end end

View File

@ -18,8 +18,14 @@ module Mobile
homework_expose :id homework_expose :id
#课程名称 #课程名称
homework_expose :course_name homework_expose :course_name
#课程老师 #作业发布者
homework_expose :course_teacher expose :author,using: Mobile::Entities::User do |f, opt|
f[:author]
end
#作业发布者真名
homework_expose :author_real_name
#作业次数 #作业次数
homework_expose :homework_times homework_expose :homework_times
#作业名称 #作业名称

View File

@ -6,7 +6,11 @@ module Mobile
def self.homework_jours_expose(field) def self.homework_jours_expose(field)
expose field do |f,opt| expose field do |f,opt|
if f.is_a?(Hash) && f.key?(field) if f.is_a?(Hash) && f.key?(field)
if field == :created_at
format_time(f[field])
else
f[field] f[field]
end
elsif f.is_a?(::SeemsRateableRates) elsif f.is_a?(::SeemsRateableRates)
end end

View File

@ -1,6 +1,7 @@
module Mobile module Mobile
module Entities module Entities
class News < Grape::Entity class News < Grape::Entity
include Redmine::I18n
def self.news_expose(field) def self.news_expose(field)
expose field do |f,opt| expose field do |f,opt|
if f.is_a?(Hash) && f.key?(field) if f.is_a?(Hash) && f.key?(field)
@ -9,13 +10,18 @@ module Mobile
n = f[:news] n = f[:news]
comments = f[:comments] comments = f[:comments]
if n.is_a?(::News) if n.is_a?(::News)
if field == :created_on
format_time(n.send(field)) if n.respond_to?(field)
else
n.send(field) if n.respond_to?(field) n.send(field) if n.respond_to?(field)
end end
end end
end
end
end
end
end
news_expose :id
#新闻标题 #新闻标题
news_expose :title news_expose :title

View File

@ -99,7 +99,8 @@ class CoursesController < ApplicationController
#更新课程信息 #更新课程信息
def update def update
cs = CoursesService.new cs = CoursesService.new
@course = cs.edit_course params,@course,User.current c = cs.edit_course params,@course,User.current
@course = c[:course]
if @course.errors.full_messages.count <= 0 if @course.errors.full_messages.count <= 0
respond_to do |format| respond_to do |format|
format.html { format.html {
@ -956,10 +957,34 @@ class CoursesController < ApplicationController
else else
render_403 render_403
end end
end end
#根据已有课程复制课程
#param id:已有课程ID
def copy_course
if @course
@new_course = Course.new @course.attributes
@new_course.tea_id = User.current.id
@new_course.created_at = DateTime.now
@new_course.updated_at = DateTime.now
@new_course.endup_time = nil
if @new_course.save
r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first
m = Member.new(:user => User.current, :roles => [r])
m.project_id = -1
course = CourseInfos.new(:user_id => User.current.id, :course_id => @new_course.id)
#user_grades = UserGrade.create(:user_id => User.current.id, :course_id => @course.id)
if @new_course.is_public == 1
course_status = CourseStatus.create(:course_id => @new_course.id, :watchers_count => 0, :changesets_count => 0, :grade => 0, :course_type => 1)
end
@new_course.members << m
@new_course.course_infos << course
redirect_to settings_course_url @new_course
end
else
render_404
end
end
private private

View File

@ -140,8 +140,6 @@ module HomeworkAttachHelper
####################################################### #######################################################
def get_student_not_batch_homework_list bid,user def get_student_not_batch_homework_list bid,user
HomeworkAttach.find_by_sql("SELECT * FROM(SELECT homework_attaches.*, HomeworkAttach.find_by_sql("SELECT * FROM(SELECT homework_attaches.*,
(SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 1) AS t_score,
(SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 0) AS s_score,
(SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{user.id} AND is_teacher_score = 0) AS m_score (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{user.id} AND is_teacher_score = 0) AS m_score
FROM homework_attaches FROM homework_attaches
INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id

View File

@ -314,28 +314,28 @@ module WelcomeHelper
str = '&nbsp;'.html_safe str = '&nbsp;'.html_safe
case event.event_type case event.event_type
when 'news' when 'news'
str << content_tag("span", l(:field_user_active_published)) << str << content_tag("span", l('user.active.published')) <<
content_tag("span", find_all_event_type(event)) << content_tag("span", find_all_event_type(event)) <<
':&nbsp;'.html_safe << ':&nbsp;'.html_safe <<
link_to(strip_tags(event.event_description).gsub(/&nbsp;/,''), event.event_url, {:title => event.event_description}) link_to(strip_tags(event.event_description).gsub(/&nbsp;/,''), event.event_url, {:title => event.event_description})
when 'issue', 'message' , 'bid' , 'wiki-page' , 'document' when 'issue', 'message' , 'bid' , 'wiki-page' , 'document'
str << content_tag("span", l(:field_user_active_published)) << str << content_tag("span", l('user.active.published')) <<
content_tag("span", find_all_event_type(event)) << content_tag("span", find_all_event_type(event)) <<
':&nbsp;'.html_safe << ':&nbsp;'.html_safe <<
link_to(event.event_title, event.event_url, {:title => event.event_title}) link_to(event.event_title, event.event_url, {:title => event.event_title})
when 'reply' ,'Reply', 'Memo' when 'reply' ,'Reply', 'Memo'
str << content_tag("span", l(:field_user_active_published)) << str << content_tag("span", l('user.active.published')) <<
content_tag("span", find_all_event_type(event)) << content_tag("span", find_all_event_type(event)) <<
':&nbsp;'.html_safe << ':&nbsp;'.html_safe <<
link_to(strip_tags(event.event_description).gsub(/&nbsp;/,''), event.event_url, {:title => event.event_description}) link_to(strip_tags(event.event_description).gsub(/&nbsp;/,''), event.event_url, {:title => event.event_description})
when 'attachment' when 'attachment'
str << content_tag('span', l(:field_user_active_uploaded)) << str << content_tag('span', l('user.active.uploaded')) <<
content_tag('span', find_all_event_type(event)) << content_tag('span', find_all_event_type(event)) <<
':&nbsp;'.html_safe << ':&nbsp;'.html_safe <<
link_to(event.event_title, event.event_url, {:title => event.event_title}) << link_to(event.event_title, event.event_url, {:title => event.event_title}) <<
link_to(('&nbsp;['.html_safe+l(:label_downloads_list).to_s << ']'), project_files_path(event.container.project), :class => "attachments_list_color") link_to(('&nbsp;['.html_safe+l(:label_downloads_list).to_s << ']'), project_files_path(event.container.project), :class => "attachments_list_color")
else else
str << content_tag("span", l(:field_user_active_updated)) << str << content_tag("span", l('user.active.updated')) <<
content_tag("span", find_all_event_type(event)) << content_tag("span", find_all_event_type(event)) <<
':&nbsp;'.html_safe << link_to(event.event_title, event.event_url, {:title => event.event_title}) ':&nbsp;'.html_safe << link_to(event.event_title, event.event_url, {:title => event.event_title})
end end

View File

@ -3,11 +3,11 @@ class CoursesService
include CoursesHelper include CoursesHelper
include HomeworkAttachHelper include HomeworkAttachHelper
include ApiHelper include ApiHelper
#TODO:尚未整合权限系统
#参数school_id为0或不传时返回所有课程否则返回对应学校的课程 #参数school_id为0或不传时返回所有课程否则返回对应学校的课程
#参数per_page_count分页功能每页显示的课程数 #参数per_page_count分页功能每页显示的课程数
#参数page分页功能当前页码 #参数page分页功能当前页码
def course_list params def course_list params,current_user
@school_id = params[:school_id] @school_id = params[:school_id]
per_page_option = params[:per_page_count] || 10 per_page_option = params[:per_page_count] || 10
page_no = params[:page] || 1 page_no = params[:page] || 1
@ -25,13 +25,13 @@ class CoursesService
@courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page) @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page)
course_list = [] course_list = []
@courses.each do |course| @courses.each do |course|
course_list << {:course => course,:img_url => url_to_avatar(course)} course_list << {:course => course,:img_url => url_to_avatar(course),:current_user_is_member => current_user.member_of_course?(course),:current_user_is_teacher => is_course_teacher(current_user,course)}
end end
course_list course_list
end end
#搜索课程 #搜索课程
def search_course params def search_course params,current_user
courses_all = Course.all_course courses_all = Course.all_course
name = params[:name] name = params[:name]
if name.blank? if name.blank?
@ -44,6 +44,11 @@ class CoursesService
@courses_all = @courses; @courses_all = @courses;
end end
@courses_all @courses_all
course_list = []
@courses_all.each do |course|
course_list << {:course => course,:img_url => url_to_avatar(course),:current_user_is_member => current_user.member_of_course?(course),:current_user_is_teacher => is_course_teacher(current_user,course)}
end
course_list
end end
#获取头像 #获取头像
@ -117,7 +122,7 @@ class CoursesService
scope = @course ? @course.news.course_visible(current_user) : News.course_visible(current_user) scope = @course ? @course.news.course_visible(current_user) : News.course_visible(current_user)
news = [] news = []
scope.each do |n| scope.each do |n|
news << {:title => n.title,:author_name => n.author.name,:author_id => n.author.id, :description => n.description,:created_on => format_time(n.created_on),:comments_count => n.comments_count} news << {:id => n.id,:title => n.title,:author_name => n.author.name,:author_id => n.author.id, :description => n.description,:created_on => format_time(n.created_on),:comments_count => n.comments_count}
end end
news news
end end
@ -158,7 +163,7 @@ class CoursesService
unless (course.is_public == 1 || currnet_user.member_of_course?(@course)|| currnet_user.admin?) unless (course.is_public == 1 || currnet_user.member_of_course?(@course)|| currnet_user.admin?)
raise '403' raise '403'
end end
course {:course => course,:img_url => url_to_avatar(course),:current_user_is_member => current_user.member_of_course?(course),:current_user_is_teacher => is_course_teacher(current_user,course)}
end end
#创建课程 #创建课程
@ -206,7 +211,7 @@ class CoursesService
@course.members << m @course.members << m
@course.course_infos << course @course.course_infos << course
end end
@course {:course => @course,:img_url => url_to_avatar(@course),:current_user_is_member => current_user.member_of_course?(@course),:current_user_is_teacher => is_course_teacher(current_user,@course)}
end end
#验证编辑课程的权限 #验证编辑课程的权限
@ -243,7 +248,7 @@ class CoursesService
course_status = CourseStatus.create(:course_id => course.id, :grade => 0) course_status = CourseStatus.create(:course_id => course.id, :grade => 0)
end end
end end
course {:course => course,:img_url => url_to_avatar(course),:current_user_is_member => current_user.member_of_course?(course),:current_user_is_teacher => is_course_teacher(current_user,course)}
end end
#退出课程 #退出课程
@ -340,12 +345,18 @@ class CoursesService
end end
news_count = course.news.count news_count = course.news.count
message_count = course.journals_for_messages.count message_count = course.journals_for_messages.count
{:course_name => course.name,:need_anonymous_comments_count=>need_anonymous_comments_count,:student_commit_number=>student_commit_number,:news_count=> news_count,:message_count=>message_count} result = []
result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 1,:count => message_count}
result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 2,:count => need_anonymous_comments_count}
result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 3,:count => student_commit_number}
result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 4,:count => news_count}
#{:course_name => course.name,:need_anonymous_comments_count=>need_anonymous_comments_count,:student_commit_number=>student_commit_number,:news_count=> news_count,:message_count=>message_count}
result
end end
private private
def show_homework_info course,bid,current_user,is_course_teacher def show_homework_info course,bid,current_user,is_course_teacher
author = bid.author.lastname + bid.author.firstname author_real_name = bid.author.lastname + bid.author.firstname
many_times = course.homeworks.index(bid) + 1 many_times = course.homeworks.index(bid) + 1
name = bid.name name = bid.name
homework_count = bid.homeworks.count #已提交的作业数量 homework_count = bid.homeworks.count #已提交的作业数量
@ -358,7 +369,7 @@ class CoursesService
end end
#end #end
open_anonymous_evaluation = bid.open_anonymous_evaluation open_anonymous_evaluation = bid.open_anonymous_evaluation
{:course_name => course.name,:id => bid.id, :course_teacher => author, :homework_times => many_times, :homework_name => name, :homework_count => homework_count,:student_questions_count => student_questions_count, {:course_name => course.name,:id => bid.id, :author => bid.author,:author_real_name => author_real_name, :homework_times => many_times, :homework_name => name, :homework_count => homework_count,:student_questions_count => student_questions_count,
:description => description, :homework_state => state,:open_anonymous_evaluation => open_anonymous_evaluation,:homework_for_anonymous_comments => homework_for_anonymous_comments} :description => description, :homework_state => state,:open_anonymous_evaluation => open_anonymous_evaluation,:homework_for_anonymous_comments => homework_for_anonymous_comments}
end end

View File

@ -6,6 +6,7 @@ class HomeworkService
include WordsHelper include WordsHelper
include ApiHelper include ApiHelper
include HomeworkAttachHelper include HomeworkAttachHelper
include CoursesHelper
# 作业详情(老师才显示启动匿评,学生不显示 # 作业详情(老师才显示启动匿评,学生不显示
# many_times 第几次(作业) # many_times 第几次(作业)
@ -25,7 +26,7 @@ class HomeworkService
state = @bid.comment_status state = @bid.comment_status
#end #end
open_anonymous_evaluation = @bid.open_anonymous_evaluation open_anonymous_evaluation = @bid.open_anonymous_evaluation
{:course_name => course.name,:id => @bid.id, :course_teacher => author, :homework_times => many_times, :homework_name => name, :homework_count => homework_count,:student_questions_count => student_questions_count, {:course_name => course.name,:id => @bid.id, :author => @bid.author,:author_real_name =>author, :homework_times => many_times, :homework_name => name, :homework_count => homework_count,:student_questions_count => student_questions_count,
:description => description, :homework_state => state,:open_anonymous_evaluation => open_anonymous_evaluation} :description => description, :homework_state => state,:open_anonymous_evaluation => open_anonymous_evaluation}
end end
@ -276,7 +277,7 @@ class HomeworkService
hw = bid.homeworks.where("user_id = #{current_user.id}") hw = bid.homeworks.where("user_id = #{current_user.id}")
my_homeworks << hw[0] unless (hw.nil? || hw[0].nil?) my_homeworks << hw[0] unless (hw.nil? || hw[0].nil?)
end end
course_list << {:course => mp.course,:img_url => url_to_avatar(mp.course),:my_homework => my_homeworks} course_list << {:course => mp.course,:img_url => url_to_avatar(mp.course),:my_homework => my_homeworks,:current_user_is_member => current_user.member_of_course?(mp.course),:current_user_is_teacher => is_course_teacher(current_user,mp.course)}
end end
course_list course_list
end end

View File

@ -158,7 +158,7 @@ class UsersService
membership.sort! {|older, newer| newer.created_on <=> older.created_on } membership.sort! {|older, newer| newer.created_on <=> older.created_on }
course_list = [] course_list = []
membership.each do |mp| membership.each do |mp|
course_list << {:course => mp.course,:img_url => url_to_avatar(mp.course)} course_list << {:course => mp.course,:img_url => url_to_avatar(mp.course),:current_user_is_member => current_user.member_of_course?(mp.course),:current_user_is_teacher => is_course_teacher(current_user,mp.course)}
end end
course_list course_list
end end

View File

@ -68,7 +68,7 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<%=link_to "主页", home_path %> > <%=link_to l(:field_homepage), home_path %> >
<span> <span>
<%=link_to @user.name, user_path %> <%=link_to @user.name, user_path %>
</span> </span>

View File

@ -151,9 +151,9 @@
<!-- modified by fq --> <!-- modified by fq -->
<% if !User.current.user_extensions.nil? && !User.current.user_extensions.student_id.nil? %> <% if !User.current.user_extensions.nil? && !User.current.user_extensions.student_id.nil? %>
<%= text_field_tag :no, User.current.user_extensions.student_id, :placeholder => "请输入学号" %> <%= text_field_tag :no, User.current.user_extensions.student_id, :placeholder => l(:label_account_identity_studentID) %>
<% else %> <% else %>
<%= text_field_tag :no, nil, :placeholder => "请输入学号" %></span> <%= text_field_tag :no, nil, :placeholder => l(:label_account_identity_studentID) %></span>
<% end %> <% end %>
<!-- end --> <!-- end -->
@ -217,18 +217,18 @@
<label for="occupation_name"><%= l(:field_occupation) %></label> <label for="occupation_name"><%= l(:field_occupation) %></label>
<span class="required">&nbsp;</span> <span class="required">&nbsp;</span>
<% if User.current.user_extensions.nil? %> <% if User.current.user_extensions.nil? %>
<input id="province" name="province" style="display: none" type="text" value="请单击选择省份及学校" readonly> <input id="province" name="province" style="display: none" type="text" value=<%= l(:field_occupation_click) %> readonly>
<input id="occupation" name="occupation" style="display: none" type="text" value="" /> <input id="occupation" name="occupation" style="display: none" type="text" value="" />
<input id="occupation_name" type="text" style="display: none" readonly/> <input id="occupation_name" type="text" style="display: none" readonly/>
<% else %> <% else %>
<% if User.current.user_extensions.identity == 3 || User.current.user_extensions.identity == 2 %> <% if User.current.user_extensions.identity == 3 || User.current.user_extensions.identity == 2 %>
<input id="province" name="province" style="display: none" type="text" value="请单击选择省份及学校" readonly> <input id="province" name="province" style="display: none" type="text" value=<%= l(:field_occupation_click) %> readonly>
<input id="occupation" name="occupation" style="display: none" type="text" value="<%= @user.user_extensions.occupation %>" /> <input id="occupation" name="occupation" style="display: none" type="text" value="<%= @user.user_extensions.occupation %>" />
<input id="occupation_name" type="text" style="display: none" readonly/> <input id="occupation_name" type="text" style="display: none" readonly/>
<% elsif User.current.user_extensions.school.nil? %> <% elsif User.current.user_extensions.school.nil? %>
<input id="province" name="province" style="display: none" type="text" value="请单击选择省份及学校" readonly> <input id="province" name="province" style="display: none" type="text" value=<%= l(:field_occupation_click) %> readonly>
<input id="occupation" name="occupation" style="display: none" type="text" /> <input id="occupation" name="occupation" style="display: none" type="text" />
<input id="occupation_name" type="text" style="display: none" readonly/> <input id="occupation_name" type="text" style="display: none" readonly/>
<% else %> <% else %>

View File

@ -1,7 +1,7 @@
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>快速进入项目通道</title> <title><%= l('project.join.title')%></title>
<style> <style>
#popbox{ font-size:12px; font-family:"微软雅黑","宋体"; line-height:1.9; background:#fff; font-style:normal;} #popbox{ font-size:12px; font-family:"微软雅黑","宋体"; line-height:1.9; background:#fff; font-style:normal;}
#popbox div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,span{ margin:0; padding:0;} #popbox div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,span{ margin:0; padding:0;}
@ -47,8 +47,8 @@
<div id="popbox"> <div id="popbox">
<div class="C" > <div class="C" >
<div class="C_top"> <div class="C_top">
<h2>快速进入项目通道</h2> <h2><%= l('project.join.title')%></h2>
<p>只要持有项目的ID就可快速申请加入所在项目。项目页面搜索不到的私有项目只能从此通道进入哦</p> <p><%= l('project.join.description')%></p>
</div> </div>
<div class="C_form"> <div class="C_form">
<%= form_tag({:controller => 'applied_project', <%= form_tag({:controller => 'applied_project',
@ -58,13 +58,13 @@
:id => 'new-watcher-form') do %> :id => 'new-watcher-form') do %>
<ul> <ul>
<li style="padding-top: 15px;"> <li style="padding-top: 15px;">
<span class="tips">项&nbsp;目&nbsp;ID</span> <span class="tips"><%= l('project.join.id.label')%></span>
<input type="hidden" name="project_join" value="1"> <input type="hidden" name="project_join" value="1">
<input type="hidden" name="user_id" value="<%= User.current.id%>"> <input type="hidden" name="user_id" value="<%= User.current.id%>">
<input class=" width190" name="project_id" id="project_id" type="text" value="" > <input class=" width190" name="project_id" id="project_id" type="text" value="" >
<input type="text" style="display: none"/> <input type="text" style="display: none"/>
</li> </li>
<li class="mB5">项目ID是所在项目网址中显示的序号</li> <li class="mB5"><%= l('project.join.id.tips')%></li>
<li> <li>
<a href="#" class="btn" style="margin-left: 50px;" onclick="submit_form(this);"> <a href="#" class="btn" style="margin-left: 50px;" onclick="submit_form(this);">
<%= l(:label_apply_project) %> <%= l(:label_apply_project) %>

View File

@ -15,12 +15,12 @@
</span> </span>
</div> </div>
<strong><%= l(:field_description) %></strong>:&nbsp;&nbsp;<%= file.description %> <strong><%= l(:field_description) %></strong>:&nbsp;&nbsp;<%= file.description %>
<div class="c9 gray-color"> 所属分类:<%=result_come_from file%> </div> <div class="c9 gray-color"> <%= l('attachment.category')%><%=result_come_from file%> </div>
<span class="gray blue-color"> <span class="gray blue-color">
下载:<%= file.downloads%>| <%= l('attachment.download_num')%><%= file.downloads%>|
大小:<%= number_to_human_size(file.filesize) %>| <%= l('attachment.size')%><%= number_to_human_size(file.filesize) %>|
共享者:<a class="gray" ><%= link_to file.author, user_path(file.author), target: "_blank" unless file.author.blank? %></a>| <%= l('attachment.sharer')%><a class="gray" ><%= link_to file.author, user_path(file.author), target: "_blank" unless file.author.blank? %></a>|
上传时间:<%= format_time(file.created_on) %> <%= l('attachment.upload_time')%><%= format_time(file.created_on) %>
</span> </span>
<div style="display: none"></div> <div style="display: none"></div>
</td> </td>

View File

@ -3,7 +3,7 @@
<hr /> <hr />
<% contests_results.each do |contest| %> <% contests_results.each do |contest| %>
<p class="font_description2"> <p class="font_description2">
<strong><%= l(:label_tags_contest) %>:<%= link_to "#{contest.name}", <strong><%= l(:label_tags_contest_name) %>:<%= link_to "#{contest.name}",
:controller => "contests",:action => "show_contest",:id => contest.id %></strong> :controller => "contests",:action => "show_contest",:id => contest.id %></strong>
<br /> <br />
<strong><%= l(:label_tags_contest_description) %>:</strong><%= textilizable contest.description %> <strong><%= l(:label_tags_contest_description) %>:</strong><%= textilizable contest.description %>

View File

@ -3,7 +3,7 @@
<hr /> <hr />
<% courses_results.each do |course| %> <% courses_results.each do |course| %>
<p class="font_description2"> <p class="font_description2">
<strong><%= l(:label_course) %>:<%= link_to "#{course.name}",course_path(course) %></strong> <strong><%= l(:label_tags_course_name) %>:<%= link_to "#{course.name}",course_path(course) %></strong>
<br /> <br />
<strong><%= l(:label_new_course_description) %>:</strong><%= textilizable course.description %> <strong><%= l(:label_new_course_description) %>:</strong><%= textilizable course.description %>
<%= course.updated_at %> <%= course.updated_at %>

View File

@ -1,4 +1,4 @@
<%= link_to '+ 添加标签', 'javascript:void(0);', <%= link_to l(:label_add_tag), 'javascript:void(0);',
:class => "yellowBtn f_l", :class => "yellowBtn f_l",
:onclick=>"$('#add_tag_#{obj.id}').slideToggle();" if User.current.logged? %> <!-- $('#put-tag-form-#{obj.class}-#{obj.id}').toggle(); readmore(this); --> :onclick=>"$('#add_tag_#{obj.id}').slideToggle();" if User.current.logged? %> <!-- $('#put-tag-form-#{obj.class}-#{obj.id}').toggle(); readmore(this); -->

View File

@ -23,7 +23,7 @@
<%= l(:label_user_plural) %>(<%= @users_tags_num %>) | <%= l(:label_user_plural) %>(<%= @users_tags_num %>) |
<%= l(:label_tags_call)%>(<%= @bids_tags_num %>) | <%= l(:label_tags_call)%>(<%= @bids_tags_num %>) |
<%= l(:field_filename)%>(<%= @attachments_tags_num %>) | <%= l(:field_filename)%>(<%= @attachments_tags_num %>) |
开源项目(<%= @open_source_projects_num %>) | <%= l(:label_tags_opensource)%>(<%= @open_source_projects_num %>) |
<%= l(:label_tags_contest)%>(<%= @contests_tags_num %>) | <%= l(:label_tags_contest)%>(<%= @contests_tags_num %>) |
</div> </div>
<div id="show_results"> <div id="show_results">

View File

@ -1,5 +1,5 @@
<% content_for :content do %> <% content_for :content do %>
<h3 style="color: red;">总标签数:<%= @tags.size %>个</h3> <h3 style="color: red;"><%= l(:label_tags_count) %><%= @tags.size %>个</h3>
<hr /> <hr />
<% i = 0 %> <% i = 0 %>
<div id="show_all_tags"> <div id="show_all_tags">

View File

@ -16,8 +16,8 @@
<div class="menu"> <div class="menu">
<%= link_to "#{l(:label_course_new)}", new_course_path, class: 'icon icon-add' if @user == User.current %> <%= link_to "#{l(:label_course_new)}", new_course_path, class: 'icon icon-add' if @user == User.current %>
<ul> <ul>
<li mode='doing' class="on">进行中</li> <li mode='doing' class="on"><%= l('user.courses.doing')%></li>
<li mode='end'>已完结</li> <li mode='end'><%= l('user.courses.done')%></li>
</ul> </ul>
</div> </div>

View File

@ -2,7 +2,7 @@
<div class="menu-div"> <div class="menu-div">
<div class="menu"> <div class="menu">
<span style="color: #000; font-weight: bold;"> <span style="color: #000; font-weight: bold;">
<%= "#{@user.name}的动态" %> <%= l(:label_user_activity, :value => @user.name) %>
</span> </span>
<ul><%#链接绑定在页面最下方的jQuery%> <ul><%#链接绑定在页面最下方的jQuery%>
<li mode='all' class="<%= "on" if @state.eql?(0) %>"> <li mode='all' class="<%= "on" if @state.eql?(0) %>">

View File

@ -1,8 +1,8 @@
<% <%
select_option = [] select_option = []
(select_option << [l(:label_select_project), 'projects']) if project_type == Project::ProjectType_project (select_option << [l('welcome.search.select.project'), 'projects']) if project_type == Project::ProjectType_project
(select_option << [l(:label_select_course), 'courses']) if project_type == Project::ProjectType_course (select_option << [l('welcome.search.select.course'), 'courses']) if project_type == Project::ProjectType_course
select_option << [l(:label_select_user), 'users'] select_option << [l('welcome.search.select.user'), 'users']
#select_option << ['教师', 'users_teacher'], #select_option << ['教师', 'users_teacher'],
#select_option << ['学生', 'users_student'] #select_option << ['学生', 'users_student']
%> %>
@ -49,7 +49,7 @@ form #search_type{
<%= form_tag({controller: :welcome, action: :search }, method: :get) do %> <%= form_tag({controller: :welcome, action: :search }, method: :get) do %>
<div class="project-search" style="float: right"> <div class="project-search" style="float: right">
<div class='search_widget'> <div class='search_widget'>
<%= text_field_tag :q, nil, :placeholder => l(:label_search_information), :size => 27, style: "float:left" %> <%= text_field_tag :q, nil, :placeholder => l('welcome.search.information'), :size => 27, style: "float:left" %>
<%= select_tag(:search_type, options_for_select(select_option), :style => "float:right" ) %> <%= select_tag(:search_type, options_for_select(select_option), :style => "float:right" ) %>
</div> </div>
<%#= hidden_field_tag 'project_type', project_type %> <%#= hidden_field_tag 'project_type', project_type %>

View File

@ -1,8 +1,8 @@
<% <%
select_option = [] select_option = []
(select_option << [l(:label_select_project), 'projects']) if project_type == Project::ProjectType_project (select_option << [l('welcome.search.select.project'), 'projects']) if project_type == Project::ProjectType_project
(select_option << [l(:label_select_course), 'courses']) if project_type == Project::ProjectType_course (select_option << [l('welcome.search.select.course'), 'courses']) if project_type == Project::ProjectType_course
select_option << [l(:label_select_user), 'users'] select_option << [l('welcome.search.select.user'), 'users']
%> %>
<style type="text/css"> <style type="text/css">
form #q, form #search_type{ form #q, form #search_type{
@ -90,10 +90,10 @@ form #search_by
<div class="project-search" style="float: right"> <div class="project-search" style="float: right">
<%= submit_tag l(:label_search), :class => "enterprise", :name => nil,:style =>"float: right; margin-left:3px;margin-top:2px" %> <%= submit_tag l(:label_search), :class => "enterprise", :name => nil,:style =>"float: right; margin-left:3px;margin-top:2px" %>
<div class='search_widget' > <div class='search_widget' >
<%= text_field_tag :q, nil, :placeholder => l(:label_search_information), style:"float:left;" %> <%= text_field_tag :q, nil, :placeholder => l('welcome.search.information'), style:"float:left;" %>
<input type="text" name="search_by_input" style="display: none" id="search_by_input" value="0"> <input type="text" name="search_by_input" style="display: none" id="search_by_input" value="0">
<%= select_tag(:search_type, options_for_select(select_option), :onchange => "searchTypeChange();", :style => "float:right" ) %> <%= select_tag(:search_type, options_for_select(select_option), :onchange => "searchTypeChange();", :style => "float:right" ) %>
<%= select_tag(:search_by,options_for_select([[l(:label_select_user_nickname),"0"],[l(:label_select_user_showname),"1"],[l(:label_select_user_email),"2"]]), :onchange => "searchByChange();",:style => "float:right" ) %> <%= select_tag(:search_by,options_for_select([[l('welcome.search.select.userinfo.nickname'),"0"],[l('welcome.search.select.userinfo.showname'),"1"],[l('welcome.search.select.userinfo.email'),"2"]]), :onchange => "searchByChange();",:style => "float:right" ) %>
</div> </div>
<%#= hidden_field_tag 'project_type', project_type %> <%#= hidden_field_tag 'project_type', project_type %>
</div> </div>

View File

@ -140,7 +140,7 @@
<!--搜索框--> <!--搜索框-->
<div id="J_Slide" class="d-p-index-box d-p-index-hotproject" style="float: right;"> <div id="J_Slide" class="d-p-index-box d-p-index-hotproject" style="float: right;">
<%= form_tag({controller: :welcome, action: :search }, method: :get) do %> <%= form_tag({controller: :welcome, action: :search }, method: :get) do %>
<%= text_field_tag 'name', params[:name], :placeholder => l(:label_search_information), name: "name", :class => 'blueinputbar', :style => 'width:240px; padding-right:50px;'%> <%= text_field_tag 'name', params[:name], :placeholder => l('welcome.search.information'), name: "name", :class => 'blueinputbar', :style => 'width:240px; padding-right:50px;'%>
&nbsp; &nbsp;
<%= hidden_field_tag 'project_type', params[:project_type] %> <%= hidden_field_tag 'project_type', params[:project_type] %>
<%= submit_tag l(:label_search), :class => "enterprise", :name => "contests_search" %> <%= submit_tag l(:label_search), :class => "enterprise", :name => "contests_search" %>

View File

@ -0,0 +1,90 @@
en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
#
# Trustie账户模块
#
# 公共变量
#
label_max_number: "Trustie username is your public identity displayed on Trustie website, only for letters and numbers."
field_login: Account/Email
field_password: Password
text_caracters_minimum: "Must be at least %{count} characters long."
field_password_confirmation: Confirmation
field_new_password: New password
notice_account_wrong_password: Wrong password
notice_account_password_updated: "Password was successfully updated."
notice_can_t_change_password: "This account uses an external authentication source. Impossible to change the password."
field_mail: Email
field_identity_url: OpenID URL
button_submit: Submit
#
# Trustie账户模块
#
# 登陆
#
lable_user_name: Username
label_login_prompt: Email/Trustie account
label_stay_logged_in: "Keep me signed in"
label_password_lost: "Forget password"
button_login: Login
# account_controller中判断用户名或密码输入有误的提示信息
notice_account_invalid_creditentials: "Invalid user or password."
# account_controller中判断未激活的提示信息
notice_account_invalid_creditentials_new: "Please check your email to activate your account."
#
# Trustie账户模块
#
# 注册
#
label_register: Sign up
label_login_with_open_id_option: or login with OpenID
label_mail_attention: "QQ-mail may not receive this e-mail, if other mailboxes not received, probably in spam."
label_mail_attention1: "Activation email sent for Gmail and Edu-mail which sometimes slower, please be patient."
# register中js判断密码设置是否合法提示信息
setting_password_min_length_limit: "Password length greater than at least %{count} characters."
setting_password_error: "Password length inadequate or password inconsistent."
setting_password_success: "Password set successfully."
# account_controller中register方法判断注册成功的提示信息
notice_account_register_done: "Successful account creation, please use the link in the registration confirmation email to activate your account, if our messages are not in your inbox, it could in the spam box, please check it carefully."
#
# Trustie账户模块
#
# 忘记密码
#
label_password_forget: Forget password
notice_account_unknown_email: Unknown user
# account_controller中lost_password方法判断的邮件发送提示信息
notice_account_lost_email_sent: "An email with a temporary login link will be sent to that email address, which you can use to login and configure a new password."
#
# Trustie账户模块
#
# 登出
#
label_logout: Logout
#
# Trustie账户模块
#
# 激活
#
label_regiter_account: Registering for an account
label_email_valid: E-mail activation
notice_email_register_time: "Please click on the link in the email to continue to complete the registration within 24 hours"
notice_email_arrival: "An activation email has been sent to the email address you register."
label_check_email: "Now check your email"
label_mail_resend: "Resend the activation email"
notice_account_activated: "Your Trustie account has been activated. You can now sign in."

View File

@ -0,0 +1,92 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
#
# Trustie账户模块
#
# 公共变量
#
label_max_number: "登录名是在网站中显示的您的公开标识,只能为英文和数字。"
field_login: 登录名
field_password: 密码
text_caracters_minimum: "至少需要 %{count} 个字符。"
field_password_confirmation: 密码确认
field_new_password: 新密码
notice_account_wrong_password: 密码错误
notice_account_password_updated: 密码更新成功
notice_can_t_change_password: 该帐号使用了外部认证,因此无法更改密码。
field_mail: 邮件地址
field_identity_url: OpenID URL
button_submit: 提交
#
# Trustie账户模块
#
# 登陆
#
lable_user_name: 登录名
label_login_prompt: 邮箱/登录名
label_stay_logged_in: "保持登录状态"
label_password_lost: "忘记密码?"
button_login: 登录
# account_controller中判断用户名或密码输入有误的提示信息
notice_account_invalid_creditentials: "无效的用户名或密码"
# account_controller中判断未激活的提示信息
notice_account_invalid_creditentials_new: "您还未到邮箱激活"
#
# Trustie账户模块
#
# 注册
#
label_register: 注册
label_login_with_open_id_option: 或使用OpenID登录
label_mail_attention: "qq邮箱可能收不到此邮件其他邮箱如果没有收到可能在垃圾邮件中"
label_mail_attention1: "其中gmail与教育网邮箱的激活邮件有时比较慢请耐心等待。"
# register中js判断密码设置是否合法提示信息
setting_password_min_length_limit: "密码长度至少大于 %{count} 个字符。"
setting_password_error: "密码长度不够或密码不一致"
setting_password_success: "密码设置成功"
# account_controller中register方法判断注册成功的提示信息
notice_account_register_done: "帐号创建成功,请使用注册确认邮件中的链接来激活您的帐号,如果您的邮件没有在收件箱中可能在垃圾箱中,请您注意查收。"
#
# Trustie账户模块
#
# 忘记密码
#
label_password_forget: 忘记密码
notice_account_unknown_email: 未知用户
# account_controller中lost_password方法判断的邮件发送提示信息
notice_account_lost_email_sent: 系统已将引导您设置新密码的邮件发送给您。
#
# Trustie账户模块
#
# 登出
#
label_logout: 退出
#
# Trustie账户模块
#
# 激活
#
label_regiter_account: 注册帐号
label_email_valid: 邮箱激活
notice_email_register_time: 请在24小时内点击邮件中的链接继续完成注册
notice_email_arrival: 邮件已发送到邮箱
label_check_email: 立即查收邮件
label_mail_resend: 重新发送激活邮件
notice_account_activated: 您的帐号已被激活。

View File

@ -0,0 +1,13 @@
en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
#
# Trustie管理员模块
#
# 管理员设置账号激活通知方式
#
label_registration_activation_by_email: account activation by email
label_registration_manual_activation: manual account activation
label_registration_automatic_activation: automatic account activation

View File

@ -0,0 +1,16 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
#
# Trustie管理员模块
#
# 管理员设置账号激活通知方式
#
label_registration_activation_by_email: 通过邮件认证激活帐号
label_registration_manual_activation: 手动激活帐号
label_registration_automatic_activation: 自动激活帐号

View File

@ -0,0 +1,264 @@
en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
date:
formats:
# Use the strftime parameters for formats.
# When no format has been given, it uses default.
# You can provide other formats here if you like!
default: "%m/%d/%Y"
short: "%b %d"
long: "%B %d, %Y"
day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
# Don't forget the nil at the beginning; there's no such thing as a 0th month
month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
# Used in date_select and datime_select.
order:
- :year
- :month
- :day
time:
formats:
default: "%m/%d/%Y %I:%M %p"
time: "%I:%M %p"
short: "%d %b %H:%M"
long: "%B %d, %Y %H:%M"
am: "am"
pm: "pm"
datetime:
distance_in_words:
half_a_minute: "half a minute"
less_than_x_seconds:
one: "less than 1 second"
other: "less than %{count} seconds"
x_seconds:
one: "1 second"
other: "%{count} seconds"
less_than_x_minutes:
one: "less than a minute"
other: "less than %{count} minutes"
x_minutes:
one: "1 minute"
other: "%{count} minutes"
about_x_hours:
one: "about 1 hour"
other: "about %{count} hours"
x_hours:
one: "1 hour"
other: "%{count} hours"
x_days:
one: "1 day"
other: "%{count} days"
about_x_months:
one: "about 1 month"
other: "about %{count} months"
x_months:
one: "1 month"
other: "%{count} months"
about_x_years:
one: "about 1 year"
other: "about %{count} years"
over_x_years:
one: "over 1 year"
other: "over %{count} years"
almost_x_years:
one: "almost 1 year"
other: "almost %{count} years"
errors:
messages:
email_verifier:
email_not_real: must point to a real mail account
out_of_mail_server: appears to point to dead mail server
no_mail_server: appears to point to domain which doesn't handle e-mail
failure: could not be checked if is real
exception: could not be sent
number:
format:
separator: "."
delimiter: ""
precision: 3
human:
format:
delimiter: ""
precision: 3
storage_units:
format: "%n %u"
units:
byte:
one: "Byte"
other: "Bytes"
kb: "KB"
mb: "MB"
gb: "GB"
tb: "TB"
# Used in array.to_sentence.
support:
array:
sentence_connector: "and"
skip_last_comma: false
activerecord:
errors:
template:
header:
one: "1 error prohibited this %{model} from being saved"
other: "%{count} errors prohibited this %{model} from being saved"
messages:
inclusion: "is not included in the list"
exclusion: "is reserved"
invalid: "is invalid"
confirmation: "doesn't match confirmation"
accepted: "must be accepted"
empty: "can't be empty"
blank: "can't be blank"
too_long: "is too long (maximum is %{count} characters)"
too_short: "is too short (minimum is %{count} characters)"
wrong_length: "is the wrong length (should be %{count} characters)"
taken: "has already been taken"
not_a_number: "is not a number"
not_a_date: "is not a valid date"
greater_than: "must be greater than %{count}"
greater_than_or_equal_to: "must be greater than or equal to %{count}"
equal_to: "must be equal to %{count}"
less_than: "must be less than %{count}"
less_than_or_equal_to: "must be less than or equal to %{count}"
odd: "must be odd"
even: "must be even"
greater_than_start_date: "must be greater than start date"
not_same_project: "doesn't belong to the same project"
circular_dependency: "This relation would create a circular dependency"
cant_link_an_issue_with_a_descendant: "An issue cannot be linked to one of its subtasks"
attachment_all: "All"
attachment_browse: "Attachment Content Browse"
attachment_sufix_browse: "Attachment Type Browse"
attachment_type: "Attachment Type"
general_text_No: 'No'
general_text_Yes: 'Yes'
general_text_no: 'no'
general_text_yes: 'yes'
general_lang_name: 'English'
general_csv_separator: ','
general_csv_decimal_separator: '.'
general_csv_encoding: ISO-8859-1
general_pdf_encoding: UTF-8
general_first_day_of_week: '7'
actionview_instancetag_blank_option: Please select
label_user: User
label_project: Project
label_issue: Issue
label_requirement: Calls
label_forum: Forum
label_issue_plural: Issues Tracking
label_project_plural: Projects
label_user_plural: Users
field_filename: File
field_description: Description
label_loading: Loading...
#
# Trustie按钮类
#
#
#
label_button_ok: Ok
button_save: Save
button_back: Back
button_cancel: Cancel
label_submit: Submit
button_project_tags_add: Add
label_more: More
button_download: Download
#
# Trustie上传头像模块
#
#
#
button_upload_photo: Upload photo
button_delete_file: delete
text_are_you_sure: Are you sure?
error_attachment_too_big: "This file cannot be uploaded because it exceeds the maximum allowed file size (%{max_size})"
error_pic_type: "Only supports the following image formats:"
#
# Trustie标签模块
#
# 标签
#
label_tag: Tag
label_tags_no: no tags now
label_more_tags: More
label_add_tag: '+ Add tags'
label_tags_count: "The total number of tags"
label_tags_selected: Selected Tags
label_tags_related: Related Tags
label_tags_search_result: Search Results
label_tags_numbers: "Tag numbers"
label_tags_call: Calls
label_tags_contest: Competition tag
label_tags_opensource: Open source projects
label_tags_all_objects: all objects
label_tags_bid: Call name
label_tags_bid_description: call description
label_tags_course_name: Course Title
label_new_course_description: Description
label_tags_issue: "issue"
label_tags_issue_description: issue description
label_tags_project_name: "Project name"
label_tags_project_description: "Project description"
label_tags_user_mail: "User E-mail"
label_tags_user_name: "User Name"
label_tags_contest_name: Contest name
label_tags_contest_description: Contest description
label_tags_forum_description: Forum description
label_tags_forum: Call forum
label_attachment: Files
attachment:
category: "From"
download_num: "Downloads:"
size: "Size:"
sharer: "Sharer"
upload_time: "Upload time:"
#
# Trustie
#
#
#

View File

@ -0,0 +1,267 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
jquery:
locale: "zh-CN"
date:
formats:
# Use the strftime parameters for formats.
# When no format has been given, it uses default.
# You can provide other formats here if you like!
default: "%Y-%m-%d"
short: "%b%d日"
long: "%Y年%b%d日"
zh_date:
formats:
default: "%Y年%m月%d日"
day_names: [星期天, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
# Don't forget the nil at the beginning; there's no such thing as a 0th month
month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
# Used in date_select and datime_select.
order:
- :year
- :month
- :day
errors:
messages:
email_verifier:
email_not_real: 必须指定一个真实的邮箱地址
out_of_mail_server: 指向了一个已停用的邮箱服务器
no_mail_server: 域名地址没有邮件功能
failure: 邮箱地址不能被验证
exception: 邮箱不能发送成功
time:
formats:
default: "%Y年%b%d日 %A %H:%M:%S"
time: "%H:%M"
short: "%b%d日 %H:%M"
long: "%Y年%b%d日 %H:%M"
am: "上午"
pm: "下午"
datetime:
distance_in_words:
half_a_minute: "半分钟"
less_than_x_seconds:
one: "1秒内"
other: "少于 %{count} 秒"
x_seconds:
one: "1秒"
other: "%{count} 秒"
less_than_x_minutes:
one: "1分钟内"
other: "少于 %{count} 分钟"
x_minutes:
one: "1分钟"
other: "%{count} 分钟"
about_x_hours:
one: "大约1小时"
other: "大约 %{count} 小时"
x_hours:
one: "1 小时"
other: "%{count} 小时"
x_days:
one: "1天"
other: "%{count} 天"
about_x_months:
one: "大约1个月"
other: "大约 %{count} 个月"
x_months:
one: "1个月"
other: "%{count} 个月"
about_x_years:
one: "大约1年"
other: "大约 %{count} 年"
over_x_years:
one: "超过1年"
other: "超过 %{count} 年"
almost_x_years:
one: "将近 1 年"
other: "将近 %{count} 年"
number:
# Default format for numbers
format:
separator: "."
delimiter: ""
precision: 3
human:
format:
delimiter: ""
precision: 3
storage_units:
format: "%n %u"
units:
byte:
one: "Byte"
other: "Bytes"
kb: "KB"
mb: "MB"
gb: "GB"
tb: "TB"
# Used in array.to_sentence.
support:
array:
sentence_connector: "和"
skip_last_comma: false
activerecord:
errors:
template:
header:
one: "由于发生了一个错误 %{model} 无法保存"
other: "%{count} 个错误使得 %{model} 无法保存"
messages:
inclusion: "不包含于列表中"
exclusion: "是保留关键字"
invalid: "是无效的"
confirmation: "与确认值不匹配"
accepted: "必须是可被接受的"
empty: "不能留空"
blank: "不能为空字符"
too_long: "过长(最长为 %{count} 个字符)"
too_short: "过短(最短为 %{count} 个字符)"
wrong_length: "长度非法(必须为 %{count} 个字符)"
taken: "已经被使用"
not_a_number: "不是数字"
not_a_date: "不是合法日期"
greater_than: "必须大于 %{count}"
greater_than_or_equal_to: "必须大于或等于 %{count}"
equal_to: "必须等于 %{count}"
less_than: "必须小于 %{count}"
less_than_or_equal_to: "必须小于或等于 %{count}"
odd: "必须为单数"
even: "必须为双数"
greater_than_start_date: "必须在起始日期之后"
not_same_project: "不属于同一个项目"
circular_dependency: "此关联将导致循环依赖"
cant_link_an_issue_with_a_descendant: "问题不能关联到它的子任务"
groupname_repeat: "该班名已存在"
attachment_all: "全部"
attachment_sufix_browse: "文件类型"
attachment_browse: "内容类型"
attachment_type: '分类'
general_text_No: '否'
general_text_Yes: '是'
general_text_no: '否'
general_text_yes: '是'
general_lang_name: 'Simplified Chinese (简体中文)'
general_csv_separator: ','
general_csv_decimal_separator: '.'
general_csv_encoding: gb18030
general_pdf_encoding: gb18030
general_first_day_of_week: '7'
actionview_instancetag_blank_option: 请选择
label_user: 用户
label_project: 项目
label_issue: 问题
label_requirement: 需求
label_forum: 公共贴吧
field_description: 描述
label_loading: 载入中...
#
# Trustie按钮类
#
#
#
label_button_ok: 确定
button_save: 保存
button_back: 返回
button_cancel: 取消
label_submit: 提交
button_project_tags_add: 增加
label_more: 更多>>
button_download: 下载
#
# Trustie上传头像模块
#
#
#
button_upload_photo: 上传图片
button_delete_file: 删除
text_are_you_sure: 您确定要删除吗?
error_attachment_too_big: 该文件无法上传。超过文件大小限制 (%{max_size})
error_pic_type: "仅支持如下图片格式:"
#
# Trustie标签模块
#
# 标签
#
label_tag: 标签
label_tags_no: 暂无标签!
label_more_tags: 更多
label_add_tag: "+ 添加标签"
label_tags_count: "总标签数:"
label_tags_selected: 已选标签
label_tags_related: 相关标签
label_tags_search_result: 搜索结果
label_tags_numbers: "Tag统计"
label_issue_plural: 问题跟踪
label_project_plural: 项目列表
label_user_plural: 用户列表
label_tags_call: 需求
field_filename: 文件
label_tags_contest: 竞赛标签
label_tags_opensource: 开源项目
label_tags_all_objects: 所有
label_tags_bid: 需求名称
label_tags_bid_description: 需求描述
label_tags_course_name: 课程名称
label_new_course_description: 课程描述
label_tags_issue: "问题名称:"
label_tags_issue_description: 问题描述
label_tags_project_name: "项目名称:"
label_tags_project_description: "项目描述:"
label_tags_user_mail: "用户邮箱:"
label_tags_user_name: "用户名:"
label_tags_contest_name: 竞赛名称
label_tags_contest_description: 竞赛描述
label_tags_forum_description: 贴吧描述
label_tags_forum: 贴吧名称
label_attachment: 文件
attachment:
category: "所属分类:"
download_num: "下载:"
size: "大小:"
sharer: "共享者:"
upload_time: "上传时间:"

View File

@ -0,0 +1,3 @@
en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr

View File

@ -0,0 +1,22 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
#
# Trustie按钮类
#
# 底部承办单位等信息
#
label_hosted_organization: 主办单位
label_hosted_by: 国防科学技术大学并行与分布处理国家重点实验室
label_sponsor: 计算机科学与技术系
label_co_organizer_NUDT: 国防科学技术大学计算机学院
label_co_organizer_EECS: 北京大学信息科学技术学院软件研究所
label_co_organizer_BHU: 北京航空航天大学计算机学院
label_co_organizer_CAS: 中国科学院软件研究所
label_co_organizer_InforS: 山东中创软件商用中间件股份有限公司
label_rights_reserved: 版权©2007~2014
label_contact_us: 联系我们
label_license: 湘ICP备09019772

View File

@ -0,0 +1,4 @@
en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr

View File

@ -0,0 +1,6 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr

View File

@ -0,0 +1,4 @@
en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr

View File

@ -0,0 +1,17 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
#
# 课程托管平台
#
# 课程资源上传
#
label_file_upload: 资源文件
label_file_upload_error_messages: "上传出现错误,请您检查您的网络环境,并刷新页面重新上传。"
button_confirm: 确认

View File

@ -1,174 +1,5 @@
en: en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
date:
formats:
# Use the strftime parameters for formats.
# When no format has been given, it uses default.
# You can provide other formats here if you like!
default: "%m/%d/%Y"
short: "%b %d"
long: "%B %d, %Y"
day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
# Don't forget the nil at the beginning; there's no such thing as a 0th month
month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
# Used in date_select and datime_select.
order:
- :year
- :month
- :day
time:
formats:
default: "%m/%d/%Y %I:%M %p"
time: "%I:%M %p"
short: "%d %b %H:%M"
long: "%B %d, %Y %H:%M"
am: "am"
pm: "pm"
datetime:
distance_in_words:
half_a_minute: "half a minute"
less_than_x_seconds:
one: "less than 1 second"
other: "less than %{count} seconds"
x_seconds:
one: "1 second"
other: "%{count} seconds"
less_than_x_minutes:
one: "less than a minute"
other: "less than %{count} minutes"
x_minutes:
one: "1 minute"
other: "%{count} minutes"
about_x_hours:
one: "about 1 hour"
other: "about %{count} hours"
x_hours:
one: "1 hour"
other: "%{count} hours"
x_days:
one: "1 day"
other: "%{count} days"
about_x_months:
one: "about 1 month"
other: "about %{count} months"
x_months:
one: "1 month"
other: "%{count} months"
about_x_years:
one: "about 1 year"
other: "about %{count} years"
over_x_years:
one: "over 1 year"
other: "over %{count} years"
almost_x_years:
one: "almost 1 year"
other: "almost %{count} years"
errors:
messages:
email_verifier:
email_not_real: must point to a real mail account
out_of_mail_server: appears to point to dead mail server
no_mail_server: appears to point to domain which doesn't handle e-mail
failure: could not be checked if is real
exception: could not be sent
number:
format:
separator: "."
delimiter: ""
precision: 3
human:
format:
delimiter: ""
precision: 3
storage_units:
format: "%n %u"
units:
byte:
one: "Byte"
other: "Bytes"
kb: "KB"
mb: "MB"
gb: "GB"
tb: "TB"
# Used in array.to_sentence.
support:
array:
sentence_connector: "and"
skip_last_comma: false
activerecord:
errors:
template:
header:
one: "1 error prohibited this %{model} from being saved"
other: "%{count} errors prohibited this %{model} from being saved"
messages:
inclusion: "is not included in the list"
exclusion: "is reserved"
invalid: "is invalid"
confirmation: "doesn't match confirmation"
accepted: "must be accepted"
empty: "can't be empty"
blank: "can't be blank"
too_long: "is too long (maximum is %{count} characters)"
too_short: "is too short (minimum is %{count} characters)"
wrong_length: "is the wrong length (should be %{count} characters)"
taken: "has already been taken"
not_a_number: "is not a number"
not_a_date: "is not a valid date"
greater_than: "must be greater than %{count}"
greater_than_or_equal_to: "must be greater than or equal to %{count}"
equal_to: "must be equal to %{count}"
less_than: "must be less than %{count}"
less_than_or_equal_to: "must be less than or equal to %{count}"
odd: "must be odd"
even: "must be even"
greater_than_start_date: "must be greater than start date"
not_same_project: "doesn't belong to the same project"
circular_dependency: "This relation would create a circular dependency"
cant_link_an_issue_with_a_descendant: "An issue cannot be linked to one of its subtasks"
actionview_instancetag_blank_option: Please select
attachment_all: "All"
attachment_browse: "Attachment Content Browse"
attachment_sufix_browse: "Attachment Type Browse"
attachment_type: "Attachment Type"
general_text_No: 'No'
general_text_Yes: 'Yes'
general_text_no: 'no'
general_text_yes: 'yes'
general_lang_name: 'English'
general_csv_separator: ','
general_csv_decimal_separator: '.'
general_csv_encoding: ISO-8859-1
general_pdf_encoding: UTF-8
general_first_day_of_week: '7'
label_approve: Approve
label_refusal: Refusal
notice_account_updated: Account was successfully updated.
notice_account_invalid_creditentials: Invalid user or password
notice_account_password_updated: Password was successfully updated.
notice_account_wrong_password: Wrong password
notice_account_register_done: Account was successfully created. To activate your account, click on the link that was emailed to you.
notice_account_unknown_email: Unknown user.
notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
notice_account_activated: Your account has been activated. You can now log in.
notice_successful_create: Successful creation. notice_successful_create: Successful creation.
notice_successful_update: Successful update. notice_successful_update: Successful update.
notice_successful_delete: Successful deletion. notice_successful_delete: Successful deletion.
@ -180,8 +11,7 @@ en:
notice_not_authorized_archived_project: The project you're trying to access has been archived. notice_not_authorized_archived_project: The project you're trying to access has been archived.
notice_email_sent: "An email was sent to %{value}" notice_email_sent: "An email was sent to %{value}"
notice_email_error: "An error occurred while sending mail (%{value})" notice_email_error: "An error occurred while sending mail (%{value})"
notice_feeds_access_key_reseted: Your RSS access key was reset.
notice_api_access_key_reseted: Your API access key was reset.
notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}." notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}." notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}."
notice_failed_to_save_members: "Failed to save member(s): %{errors}." notice_failed_to_save_members: "Failed to save member(s): %{errors}."
@ -217,7 +47,7 @@ en:
error_workflow_copy_target: 'Please select target tracker(s) and role(s)' error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
error_unable_delete_issue_status: 'Unable to delete issue status' error_unable_delete_issue_status: 'Unable to delete issue status'
error_unable_to_connect: "Unable to connect (%{value})" error_unable_to_connect: "Unable to connect (%{value})"
error_attachment_too_big: "This file cannot be uploaded because it exceeds the maximum allowed file size (%{max_size})"
error_session_expired: "Your session has expired. Please login again." error_session_expired: "Your session has expired. Please login again."
warning_attachments_not_saved: "%{count} file(s) could not be saved." warning_attachments_not_saved: "%{count} file(s) could not be saved."
@ -238,12 +68,8 @@ en:
field_name: Name field_name: Name
field_description: Description
field_summary: Summary field_summary: Summary
field_is_required: Required
field_firstname: Name
field_lastname: Last name
field_mail: Email
field_job_category: Job category # added by bai field_job_category: Job category # added by bai
field_filename: File field_filename: File
field_file_dense: File Dense field_file_dense: File Dense
@ -279,14 +105,10 @@ en:
field_homepage: Homepage field_homepage: Homepage
field_parent: Subproject of field_parent: Subproject of
field_is_in_roadmap: Issues displayed in roadmap field_is_in_roadmap: Issues displayed in roadmap
field_login: Account/Email
field_mail_notification: Email notifications
field_admin: Administrator field_admin: Administrator
field_last_login_on: Last connection field_last_login_on: Last connection
field_language: Language
field_effective_date: Date field_effective_date: Date
field_new_password: New password
field_password_confirmation: Confirmation
field_version: Version field_version: Version
field_type: Type field_type: Type
field_host: Host field_host: Host
@ -521,7 +343,6 @@ en:
# edit by meng # edit by meng
lable_hot_course: Hot Courses lable_hot_course: Hot Courses
lable_user_active: User Movements
label_course_join_student: Join a course label_course_join_student: Join a course
label_contest_modify_settings: Configuration label_contest_modify_settings: Configuration
bale_news_notice: Add a notification bale_news_notice: Add a notification
@ -534,9 +355,9 @@ en:
label_relation_files: Select an existing resource label_relation_files: Select an existing resource
# Personal signature tips # Personal signature tips
label_my_brief_introduction: How are feeling today? Leave your footprints ~ label_my_brief_introduction: How are feeling today? Leave your footprints ~
label_submit: Submit
# create course and course info # create course and course info
label_tags_course_name: Course Title
label_new_course_password: Password label_new_course_password: Password
label_new_course_description: Description label_new_course_description: Description
field_open_student: Student list is public? field_open_student: Student list is public?
@ -571,11 +392,9 @@ en:
label_technical_support: Support label_technical_support: Support
label_feedback: Feedback label_feedback: Feedback
#end #end
label_user: User
label_user_plural: Users label_user_plural: Users
label_user_new: New user label_user_new: New user
label_user_anonymous: Anonymous label_user_anonymous: Anonymous
label_project: Project
label_activity_project: 'Project: ' #added by bai label_activity_project: 'Project: ' #added by bai
label_project_plural: Projects label_project_plural: Projects
@ -602,7 +421,6 @@ en:
other: "%{count} projects" other: "%{count} projects"
label_project_all: All Projects label_project_all: All Projects
label_project_latest: Latest projects label_project_latest: Latest projects
label_issue: Issue
label_issue_new: New issue label_issue_new: New issue
label_issue_plural: Issues Tracking label_issue_plural: Issues Tracking
label_issue_view_all: View all issues label_issue_view_all: View all issues
@ -646,22 +464,17 @@ en:
label_information: Information label_information: Information
label_information_plural: Information label_information_plural: Information
label_please_login: Please log in label_please_login: Please log in
label_login_with_open_id_option: or login with OpenID
label_home: Home label_home: Home
label_my_page: My page label_my_page: My page
label_my_account: My account
label_my_message: Msgs label_my_message: Msgs
label_my_projects: My projects label_my_projects: My projects
label_my_page_block: My page block label_my_page_block: My page block
label_administration: Administration label_administration: Administration
label_login: Login label_login: Login
# edit by meng
# Logout
label_logout: Logout
# end # end
label_help: Help label_help: Help
label_reported_issues: Reported issues
label_assigned_to_me_issues: Issues assigned to me
label_last_login: Last connection label_last_login: Last connection
label_registered_on: Registered on label_registered_on: Registered on
label_activity: Activities label_activity: Activities
@ -812,7 +625,6 @@ en:
label_repository_plural: Repositories label_repository_plural: Repositories
label_browse: Browse label_browse: Browse
label_branch: Branch label_branch: Branch
label_tag: Tag
label_revision: Revision label_revision: Revision
label_revision_plural: Revisions label_revision_plural: Revisions
label_revision_id: "Revision %{value}" label_revision_id: "Revision %{value}"
@ -850,7 +662,7 @@ en:
label_feed_plural: Feeds label_feed_plural: Feeds
label_changes_details: Details of all changes label_changes_details: Details of all changes
label_issue_tracking: Issue tracking label_issue_tracking: Issue tracking
label_spent_time: Spent time
label_overall_spent_time: Overall spent time label_overall_spent_time: Overall spent time
label_f_hour: "%{value} hour" label_f_hour: "%{value} hour"
label_f_hour_plural: "%{value} hours" label_f_hour_plural: "%{value} hours"
@ -869,7 +681,7 @@ en:
label_watched_issues: Watched issues label_watched_issues: Watched issues
label_related_issues: Related issues label_related_issues: Related issues
label_applied_status: Applied status label_applied_status: Applied status
label_loading: Loading...
label_relation_new: New relation label_relation_new: New relation
label_relation_delete: Delete relation label_relation_delete: Delete relation
label_relates_to: Related to label_relates_to: Related to
@ -928,16 +740,8 @@ en:
label_theme: Theme label_theme: Theme
label_default: Default label_default: Default
label_search_titles_only: Search titles only label_search_titles_only: Search titles only
label_user_mail_option_all: "For any event on all my projects"
label_user_mail_option_selected: "For any event on the selected projects only..."
label_user_mail_option_none: "No events"
label_user_mail_option_only_my_events: "Only for things I watch or I'm involved in"
label_user_mail_option_only_assigned: "Only for things I am assigned to"
label_user_mail_option_only_owner: "Only for things I am the owner of"
label_user_mail_no_self_notified: "I don't want to be notified of changes that I make myself"
label_registration_activation_by_email: account activation by email
label_registration_manual_activation: manual account activation
label_registration_automatic_activation: automatic account activation
label_display_per_page: "Per page: %{value}" label_display_per_page: "Per page: %{value}"
label_age: Age label_age: Age
label_change_properties: Change properties label_change_properties: Change properties
@ -1018,8 +822,6 @@ en:
label_gantt_progress_line: Progress line label_gantt_progress_line: Progress line
label_files_filter: Files Filter label_files_filter: Files Filter
button_submit: Submit
button_save: Save
button_check_all: Check all button_check_all: Check all
button_uncheck_all: Uncheck all button_uncheck_all: Uncheck all
button_collapse_all: Collapse all button_collapse_all: Collapse all
@ -1035,13 +837,11 @@ en:
button_clear: Cancel query button_clear: Cancel query
button_lock: Lock button_lock: Lock
button_unlock: Unlock button_unlock: Unlock
button_download: Download
button_list: List button_list: List
button_view: View button_view: View
button_move: Move button_move: Move
button_move_and_follow: Move and follow button_move_and_follow: Move and follow
button_back: Back
button_cancel: Cancel
button_activate: Activate button_activate: Activate
button_sort: Sort button_sort: Sort
button_log_time: Log time button_log_time: Log time
@ -1053,7 +853,7 @@ en:
button_unarchive: Unarchive button_unarchive: Unarchive
button_reset: Reset button_reset: Reset
button_rename: Rename button_rename: Rename
button_change_password: Change password
button_copy: Copy button_copy: Copy
button_copy_and_follow: Copy and follow button_copy_and_follow: Copy and follow
button_annotate: Annotate button_annotate: Annotate
@ -1089,7 +889,7 @@ en:
text_project_destroy_confirmation: Are you sure you want to delete this project and related data? text_project_destroy_confirmation: Are you sure you want to delete this project and related data?
text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted." text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted."
text_workflow_edit: Select a role and a tracker to edit the workflow text_workflow_edit: Select a role and a tracker to edit the workflow
text_are_you_sure: Are you sure?
text_journal_changed: "%{label} changed from %{old} to %{new}" text_journal_changed: "%{label} changed from %{old} to %{new}"
text_journal_changed_no_detail: "%{label} updated" text_journal_changed_no_detail: "%{label} updated"
text_journal_set_to: "%{label} set to %{value}" text_journal_set_to: "%{label} set to %{value}"
@ -1099,7 +899,6 @@ en:
text_tip_issue_end_day: issue ending this day text_tip_issue_end_day: issue ending this day
text_tip_issue_begin_end_day: issue beginning and ending this day text_tip_issue_begin_end_day: issue beginning and ending this day
text_caracters_maximum: "%{count} characters maximum." text_caracters_maximum: "%{count} characters maximum."
text_caracters_minimum: "Must be at least %{count} characters long."
text_length_between: "Length between %{min} and %{max} characters." text_length_between: "Length between %{min} and %{max} characters."
text_tracker_no_workflow: No workflow defined for this tracker text_tracker_no_workflow: No workflow defined for this tracker
text_unallowed_characters: Unallowed characters text_unallowed_characters: Unallowed characters
@ -1194,7 +993,7 @@ en:
description_message_content: Message content description_message_content: Message content
description_query_sort_criteria_attribute: Sort attribute description_query_sort_criteria_attribute: Sort attribute
description_query_sort_criteria_direction: Sort direction description_query_sort_criteria_direction: Sort direction
description_user_mail_notification: Mail notification settings
description_available_columns: Available Columns description_available_columns: Available Columns
description_selected_columns: Selected Columns description_selected_columns: Selected Columns
description_all_columns: All Columns description_all_columns: All Columns
@ -1208,7 +1007,7 @@ en:
#modify by mkz #modify by mkz
#by young #by young
label_requirement: Calls
label_requirement_focus: Calls # modified by bai label_requirement_focus: Calls # modified by bai
label_developer: Users label_developer: Users
label_investor: Investor label_investor: Investor
@ -1221,7 +1020,6 @@ en:
label_version_display_settings: Display settings label_version_display_settings: Display settings
label_versions_progress: Complete schedule label_versions_progress: Complete schedule
label_versions_description: Versions description label_versions_description: Versions description
label_my_photo: My photo
label_documents_sort: Order setting label_documents_sort: Order setting
label_activities_settings: Display settings label_activities_settings: Display settings
#end #end
@ -1235,7 +1033,7 @@ en:
label_user_edit: "Edit information" label_user_edit: "Edit information"
label_my_course: "My Course" label_my_course: "My Course"
label_user_info: "User information" #huang 添加 label_user_info: "User information" #huang 添加
label_user_watcher: "Following" # huang添加的 # modified by bai label_user_watcher: "Followers" # huang添加的 # modified by bai
label_user_fans: "Followed by" # modified by bai label_user_fans: "Followed by" # modified by bai
# modify by men # modify by men
@ -1258,20 +1056,14 @@ en:
label_project_newother: "See other comments" label_project_newother: "See other comments"
label_project_newshare: "has shared" label_project_newshare: "has shared"
label_project_newadd: "added" label_project_newadd: "added"
label_project_unadd: "No project,go to creat it!"
label_project_un: "You haven't joined any project!"
#end by huang #end by huang
#added by liuping #added by liuping
button_unfollow: Unfollow button_unfollow: Unfollow
button_follow: Follow button_follow: Follow
label_delete_confirm: Confirm delete label_delete_confirm: Confirm delete
label_more_tags: More
label_tags_bid: Call name
label_tags_bid_description: call description
label_tags_issue_description: issue description
label_tags_all_objects: all objects
label_apply_project: Apply Project
label_exit_project: Exit Project label_exit_project: Exit Project
label_apply_project_waiting: "Application has been submitted, please wait for administrator review." label_apply_project_waiting: "Application has been submitted, please wait for administrator review."
label_unapply_project: Unsubscribe label_unapply_project: Unsubscribe
@ -1375,7 +1167,7 @@ en:
label_requirement_bargain_money: type in your rewards(ex. money, reward, grade) label_requirement_bargain_money: type in your rewards(ex. money, reward, grade)
label_wrong_budget: The error format of money label_wrong_budget: The error format of money
label_wrong_date: wrong date format, input right date yyyy-mm-dd label_wrong_date: wrong date format, input right date yyyy-mm-dd
button_upload_photo: Upload photo
label_leave_me_message: left a message to me label_leave_me_message: left a message to me
label_leave_others_message: leave message to him/her label_leave_others_message: leave message to him/her
label_leave_a_message: Leave him/her a message label_leave_a_message: Leave him/her a message
@ -1432,13 +1224,7 @@ en:
label_project_no_activity: The project has no activities now label_project_no_activity: The project has no activities now
label_follow_no_requirement: You don't have followed any requirements label_follow_no_requirement: You don't have followed any requirements
label_no_user_respond_you: There is no respond for you label_no_user_respond_you: There is no respond for you
label_tags_issue: issue
label_tags_project_name: Project name
label_tags_project_description: Project description
label_tags_user_mail: User E-mail
label_tags_user_name: User Name
label_tags_numbers: Tag numbers
label_max_number: Open label nickname is displayed on the web site of your,Must be at most 25 characters long.
label_all_revisions: All revisions label_all_revisions: All revisions
label_repository_name: Repository name label_repository_name: Repository name
label_upassword_info: The password can be shared in the group label_upassword_info: The password can be shared in the group
@ -1452,21 +1238,20 @@ en:
label_issue_tread_over: Treaded over label_issue_tread_over: Treaded over
label_issue_appraise_over: Appraised over label_issue_appraise_over: Appraised over
label_welcome_my_respond: Please leave your comments and suggestions here label_welcome_my_respond: Please leave your comments and suggestions here
label_no_current_fans: the user has no fans now label_no_current_fans: The user has no fans now
label_no_current_watchers: the user hasn't watched others label_no_current_watchers: The user hasn't watched others
label_project_tool_response: Response label_project_tool_response: Response
label_course_feedback: Feedback label_course_feedback: Feedback
label_tags_search_result: Search Results
label_active_call: call label_active_call: call
label_tags_call: Calls
label_user_extensions: Other information
label_boy: Man label_boy: Man
label_girl: Woman label_girl: Woman
field_gender: Gender field_gender: Gender
field_birthday: Birthday field_birthday: Birthday
field_brief_introduction: Info field_brief_introduction: Info
field_location: Location field_location: Location
field_occupation: Position
field_work_experience: Work experience(year) field_work_experience: Work experience(year)
field_zip_code: Zip code field_zip_code: Zip code
label_reward: reward label_reward: reward
@ -1478,15 +1263,12 @@ en:
label_bids_credit_number: points label_bids_credit_number: points
field_budget: reward field_budget: reward
field_deadline: deadline field_deadline: deadline
label_tags_selected: Selected Tags
label_tags_related: Related Tags
button_project_tags_add: Add
label_issue_query_condition: Query condition label_issue_query_condition: Query condition
label_homework_source: Task label_homework_source: Task
label_issue_query: Query label_issue_query: Query
label_issue_cancel_query: Cancel query label_issue_cancel_query: Cancel query
field_reward_type: The type of reward field_reward_type: The type of reward
label_tags_no: no tags now
label_bid_publish: published label_bid_publish: published
label_bid_project: projects label_bid_project: projects
label_project_no_follow: The project hasn't been followed now label_project_no_follow: The project hasn't been followed now
@ -1508,24 +1290,20 @@ en:
#end #end
label_bids_published: published label_bids_published: published
label_bids_published_ago: ago label_bids_published_ago: ago
label_welcome_trustie: Trustie # label_welcome_trustie: Trustie
label_welcome_trustie_project: Online projects hosting platform # label_welcome_trustie_project: Online projects hosting platform
label_welcome_trustie_course: Online Courses practice platform # label_welcome_trustie_course: Online Courses practice platform
label_welcome_trustie_contest: Online Contests practice platform # label_welcome_trustie_contest: Online Contests practice platform
label_welcome_trustie_project_description: Software for Chinese college students and practitioners to provide social-oriented project management, code hosting, resource sharing, cooperation and exchange. # label_welcome_trustie_project_description: Software for Chinese college students and practitioners to provide social-oriented project management, code hosting, resource sharing, cooperation and exchange.
label_welcome_trustie_course_description: Teachers and Students for Chinese universities to provide social-oriented curriculum management, resource sharing, cooperation achieved, collaborative research. # label_welcome_trustie_course_description: Teachers and Students for Chinese universities to provide social-oriented curriculum management, resource sharing, cooperation achieved, collaborative research.
label_welcome_trustie_contest_description: Software for Chinese college students and practitioners to provide social-oriented contest management, code hosting, resource sharing, cooperation and exchange. # label_welcome_trustie_contest_description: Software for Chinese college students and practitioners to provide social-oriented contest management, code hosting, resource sharing, cooperation and exchange.
label_welcome_trustie_description: a socialized collaboration platform for project management, collaborative research, software development and software crowdsourcing for creative university students and entrepreneurs. # label_welcome_trustie_description: a socialized collaboration platform for project management, collaborative research, software development and software crowdsourcing for creative university students and entrepreneurs.
label_user_project: Projects
label_bid_respond_quote: Respond label_bid_respond_quote: Respond
label_bid_if_agreement: If you like me, please press me #bai label_bid_if_agreement: If you like me, please press me #bai
label_bid_respond_delete: Delete label_bid_respond_delete: Delete
label_newfeedback_message: messages label_newfeedback_message: messages
label_newfeedback_quote: Respond label_newfeedback_quote: Respond
label_newfeedback_delete: Delete label_newfeedback_delete: Delete
label_user_all_activity: All activities
label_user_activity_myself: About me
label_user_all_respond: All replies
label_layouts_feedback: Messages label_layouts_feedback: Messages
label_have_feedback: Have label_have_feedback: Have
label_of_feedback: Of label_of_feedback: Of
@ -1554,9 +1332,8 @@ en:
label_school_all: Schools label_school_all: Schools
label_school_not_fount: Not found by your input query condition. label_school_not_fount: Not found by your input query condition.
label_other: Other label_other: Other
label_gender: Gender
label_gender_male: male
label_gender_female: female
label_location: Location label_location: Location
#end #end
label_course: Course label_course: Course
@ -1589,11 +1366,6 @@ en:
label_technicl_title_associate_professor: Associate professor label_technicl_title_associate_professor: Associate professor
label_technicl_title_lecturer: Lecturer label_technicl_title_lecturer: Lecturer
label_technicl_title_teaching_assistant: Teaching assistant label_technicl_title_teaching_assistant: Teaching assistant
label_account_identity_teacher: Teacher
label_account_identity_student: Student
label_account_identity_developer: Developer
label_account_identity_enterprise: Enterprise
label_account_identity_choose: --Please choose your identity--
label_enter_college: College Entrance label_enter_college: College Entrance
lable_enter_enterprise: Enterprise Entrance lable_enter_enterprise: Enterprise Entrance
label_homework_info: Status label_homework_info: Status
@ -1602,8 +1374,7 @@ en:
label_my_question: Please raise your questions here label_my_question: Please raise your questions here
label_teacher_homework: "Teacher's name" label_teacher_homework: "Teacher's name"
label_course_homework: Corresponding courses label_course_homework: Corresponding courses
label_course_done: finished courses
label_course_doing: Doing course
label_limit_time: Deadline label_limit_time: Deadline
label_commit_homework: Submitted Task label_commit_homework: Submitted Task
label_no_course_project: No submitted work label_no_course_project: No submitted work
@ -1632,7 +1403,6 @@ en:
zero: Task zero: Task
one: Task one: Task
other: Tasks other: Tasks
label_project_course_unadd: You have no course,creat one now
label_my_create_honework_no_homework: no task now label_my_create_honework_no_homework: no task now
label_my_homework_no_homework: no task now label_my_homework_no_homework: no task now
label_x_member: label_x_member:
@ -1697,7 +1467,7 @@ en:
label_in_course: in course label_in_course: in course
label_assign_homework: assigned homewok label_assign_homework: assigned homewok
label_noawards: No awards label_noawards: No awards
label_user_location: Location
label_requirement_enterprise: Requirements label_requirement_enterprise: Requirements
label_requirement_enterprise_list: Requirements List label_requirement_enterprise_list: Requirements List
label_contest_innovate: Competition community label_contest_innovate: Competition community
@ -1719,9 +1489,7 @@ en:
label_memo_new: new memo label_memo_new: new memo
label_memo_edit: edit memo label_memo_edit: edit memo
label_project_module_forums: Forums label_project_module_forums: Forums
label_forum: Forum
label_tags_forum_description: Forum description
label_tags_forum: Call forum
label_memo_locked: 'Topic is locked' label_memo_locked: 'Topic is locked'
label_downloads_list: enter file list. label_downloads_list: enter file list.
label_sumbit_empty: search bar need container. label_sumbit_empty: search bar need container.
@ -1734,7 +1502,6 @@ en:
label_your_course: your course label_your_course: your course
label_have_message : have a new message label_have_message : have a new message
label_login_prompt: Email/NickName
:lable_not_receive_mail: Click here don't receive email form site :lable_not_receive_mail: Click here don't receive email form site
#added by linchun as competition# #added by linchun as competition#
@ -1752,19 +1519,27 @@ en:
# Trustie账户
# edit by meng
# Trustie账户> 登陆
lable_user_name: Username
field_password: Password
field_identity_url: OpenID URL
label_stay_logged_in: Keep me signed in
label_password_lost: Forget password
button_login: Login
# Trustie账户> 注册
label_register: Sign up #
# Trustie个人主页
#
# Trustie个人主页>
# 动态栏
label_user_activity: "%{name} Activities"
label_user_all_activity: All activities
label_user_activity_myself: About me
label_user_all_respond: All replies
# 项目栏
label_project_unadd: "No project, go to creat it!"
label_project_un: "You haven't joined any project yet!"
label_has_watched_project: The projects of attention
label_project_take: The projects of participation
# 托管平台主页 # 托管平台主页
@ -1781,14 +1556,17 @@ en:
label_stores_index: Resource search label_stores_index: Resource search
# 托管平台主页 > 搜索提示信息 # 托管平台主页 > 搜索提示信息
label_search_information: Please input the keywords! welcome:
# 托管平台主页 > 下拉列表 search:
label_select_project: project information: "Please input the keywords!" # 搜索提示信息
label_select_course: course select: # 下拉列表
label_select_user: user project: project
label_select_user_nickname: nickname course: course
label_select_user_showname: name user: user
label_select_user_email: email userinfo:
nickname: nickname
showname: name
email: email
# 托管平台主页 > 下方托管平台链接 # 托管平台主页 > 下方托管平台链接
label_projects_management_platform: Projects-platform label_projects_management_platform: Projects-platform
@ -1815,8 +1593,8 @@ en:
# 项目托管平台 # 项目托管平台
# 项目托管平台主页 > 主旨 # 项目托管平台主页 > 主旨
label_project_trustie: label_welcome_trustie_project: Trustie online projects hosting platform
label_project_trustie_theme: label_welcome_trustie_project_description: "Software for Chinese college students and practitioners to provide social-oriented project management, code hosting, resource sharing, cooperation and exchange."
# 项目托管平台主页 > 热门项目栏 # 项目托管平台主页 > 热门项目栏
lable_hot_projects: Hot Projects lable_hot_projects: Hot Projects
@ -1828,11 +1606,14 @@ en:
label_project_score: Score label_project_score: Score
# 项目托管平台主页 > 用户动态栏 # 项目托管平台主页 > 用户动态栏
lable_user_active: User Movements lable_user_active: Recent Activities
field_user_active_published: released user:
field_user_active_uploaded: uploaded active:
field_user_active_updated: updated published: released
field_user_active_unknow: Unknown content uploaded: uploaded
updated: updated
unknow: Unknown content
field_user_active_news: ' news' field_user_active_news: ' news'
field_user_active_issue: ' issue' field_user_active_issue: ' issue'
@ -1855,10 +1636,9 @@ en:
# tracker.name和status在数据库中以中文字段形式存储 # tracker.name和status在数据库中以中文字段形式存储
# 项目托管平台主页 > 贴吧动态栏 # 项目托管平台主页 > 贴吧动态栏
lable_bar_active: Bar Posts lable_bar_active: Recent Posts
label_my_question: My-question label_my_question: My-question
label_my_feedback: My-feedback label_my_feedback: My-feedback
label_more: More
label_updated_time: "Updated %{value} ago" label_updated_time: "Updated %{value} ago"
label_question_sponsor: Sponsor label_question_sponsor: Sponsor
label_final_reply: Last-reply label_final_reply: Last-reply
@ -1878,7 +1658,16 @@ en:
# 项目托管平台 > 加入项目 # 项目托管平台 > 加入项目
project:
join:
title: 快速进入项目通道
description: "只要持有项目的ID就可快速申请加入所在项目。项目页面搜索不到的私有项目只能从此通道进入哦"
id:
label: "Project ID:"
tips: "Project ID is the number within the project's url"
# 公共
label_apply_project: Apply Project
@ -1887,15 +1676,15 @@ en:
# 课程托管平台主页 # 课程托管平台主页
# 课程托管平台主页 > 主旨 # 课程托管平台主页 > 主旨
label_course_trustie: label_welcome_trustie_course: Trustie online courses practice platform
label_course_trustie_theme: label_welcome_trustie_course_description: Teachers and Students for Chinese universities to provide social-oriented curriculum management, resource sharing, cooperation achieved, collaborative research.
# 课程托管平台主页 > # 课程托管平台主页 >
# 竞赛托管平台主页 # 竞赛托管平台主页
# 竞赛托管平台主页 > 主旨 # 竞赛托管平台主页 > 主旨
label_contest_trustie: label_welcome_trustie_contest: Trustie online contests practice platform
label_contest_trustie_theme: label_welcome_trustie_contest_description: Software for Chinese college students and practitioners to provide social-oriented contest management, code hosting, resource sharing, cooperation and exchange.
# 竞赛托管平台主页 > # 竞赛托管平台主页 >
@ -1985,11 +1774,10 @@ en:
label_user_login_attending_contest: You are not logged in, please log in and then join the competition! label_user_login_attending_contest: You are not logged in, please log in and then join the competition!
label_contest_description_no: No description label_contest_description_no: No description
label_no_contest_softapplication: No application label_no_contest_softapplication: No application
label_button_ok: Ok
label_tags_contest: Competition tag
label_final_scores: Final scores label_final_scores: Final scores
label_rating_person_amount: Rating person label_rating_person_amount: Rating person
label_tags_contest_description: Contest description
label_release_add_contest_succeed: The application succeed released and added! label_release_add_contest_succeed: The application succeed released and added!
label_add_contest_succeed_fail: Added fails, the application has been joined the competition! label_add_contest_succeed_fail: Added fails, the application has been joined the competition!
label_no_ftapplication: No application label_no_ftapplication: No application
@ -2061,8 +1849,7 @@ en:
# ajax异步验证 # ajax异步验证
modal_valid_passing: can be used. modal_valid_passing: can be used.
label_company_name: Company Name
notice_account_invalid_creditentials_new: You have not to the mailbox activation
label_school_no_course: The school did not offer any courses, you can view other school curriculum label_school_no_course: The school did not offer any courses, you can view other school curriculum
label_school_less_course: The school offers courses in less, you can view other school curriculum label_school_less_course: The school offers courses in less, you can view other school curriculum
label_file_not_found: Sorry, the file can't be downloaded now! label_file_not_found: Sorry, the file can't be downloaded now!
@ -2076,9 +1863,8 @@ en:
label_my_school: My school label_my_school: My school
label_all_schol: All school label_all_schol: All school
label_select_province: Please select the provinces label_select_province: Please select the provinces
label_search_conditions_not_null: The search conditions can not be empty label_search_conditions_not_null: The search conditions cannot be blank
lable_school_list: List of schools
button_delete_file: delete
label_attachment: attachment label_attachment: attachment
label_max_length: A maximum of 250 characters label_max_length: A maximum of 250 characters
label_create_person: Create personnel label_create_person: Create personnel

View File

@ -0,0 +1,4 @@
en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr

View File

@ -0,0 +1,23 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
#
# 邮件模块
#
# 项目问题跟踪邮件
#
mail_issue_greetings: "亲爱的Trustie用户您好"
mail_issue_footer: "退订该邮件!"
mail_issue_title_userin: "在"
mail_issue_title_active: "中有了一个与您相关的最新活动,请您关注!"
mail_issue_subject: "标题:"
mail_issue_content: "内容:"
mail_issue_sent_from: "来源:"
mail_issue_from_project: "项目问题跟踪"
mail_issue_attachments: "附件:"
mail_issue_reply: "我要回复"

91
config/locales/my/en.yml Normal file
View File

@ -0,0 +1,91 @@
en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
#
# Trustie个人模块
#
# 修改资料
#
label_my_account: My account
label_my_photo: My photo
label_information_plural: Information
label_account_identity_teacher: Teacher
label_account_identity_student: Student
label_account_identity_developer: Developer
label_account_identity_enterprise: Enterprise
label_account_identity_choose: "--Please choose your identity--"
label_account_identity_studentID: "Please enter the student ID"
field_is_required: Required
field_firstname: Name
firstname_empty: "Name cannot be blank"
field_firstname_eg: "(egJack Chen请填写[Jack])"
field_lastname: Lastname
lastname_empty: Lastname cannot be blank
enterprise_empty: The enterprise name cannot be blank
field_lastname_eg: "(egJack Chen请填写[Chen])"
label_company_name: Company Name
label_gender: Gender
label_gender_male: male
label_gender_female: female
field_occupation: Position
field_occupation_click: "Click to select provinces and schools"
lable_school_list: List of schools
field_language: Language
location: #地区信息在JS中都是中文信息需要全部翻译
labelname: 地区
select:
click: --请选择省份--
field_mail_notification: Email notifications
description_user_mail_notification: Mail notification settings
label_user_mail_option_all: "For any event on all my projects"
label_user_mail_option_selected: "For any event on the selected projects only..."
label_user_mail_option_none: "No events"
label_user_mail_option_only_my_events: "Only for things I watch or I'm involved in"
label_user_mail_option_only_assigned: "Only for things I am assigned to"
label_user_mail_option_only_owner: "Only for things I am the owner of"
label_user_mail_no_self_notified: "I don't want to be notified of changes that I make myself"
label_user_extensions: Other information
notice_account_updated: Account was successfully updated.
#
# Trustie个人模块
#
# 修改密码
#
button_change_password: Change password
#
# Trustie个人账户模块
#
# 可否删除?
#
label_reported_issues: Reported issues
label_assigned_to_me_issues: Issues assigned to me
label_watched_issues: Watched issues
label_news_latest: Latest news
label_calendar: Calendar
label_document_plural: Documents
label_spent_time: Spent time
#
# Trustie个人账户模块
#
# 可否删除?
#
notice_account_deleted: "Your account has been permanently deleted."
notice_feeds_access_key_reseted: Your RSS access key was reset.
notice_api_access_key_reseted: Your API access key was reset.

101
config/locales/my/zh.yml Normal file
View File

@ -0,0 +1,101 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
#
# Trustie个人账户模块
#
# 公共类
#
field_occupation: 工作单位
label_company_name: 组织名
label_location: 位置
label_identity: 身份
#
# Trustie个人账户模块
#
# 修改资料
#
label_my_account: 我的帐号
label_my_photo: 我的头像
label_information_plural: 信息
label_account_identity_choose: --请选择身份--
label_account_identity_teacher: 教师
label_account_identity_student: 学生
label_account_identity_developer: 开发者
label_account_identity_enterprise: 组织
label_account_identity_studentID: 请输入学号
field_is_required: 必填
field_firstname: 名字
firstname_empty: 名字不能为空
field_firstname_eg: '(例:张三丰,请填写[三丰])'
field_lastname: 姓氏
lastname_empty: 姓氏不能为空
enterprise_empty: 企业名不能为空
field_lastname_eg: '(例:张三丰,请填写[张])'
label_gender: 性别
label_gender_male:
label_gender_female:
field_occupation_click: 请单击选择省份及学校
lable_school_list: 学校列表
field_language: 语言
location: #地区信息在JS中都是中文信息需要全部翻译
labelname: 地区
select:
click: --请选择省份--
field_mail_notification: 邮件通知
description_user_mail_notification: 邮件通知设置
label_user_mail_option_selected: "收取选中项目的所有通知..."
label_user_mail_option_none: "不收取任何通知"
label_user_mail_option_only_my_events: "只收取我跟踪或参与的项目的通知"
label_user_mail_option_only_assigned: "只收取分配给我的"
label_user_mail_option_only_owner: 只收取由我创建的
label_user_mail_no_self_notified: "不要发送对我自己提交的修改的通知"
label_user_extensions: 其他信息
notice_account_updated: 帐号更新成功
#
# Trustie个人账户模块
#
# 修改密码
#
button_change_password: 修改密码
#
# Trustie个人账户模块
#
# 可否删除?
#
label_assigned_to_me_issues: 指派给我的问题
label_reported_issues: 已报告的问题
label_watched_issues: 跟踪的问题
label_news_latest: 最近的新闻
label_calendar: 日历
label_document_plural: 文档
label_spent_time: 耗时
#
# Trustie个人账户模块
#
# 可否删除?
#
notice_account_deleted: 您的账号已被永久删除(账号已无法恢复)
notice_feeds_access_key_reseted: 您的RSS存取键已被重置。
notice_api_access_key_reseted: 您的API访问键已被重置。

View File

@ -0,0 +1,8 @@
en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
label_user_location: Location

View File

@ -0,0 +1,81 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
#
# Trustie平台导航
#
# 顶部菜单
#
field_homepage: 主页
label_project_deposit: 项目托管
label_course_practice: 课程实践
label_forum_all: 公共贴吧
label_school_all: 中国高校
label_contest_innovate: 创新竞赛
label_software_user: 软件创客
label_requirement_enterprise: 软件众包
label_stores_index: 资源搜索
label_login: 登录
#
# 项目托管平台主
#
# 主旨
#
label_welcome_trustie_project: Trustie在线项目托管平台
label_welcome_trustie_project_description: "面向中国大学生与软件从业者,提供社交化的项目管理、代码托管、资源共享、合作交流。"
#
# 课程托管平台
#
# 主旨
#
label_welcome_trustie_course: Trustie在线课程实践平台
label_welcome_trustie_course_description: "面向中国高校教师与大学生,提供社交化的课程管理、资源共享、合作实验、协同研究。"
#
# 竞赛托管平台
#
# 主旨
#
label_welcome_trustie_contest: Trustie在线竞赛实战平台
label_welcome_trustie_contest_description: "面向中国大学生与编程爱好者,提供社交化的竞赛管理、应用管理、代码托管、合作交流。"
#
# Trustie平台导航
#
# 搜索
#
welcome:
search:
information: 请输入要搜索的关键字 # 搜索提示信息
select: # 下拉列表
project: 项目
course: 课程
user: 用户
userinfo:
nickname: 昵称
showname: 姓名
email: 邮箱
#
# Trustie平台导航
#
# 下方托管平台链接
#
label_projects_management_platform: 项目托管平台
label_courses_management_platform: 课程实践平台
label_contests_management_platform: 竞赛托管平台
#
# Trustie平台导航
#
# 各模块内导航
#
label_user_location: 当前位置

View File

@ -0,0 +1,6 @@
en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
label_approve: Approve
label_refusal: Refusal

View File

@ -0,0 +1,60 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
#
# 项目托管平台主页
#
# 热门项目栏
#
lable_hot_projects: 热门项目
label_project_new: 新建项目
label_join_project: 加入项目
label_private: 私有
label_project_member_amount: "%{count}人"
label_project_score_tips: 项目得分,综合考虑了项目的各项活动,反映了该项目的活跃程度
label_project_score: 项目评分
#
# 项目托管平台
#
# 新建项目
#
label_project_new_description: '项目可以是软件开发项目,也可以是协作研究项目。'
field_name: 名称
field_description: 描述
field_identifier: 标识
text_length_between: "长度必须在 %{min} 到 %{max} 个字符之间。"
text_project_identifier_info: "小写字母a-z、数字、破折号-和下划线_可以使用。<br />一旦保存,标识无法修改。"
field_is_public: 公开
field_hidden_repo: 隐藏代码库
button_create: 提交
#
# 项目托管平台
#
# 加入项目
#
project:
join:
title: 快速进入项目通道
description: "只要持有项目的ID就可快速申请加入所在项目。项目页面搜索不到的私有项目只能从此通道进入哦"
id:
label: "项目ID"
tips: "项目ID是所在项目网址中显示的序号"
# 公共
label_apply_project: 申请加入
#
# 项目托管平台
#
# 项目配置
#
label_approve: 批准
label_refusal: 拒绝

View File

@ -0,0 +1,19 @@
en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
#
# Trustie账户模块
#
# 公共变量
#
label_project_course_un: "The user is not enrolled in any course yet. "
label_project_course_unadd: "You have no course,creat one now!"
label_project_cousre_studentun: "You have not joined any course, come and join now!"
user:
courses:
doing: Strating
done: Finished

139
config/locales/users/zh.yml Normal file
View File

@ -0,0 +1,139 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
#
# 项目托管平台主页
#
# 用户动态栏
#
lable_user_active: 用户动态
user:
active:
published: 发表了
uploaded: 上传了
updated: 更新了
field_user_active_unknow: 未知内容
field_user_active_news: 新闻
field_user_active_issue: 问题
field_user_active_attachment: 附件
field_user_active_message: 主题
field_user_active_reply: 回复
field_user_active_bid: 作业
field_user_active_memo: 主题
field_user_active_document: 文件
field_user_active_changeset: 版本库
field_user_active_issue_note: 问题说明
field_updated_on: 更新于
field_time_ago:
field_active_reply: "回复("
# 用户动态中event.title和event.description
# 通过act_as_event方法的option配置
# "#{o.tracker.name} ##{o.id} (#{o.status}): #{o.subject}"
# "缺陷 #1869 (已解决):subject"
# 而tracker.name和status在数据库中以中文字段形式存储
#
# Trustie用户主页
#
# top-content
#
label_user_home: 创客空间
#
# Trustie用户主页
#
# 左边栏
#
label_user_edit: "修改资料"
label_user_score: 个人综合得分
label_user_score_of_topic: 帖子得分
label_user_score_of_project: 项目得分
label_user_score_of_activity: 活跃度得分
label_user_score_of_influence: 影响力得分
label_user_score_of_collaboration: 协同得分
label_user_score_of_skill: 技术得分
label_user_score_of_active: 项目贡献得分
label_user_info: "个人简介" #huang 添加
label_user_watcher: "关注" # huang添加的
label_user_fans: "粉丝"
label_x_user_fans:
zero: 粉丝
one: 粉丝
other: 粉丝
label_brief_introduction: 个性签名
label_my_brief_introduction: 今天的心情如何?留下你的脚印吧~
label_user_joinin: "加入时间"
label_user_login: "最后登录"
label_technical_title: 职称
label_bidding_user_studentcode: 学号
label_account_developer: 开发者
label_account_student: 学生
#
# Trustie用户主页
#
# 菜单栏
#
label_activity: 动态
label_user_course: 课程
label_user_project: 项目
label_user_newfeedback: 留言
#
# Trustie个人主页
#
# Trustie个人主页>
# 动态栏
label_user_activity: "%{name}的动态"
label_user_all_activity: 所有动态
label_user_activity_myself: 我的动态
label_user_all_respond: 所有反馈
label_i_new_activity: 有了新活动在
label_have_feedback: 有了
label_of_feedback:
label_layouts_feedback: 留言
label_new_activity: 有了最新动态
# 项目栏
label_project_unadd: "暂无项目,赶快去创建吧!"
label_project_un: "该用户暂未参与任何项目!"
label_has_watched_project: 关注的项目
label_project_take: 参与的项目
#
# Trustie用户主页
#
# 课程栏
#
label_project_course_un: "该用户暂未加入任何课程!"
label_project_course_unadd: "你还未创建课程,赶快去创建吧!"
label_project_cousre_studentun: "你还未加入任何课程,赶快加入吧!"
user:
courses:
doing: 进行中的课程
done: 已结束的课程
#
# Trustie用户主页
#
# 留言栏
#

View File

@ -2118,7 +2118,7 @@ zh:
label_attending_contest: 参加竞赛 label_attending_contest: 参加竞赛
label_new_attendingcontest_work: 新建参赛作品 label_new_attendingcontest_work: 新建参赛作品
label_workname_lengthlimit: 25个汉字以内 label_workname_lengthlimit: 25个汉字以内
label_workdescription_lengthlimit: 125个汉字以内用','隔开 label_workdescription_lengthlimit: "125个汉字以内用','隔开"
label_please_input_password: 请输入竞赛密码 label_please_input_password: 请输入竞赛密码
label_please_select_project: 请选择项目 label_please_select_project: 请选择项目
label_upload_softworkpacket_photo: 上传作品软件包和作品截图 label_upload_softworkpacket_photo: 上传作品软件包和作品截图
@ -2284,7 +2284,7 @@ zh:
label_co_organizer_BHU: 北京航空航天大学计算机学院 label_co_organizer_BHU: 北京航空航天大学计算机学院
label_co_organizer_CAS: 中国科学院软件研究所 label_co_organizer_CAS: 中国科学院软件研究所
label_co_organizer_InforS: 山东中创软件商用中间件股份有限公司 label_co_organizer_InforS: 山东中创软件商用中间件股份有限公司
label_rights_reserved: 版权©2007~2014 label_rights_reserved: 版权?2007~2014
label_contact_us: 联系我们 label_contact_us: 联系我们
# 英文版不需要显示国内许可证 # 英文版不需要显示国内许可证
label_license: 湘ICP备09019772 label_license: 湘ICP备09019772
@ -2309,6 +2309,12 @@ zh:
# 项目托管平台主页 >用户动态栏 # 项目托管平台主页 >用户动态栏
lable_user_active: 用户动态 lable_user_active: 用户动态
user:
active:
published: 发布了
uploaded: 上传了
updated: 修改了
unknow: Unknown content
field_user_active_published: 发表了 field_user_active_published: 发表了
field_user_active_uploaded: 上传了 field_user_active_uploaded: 上传了
field_user_active_updated: 更新了 field_user_active_updated: 更新了

View File

@ -682,6 +682,7 @@ RedmineApp::Application.routes.draw do
match 'valid_ajax', :to => 'courses#valid_ajax', :via => :get match 'valid_ajax', :to => 'courses#valid_ajax', :via => :get
post 'join_in/join_group', :to => 'courses#join_group', :as => 'join_group' post 'join_in/join_group', :to => 'courses#join_group', :as => 'join_group'
delete 'join_in/join_group', :to => 'courses#unjoin_group' delete 'join_in/join_group', :to => 'courses#unjoin_group'
get 'copy_course'
end end
collection do collection do
match 'join_private_courses', :via => [:get, :post] match 'join_private_courses', :via => [:get, :post]

View File

@ -77,7 +77,7 @@ module Redmine #:nodoc:
# Adds plugin locales if any # Adds plugin locales if any
# YAML translation files should be found under <plugin>/config/locales/ # YAML translation files should be found under <plugin>/config/locales/
::I18n.load_path += Dir.glob(File.join(p.directory, 'config', 'locales', '*.yml')) ::I18n.load_path += Dir.glob(File.join(p.directory, 'config', 'locales', '*.yml'))
::I18n.load_path += Dir.glob(File.join(Rails.root, 'config', 'locales', '**', '*.yml'))
# Prepends the app/views directory of the plugin to the view path # Prepends the app/views directory of the plugin to the view path
view_path = File.join(p.directory, 'app', 'views') view_path = File.join(p.directory, 'app', 'views')
if File.directory?(view_path) if File.directory?(view_path)