]> source.dussan.org Git - redmine.git/commitdiff
Added chinese simplified translation (Andy Wu)
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 31 Mar 2007 15:51:44 +0000 (15:51 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 31 Mar 2007 15:51:44 +0000 (15:51 +0000)
Fixed rfpdf chinese.rb

git-svn-id: http://redmine.rubyforge.org/svn/trunk@393 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/ifpdf_helper.rb
app/views/mailer/attachments_add_zh.rhtml [new file with mode: 0644]
app/views/mailer/document_add_zh.rhtml [new file with mode: 0644]
app/views/mailer/issue_add_zh.rhtml [new file with mode: 0644]
app/views/mailer/issue_edit_zh.rhtml [new file with mode: 0644]
app/views/mailer/lost_password_zh.rhtml [new file with mode: 0644]
app/views/mailer/register_zh.rhtml [new file with mode: 0644]
lang/zh.yml [new file with mode: 0644]
test/functional/application_controller_test.rb
vendor/plugins/rfpdf/lib/rfpdf/chinese.rb

index 267f96667c3599be1c902fa404f9d987a3487945..755692f65ec28e0d8da44b7eba936d019b606180 100644 (file)
@@ -33,6 +33,11 @@ module IfpdfHelper
         AddSJISFont()
         @font_for_content = 'SJIS'
         @font_for_footer = 'SJIS'
+      when :zh
+        extend(PDF_Chinese)
+        AddBig5Font()
+        @font_for_content = 'Big5'
+        @font_for_footer = 'Big5'
       else
         @font_for_content = 'Arial'
         @font_for_footer = 'Helvetica'              
diff --git a/app/views/mailer/attachments_add_zh.rhtml b/app/views/mailer/attachments_add_zh.rhtml
new file mode 100644 (file)
index 0000000..81e2974
--- /dev/null
@@ -0,0 +1,6 @@
+<%= @added_to %>
+<%= @attachments.size %> files(s) added.
+<% @attachments.each do |attachment | %>
+- <%= attachment.filename %><% end %>
+
+<%= @url %>
\ No newline at end of file
diff --git a/app/views/mailer/document_add_zh.rhtml b/app/views/mailer/document_add_zh.rhtml
new file mode 100644 (file)
index 0000000..67648de
--- /dev/null
@@ -0,0 +1,4 @@
+A document has been added to <%= @document.project.name %> (<%= @document.category.name %>):
+<%= l(:field_title) %>: <%= @document.title %>
+
+http://<%= Setting.host_name %>/documents/show/<%= @document.id %>
\ No newline at end of file
diff --git a/app/views/mailer/issue_add_zh.rhtml b/app/views/mailer/issue_add_zh.rhtml
new file mode 100644 (file)
index 0000000..823de2c
--- /dev/null
@@ -0,0 +1,3 @@
+Issue #<%= @issue.id %> has been reported.
+----------------------------------------
+<%= render :file => "_issue", :use_full_path => true, :locals => { :issue => @issue } %>
\ No newline at end of file
diff --git a/app/views/mailer/issue_edit_zh.rhtml b/app/views/mailer/issue_edit_zh.rhtml
new file mode 100644 (file)
index 0000000..7a9ca16
--- /dev/null
@@ -0,0 +1,8 @@
+Issue #<%= @issue.id %> has been updated.
+<%= @journal.user.name %>
+<% for detail in @journal.details %>
+<%= show_detail(detail, true) %>
+<% end %>
+<%= @journal.notes if @journal.notes? %>
+----------------------------------------
+<%= render :file => "_issue", :use_full_path => true, :locals => { :issue => @issue } %>
\ No newline at end of file
diff --git a/app/views/mailer/lost_password_zh.rhtml b/app/views/mailer/lost_password_zh.rhtml
new file mode 100644 (file)
index 0000000..332ddeb
--- /dev/null
@@ -0,0 +1,3 @@
+To change your password, use the following link:
+
+http://<%= Setting.host_name %>/account/lost_password?token=<%= @token.value %>
\ No newline at end of file
diff --git a/app/views/mailer/register_zh.rhtml b/app/views/mailer/register_zh.rhtml
new file mode 100644 (file)
index 0000000..64477fe
--- /dev/null
@@ -0,0 +1,3 @@
+To activate your redMine account, use the following link:
+
+http://<%= Setting.host_name %>/account/register?token=<%= @token.value %>
\ No newline at end of file
diff --git a/lang/zh.yml b/lang/zh.yml
new file mode 100644 (file)
index 0000000..4ac6d55
--- /dev/null
@@ -0,0 +1,424 @@
+# translated by andy wu\r
+# email:andywu.zh@gmail.com\r
+\r
+_gloc_rule_default: '|n| n==1 ? "" : "_plural" '\r
+\r
+actionview_datehelper_select_day_prefix:\r
+actionview_datehelper_select_month_names: 一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月\r
+actionview_datehelper_select_month_names_abbr: 一,二,三,四,五,六,七,八,九,十,十一,十二\r
+actionview_datehelper_select_month_prefix:\r
+actionview_datehelper_select_year_prefix:\r
+actionview_datehelper_time_in_words_day: 1 天\r
+actionview_datehelper_time_in_words_day_plural: %d 天\r
+actionview_datehelper_time_in_words_hour_about: 约1小时\r
+actionview_datehelper_time_in_words_hour_about_plural: 约 %d 小时\r
+actionview_datehelper_time_in_words_hour_about_single: 约1小时\r
+actionview_datehelper_time_in_words_minute: 1分钟\r
+actionview_datehelper_time_in_words_minute_half: 半分钟\r
+actionview_datehelper_time_in_words_minute_less_than: 1分钟以内\r
+actionview_datehelper_time_in_words_minute_plural: %d 分钟\r
+actionview_datehelper_time_in_words_minute_single: 1分钟\r
+actionview_datehelper_time_in_words_second_less_than: 1秒以内\r
+actionview_datehelper_time_in_words_second_less_than_plural:  %d 秒以内\r
+actionview_instancetag_blank_option: 请选择\r
+\r
+activerecord_error_inclusion: 未包含在列表中\r
+activerecord_error_exclusion: 保留的\r
+activerecord_error_invalid: 无效的\r
+activerecord_error_confirmation: 和确认输入不匹配\r
+activerecord_error_accepted: 必需被接受\r
+activerecord_error_empty: 不能为空\r
+activerecord_error_blank: 不能是空格\r
+activerecord_error_too_long: 太长\r
+activerecord_error_too_short: 太短\r
+activerecord_error_wrong_length: 长度有问题\r
+activerecord_error_taken: has already been taken\r
+activerecord_error_not_a_number: 不是数字\r
+activerecord_error_not_a_date: 不是有效的日期\r
+activerecord_error_greater_than_start_date: 必需大于开始日期\r
+\r
+general_fmt_age: %d yr\r
+general_fmt_age_plural: %d yrs\r
+general_fmt_date: %%m/%%d/%%Y\r
+general_fmt_datetime: %%m/%%d/%%Y %%I:%%M %%p\r
+general_fmt_datetime_short: %%b %%d, %%I:%%M %%p\r
+general_fmt_time: %%I:%%M %%p\r
+general_text_No: '否'\r
+general_text_Yes: '是'\r
+general_text_no: '否'\r
+general_text_yes: '是'\r
+general_lang_zh: 'Chinese (简体中文)'\r
+general_csv_separator: ','\r
+general_csv_encoding: gb2312\r
+general_pdf_encoding: Big5\r
+general_day_names: 一,二,三,四,五,六,日\r
+\r
+notice_account_updated: 帐户更新成功。\r
+notice_account_invalid_creditentials: 用户名或密码不正确\r
+notice_account_password_updated: 成功更新口令\r
+notice_account_wrong_password: 错误的口令\r
+notice_account_register_done: 帐户已创建成功\r
+notice_account_unknown_email: 未知用户\r
+notice_can_t_change_password: 该帐户使用了外部认证。无法更改口令。\r
+notice_account_lost_email_sent: 邮件已被发送,邮件中有关于选择新口令的指导\r
+notice_account_activated: 您的帐号已被激活。您现在可以登录了。\r
+notice_successful_create: 创建成功\r
+notice_successful_update: 更新成功\r
+notice_successful_delete: 删除成功\r
+notice_successful_connection: 连接成功\r
+notice_file_not_found: 您访问的页面不存在或已被删除。\r
+notice_locking_conflict: 数据已被另一个用户更新\r
+notice_scm_error: 在版本库中不存在该条目或修订\r
+\r
+mail_subject_lost_password: 您的redMine口令\r
+mail_subject_register: redMine帐户激活\r
+\r
+gui_validation_error: 1 个错误\r
+gui_validation_error_plural: %d 个错误\r
+\r
+field_name: 名称\r
+field_description: 描述\r
+field_summary: 摘要\r
+field_is_required: 必填\r
+field_firstname: 名字\r
+field_lastname: 姓\r
+field_mail: 邮件地址\r
+field_filename: 文件\r
+field_filesize: 大小\r
+field_downloads: 下载次数\r
+field_author: 作者\r
+field_created_on: 创建于\r
+field_updated_on: 更新于\r
+field_field_format: 格式\r
+field_is_for_all: 应用于所有项目\r
+field_possible_values: 可能的值\r
+field_regexp: 正则表达式\r
+field_min_length: 最小长度\r
+field_max_length: 最大长度\r
+field_value: 值\r
+field_category: 分类\r
+field_title: 标题\r
+field_project: 项目\r
+field_issue: 任务\r
+field_status: 状态\r
+field_notes: 说明\r
+field_is_closed: 已关闭的任务\r
+field_is_default: 默认状态\r
+field_html_color: 颜色\r
+field_tracker: 跟踪\r
+field_subject: 主题\r
+field_due_date: 到期日\r
+field_assigned_to: 指派\r
+field_priority: 优先级\r
+field_fixed_version: 修订版本\r
+field_user: 用户\r
+field_role: 角色\r
+field_homepage: 主页\r
+field_is_public: 公开\r
+field_parent: 上级项目\r
+field_is_in_chlog: 在更新日志中显示任务\r
+field_is_in_roadmap: 在路线图中显示任务\r
+field_login: 登录名\r
+field_mail_notification: 邮件通知\r
+field_admin: 管理员\r
+field_last_login_on: 最后登录\r
+field_language: 语言\r
+field_effective_date: 日期\r
+field_password: 口令\r
+field_new_password: 新口令\r
+field_password_confirmation: 确认\r
+field_version: 版本\r
+field_type: 类别\r
+field_host: 主机\r
+field_port: 端口\r
+field_account: 帐号\r
+field_base_dn: Base DN\r
+field_attr_login: 登录名属性\r
+field_attr_firstname: 名字属性\r
+field_attr_lastname: 姓属性\r
+field_attr_mail: 邮件属性\r
+field_onthefly: On-the-fly user creation\r
+field_start_date: 开始\r
+field_done_ratio: %% 完成\r
+field_auth_source: 认证模式\r
+field_hide_mail: 隐藏我的邮件\r
+field_comment: 注释\r
+field_url: URL\r
+field_start_page: 起始页\r
+field_subproject: 子项目\r
+field_hours: Hours\r
+field_activity: 活动\r
+field_spent_on: 日期\r
+\r
+setting_app_title: 应用程序标题\r
+setting_app_subtitle: 应用程序子标题\r
+setting_welcome_text: 欢迎文字\r
+setting_default_language: 默认语言\r
+setting_login_required: 要求认证\r
+setting_self_registration: 允许自注册\r
+setting_attachment_max_size: 附件最大尺寸\r
+setting_issues_export_limit: Issues export limit\r
+setting_mail_from: Emission mail address\r
+setting_host_name: 主机名称\r
+setting_text_formatting: 文本格式\r
+setting_wiki_compression: Wiki history compression\r
+setting_feeds_limit: Feed content limit\r
+setting_autofetch_changesets: Autofetch SVN commits\r
+\r
+label_user: 用户\r
+label_user_plural: 用户列表\r
+label_user_new: 新建用户\r
+label_project: 项目\r
+label_project_new: 新建项目\r
+label_project_plural: 项目列表\r
+label_project_latest: 最近的项目列表\r
+label_issue: 任务\r
+label_issue_new: 新建任务\r
+label_issue_plural: 任务列表\r
+label_issue_view_all: 查看所有任务\r
+label_document: 文档\r
+label_document_new: 新建文档\r
+label_document_plural: 文档列表\r
+label_role: 角色\r
+label_role_plural: 角色列表\r
+label_role_new: 新建角色\r
+label_role_and_permissions: 角色和权限\r
+label_member: 成员\r
+label_member_new: 新建成员\r
+label_member_plural: 成员列表\r
+label_tracker: 跟踪标签\r
+label_tracker_plural: 跟踪标签列表\r
+label_tracker_new: 新建跟踪标签\r
+label_workflow: 工作流\r
+label_issue_status: 任务状态列表\r
+label_issue_status_plural: 任务状态列表\r
+label_issue_status_new: 新建任务状态列表\r
+label_issue_category: 任务类别\r
+label_issue_category_plural: 任务类别列表\r
+label_issue_category_new: 新建任务类别\r
+label_custom_field: 自定义字段\r
+label_custom_field_plural: 自定义字段列表\r
+label_custom_field_new: 新建自定义字段\r
+label_enumerations: 枚举列表\r
+label_enumeration_new: 新建枚举值\r
+label_information: 信息\r
+label_information_plural: 信息\r
+label_please_login: 请登录\r
+label_register: 注册\r
+label_password_lost: 忘记口令\r
+label_home: 主页\r
+label_my_page: 我的工作台\r
+label_my_account: 我的帐号\r
+label_my_projects: 我的项目列表\r
+label_administration: 管理\r
+label_login: 登录\r
+label_logout: 退出\r
+label_help: 帮助\r
+label_reported_issues: 已报告的问题\r
+label_assigned_to_me_issues: 分配给我的任务\r
+label_last_login: 最后登录\r
+label_last_updates: 最后更新\r
+label_last_updates_plural: %d 最后更新\r
+label_registered_on: 注册于\r
+label_activity: 活动\r
+label_new: 新建\r
+label_logged_as: 登录为\r
+label_environment: 环境\r
+label_authentication: 认证\r
+label_auth_source: 认证模式\r
+label_auth_source_new: 新建认证模式\r
+label_auth_source_plural: 认证模式列表\r
+label_subproject_plural: 子项目列表\r
+label_min_max_length: 最小 - 最大 长度\r
+label_list: list\r
+label_date: Date\r
+label_integer: Integer\r
+label_boolean: Boolean\r
+label_string: Text\r
+label_text: Long text\r
+label_attribute: 属性\r
+label_attribute_plural: 属性\r
+label_download: %d 个下载次数\r
+label_download_plural: %d 个下载次数\r
+label_no_data: 没有数据用于显示\r
+label_change_status: 改变状态\r
+label_history: 历史记录\r
+label_attachment: 文件\r
+label_attachment_new: 新建文件\r
+label_attachment_delete: 删除文件\r
+label_attachment_plural: 文件列表\r
+label_report: 报表\r
+label_report_plural: 报表列表\r
+label_news: 新闻\r
+label_news_new: 增加新闻\r
+label_news_plural: 新闻列表\r
+label_news_latest: 最近的新闻\r
+label_news_view_all: 查看所有新闻\r
+label_change_log: 更新日志\r
+label_settings: 配置\r
+label_overview: 概述\r
+label_version: 版本\r
+label_version_new: 新建版本\r
+label_version_plural: 版本列表\r
+label_confirmation: 确认\r
+label_export_to: 导出\r
+label_read: 读取...\r
+label_public_projects: 公开的项目列表\r
+label_open_issues: 打开\r
+label_open_issues_plural: 打开\r
+label_closed_issues: 已关闭\r
+label_closed_issues_plural: 已关闭\r
+label_total: 合计\r
+label_permissions: 权限列表\r
+label_current_status: 当前状态\r
+label_new_statuses_allowed: New statuses allowed\r
+label_all: 全部\r
+label_none: 无\r
+label_next: 下一个\r
+label_previous: 上一个\r
+label_used_by: 使用中\r
+label_details: 详情...\r
+label_add_note: 添加说明\r
+label_per_page: 每面\r
+label_calendar: 日历\r
+label_months_from: months from\r
+label_gantt: 甘特图(Gantt)\r
+label_internal: 内部\r
+label_last_changes: 最近的 %d 次更改\r
+label_change_view_all: 查看所有更改\r
+label_personalize_page: 个性化定制本页\r
+label_comment: 注释\r
+label_comment_plural: 注释列表\r
+label_comment_add: 添加注释\r
+label_comment_added: 已加入注释\r
+label_comment_delete: 删除注释\r
+label_query: 自定义查询\r
+label_query_plural: 自定义查询列表\r
+label_query_new: 新建查询\r
+label_filter_add: 增加过滤器\r
+label_filter_plural: 过滤器列表\r
+label_equals: 等于\r
+label_not_equals: 不等于\r
+label_in_less_than: 剩余天数小于\r
+label_in_more_than: 剩余天数大于\r
+label_in: 剩余天数\r
+label_today: 今天\r
+label_less_than_ago: 之前天数少于\r
+label_more_than_ago: 之前天数大于\r
+label_ago: 之前天数\r
+label_contains: 包含\r
+label_not_contains: 不包含\r
+label_day_plural: 天数\r
+label_repository: SVN 版本库\r
+label_browse: 浏览\r
+label_modification: %d 个更新\r
+label_modification_plural: %d 个更新\r
+label_revision: 修订\r
+label_revision_plural: 修订\r
+label_added: 已增加\r
+label_modified: 已修改\r
+label_deleted: 已删除\r
+label_latest_revision: 最近的版本\r
+label_latest_revision_plural: 最近的版本列表\r
+label_view_revisions: 查看修订列表\r
+label_max_size: 最大尺寸\r
+label_on: 'on'\r
+label_sort_highest: 置顶\r
+label_sort_higher: 上移\r
+label_sort_lower: 下移\r
+label_sort_lowest: 置底\r
+label_roadmap: 路线图\r
+label_roadmap_due_in: Due in \r
+label_roadmap_no_issues: 该版本没有任务\r
+label_search: 查找\r
+label_result: %d 个结果\r
+label_result_plural: %d 个结果\r
+label_all_words: 所有单词\r
+label_wiki: Wiki\r
+label_wiki_edit: Wiki edit\r
+label_wiki_edit_plural: Wiki edits\r
+label_page_index: 索引\r
+label_current_version: 当前版本\r
+label_preview: 预览\r
+label_feed_plural: Feeds\r
+label_changes_details: 所有更改的详情\r
+label_issue_tracking: 任务跟踪\r
+label_spent_time: 耗时\r
+label_f_hour: %.2f 小时\r
+label_f_hour_plural: %.2f 小时\r
+label_time_tracking: 时间跟踪\r
+label_change_plural: 更改列表\r
+label_statistics: 统计\r
+label_commits_per_month: Commits per month\r
+label_commits_per_author: Commits per author\r
+label_view_diff: View differences\r
+label_diff_inline: inline\r
+label_diff_side_by_side: side by side\r
+\r
+button_login: 登录\r
+button_submit: 提交\r
+button_save: 保存\r
+button_check_all: 全选\r
+button_uncheck_all: 清除\r
+button_delete: 删除\r
+button_create: 创建\r
+button_test: 测试\r
+button_edit: 编辑\r
+button_add: 新增\r
+button_change: 修改\r
+button_apply: 应用\r
+button_clear: 清除\r
+button_lock: 锁定\r
+button_unlock: 解锁\r
+button_download: 下载\r
+button_list: 列表\r
+button_view: 查看\r
+button_move: 移动\r
+button_back: 返回\r
+button_cancel: 取消\r
+button_activate: 激活\r
+button_sort: 排序\r
+button_log_time: 登记工时\r
+\r
+status_active: 激活\r
+status_registered: 已注册\r
+status_locked: 已锁定\r
+\r
+text_select_mail_notifications: 选择需要发送邮件通知的动作。\r
+text_regexp_info: eg. ^[A-Z0-9]+$\r
+text_min_max_length_info: 0 表示没有限制\r
+text_project_destroy_confirmation: 您确信要删除这个项目以及所有相关的数据吗?\r
+text_workflow_edit: 选择一个角色和跟踪标签来编辑这个工作流\r
+text_are_you_sure: 您确定?\r
+text_journal_changed: 从 %s 更改为 %s\r
+text_journal_set_to: 设置为 %s\r
+text_journal_deleted: 已删除\r
+text_tip_task_begin_day: 开始于此\r
+text_tip_task_end_day: 在此结束\r
+text_tip_task_begin_end_day: 开始并结束于此\r
+\r
+default_role_manager: 管理员\r
+default_role_developper: 开发人员\r
+default_role_reporter: 报告人员\r
+default_tracker_bug: 问题\r
+default_tracker_feature: 功能\r
+default_tracker_support: 支持\r
+default_issue_status_new: 新建\r
+default_issue_status_assigned: 已分配\r
+default_issue_status_resolved: 已解决\r
+default_issue_status_feedback: 回复\r
+default_issue_status_closed: 已关闭\r
+default_issue_status_rejected: 已打回\r
+default_doc_category_user: 用户文档\r
+default_doc_category_tech: 技术文档\r
+default_priority_low: 低\r
+default_priority_normal: 普通\r
+default_priority_high: 高\r
+default_priority_urgent: 紧急\r
+default_priority_immediate: 立刻\r
+default_activity_design: 设计\r
+default_activity_development: 开发\r
+\r
+enumeration_issue_priorities: 任务优先级\r
+enumeration_doc_categories: 文档类别\r
+enumeration_activities: Activities (time tracking)\r
index 293230110ea042814a0274cd41053080498399ec..d6f0db780f69ba5c1814e843309af6b36c04224c 100644 (file)
@@ -30,7 +30,7 @@ class ApplicationControllerTest < Test::Unit::TestCase
 
   # check that all 6 supported languages are valid
   def test_localization
-    assert_equal 6, GLoc.valid_languages.size
+    assert_equal 7, GLoc.valid_languages.size
     GLoc.valid_languages.each do |lang|
       assert set_language_if_valid(lang)
     end
index 731d582a2ab15bac647cea319625437d39fef0da..6fe3eee8aba09d32885003bdc1d3a9762fbd05b8 100644 (file)
@@ -132,7 +132,7 @@ module PDF_Chinese
        while(i<nb)
                c=s[i]
                if(c<128)
-                       l+=cw[c.chr]
+                       l+=cw[c.chr] if cw[c.chr]
                        i+=1
                else
                        l+=1000
@@ -170,13 +170,13 @@ module PDF_Chinese
                        b2='LR'
                else
                        b2=''
-                       if(border.index('L').nil?)
+                       if(border.to_s.index('L'))
                                b2+='L'
                                end
-                       if(border.index('R').nil?)
+                       if(border.to_s.index('R'))
                                b2+='R'
                                end
-                       b=border.index('T').nil? ? b2+'T' : b2
+                       b=border.to_s.index('T') ? b2+'T' : b2
                end
        end
        sep=-1
@@ -209,7 +209,7 @@ module PDF_Chinese
                        sep=i
                        ls=l
                end
-               l+=ascii ? cw[c.chr] : 1000
+               l+=ascii ? (cw[c.chr] || 0) : 1000
                if(l>wmax)
                        #Automatic line break
                        if(sep==-1 or i==j)
@@ -233,7 +233,7 @@ module PDF_Chinese
                end
        end
        #Last chunk
-       if(border and not border.index('B').nil?)
+       if(border and not border.to_s.index('B').nil?)
                b+='B'
                end
        Cell(w,h,s[j,i-j],b,2,align,fill)