Some cleanup and recycling.
[timetracker.git] / WEB-INF / resources / zh-cn.lang.php
index 2503608..a0b9cd9 100644 (file)
@@ -38,13 +38,14 @@ $i18n_holidays = array('01/01', '01/02', '01/25', '01/26', '01/27', '01/28', '01
 
 $i18n_key_words = array(
 
-// Menus.
+// Menus - short selection strings that are displayed on top of application web pages.
+// Example: https://timetracker.anuko.com (black menu on top).
 'menu.login' => '登录',
 'menu.logout' => '注销',
 'menu.forum' => '论坛',
 'menu.help' => '帮助',
-// Note to translators: menu.create_team needs a more accurate translation.
-'menu.create_team' => '创建新管理账号',
+// TODO: translate the following.
+// 'menu.create_team' => 'Create Team',
 'menu.profile' => '简介',
 'menu.time' => '时间记录',
 'menu.expenses' => '费用',
@@ -59,39 +60,40 @@ $i18n_key_words = array(
 'menu.options' => '选项',
 
 // Footer - strings on the bottom of most pages.
-'footer.contribute_msg' => '你可以以不同的方式为Time Tracker提建议',
+'footer.contribute_msg' => '你可以以不同的方式为Time Tracker提建议',
 'footer.credits' => '信用',
 'footer.license' => '许可证',
 'footer.improve' => '投稿',
 
 // Error messages.
-'error.access_denied' => '拒绝访问',
-'error.sys' => '系统错误',
-'error.db' => '数据库错误',
-'error.field' => '不正确的"{0}"数据',
-'error.empty' => '栏目"{0}"为空',
-'error.not_equal' => '栏目"{0}"不等于栏目"{1}"',
-'error.interval' => '不正确的间隔',
-'error.project' => '选择项目',
+'error.access_denied' => '拒绝访问。',
+'error.sys' => '系统错误。',
+'error.db' => '数据库错误。',
+'error.field' => '不正确的"{0}"数据。',
+'error.empty' => '栏目"{0}"为空。',
+'error.not_equal' => '栏目"{0}"不等于栏目"{1}"。',
 // TODO: translate the following.
+// 'error.interval' => 'Field "{0}" must be greater than "{1}".',
+// 'error.project' => 'Select project.',
 // 'error.task' => 'Select task.',
 // 'error.client' => 'Select client.',
 // 'error.report' => 'Select report.',
-'error.auth' => '不正确的用户名或密码',
-'error.user_exists' => '该用户登录信息已经存在',
-'error.project_exists' => '该项目名称已经存在',
+// 'error.record' => 'Select record.',
+'error.auth' => '不正确的用户名或密码。',
+'error.user_exists' => '该用户登录信息已经存在。',
+'error.project_exists' => '该项目名称已经存在。',
 // TODO: translate the following.
 // 'error.task_exists' => 'Task with this name already exists.',
-'error.client_exists' => '具有此名称的客户端已经存在',
+'error.client_exists' => '具有此名称的客户端已经存在',
 // TODO: translate the following.
 // 'error.invoice_exists' => 'Invoice with this number already exists.',
 // 'error.no_invoiceable_items' => 'There are no invoiceable items.',
-'error.no_login' => '没有该登录信息的用户',
+'error.no_login' => '没有该登录信息的用户',
 // TODO: translate the following.
 // 'error.no_teams' => 'Your database is empty. Login as admin and create a new team.',
-'error.upload' => '上传文件出错',
-'error.range_locked' => '日期范围锁定',
-'error.mail_send' => '发送邮件时出错',
+'error.upload' => '上传文件出错',
+'error.range_locked' => '日期范围锁定',
+'error.mail_send' => '发送邮件时出错',
 'error.no_email' => '没有电子邮件与该用户名关联。',
 'error.uncompleted_exists' => '未完成的条目已经存在。关闭或删除。',
 'error.goto_uncompleted' => '进入未完成的条目。',
@@ -107,16 +109,11 @@ $i18n_key_words = array(
 // 'button.copy' => 'Copy',
 'button.cancel' => '取消',
 'button.submit' => '提交',
-
-
-// TODO: check / improve translation of all button.add... strings.
-// Concern is that it used to be "add new something", now just "add something".
-'button.add_user' => '添加新用户',
-'button.add_project' => '添加新项目',
 // TODO: translate the following.
+// 'button.add_user' => 'Add user',
+// 'button.add_project' => 'Add project',
 // 'button.add_task' => 'Add task',
-'button.add_client' => '添加新客户',
-// TODO: translate the following.
+// 'button.add_client' => 'Add client',
 // 'button.add_invoice' => 'Add invoice',
 // 'button.add_option' => 'Add option',
 'button.add' => '添加',
@@ -124,8 +121,8 @@ $i18n_key_words = array(
 'button.reset_password' => '重置密码',
 'button.send' => '发送',
 'button.send_by_email' => '通过邮件发送',
-// TODO: improve translation of button.create_team (used to be "Create new team", now just "Create team").
-'button.create_team' => '创建新团队',
+// TODO: translate the following.
+// 'button.create_team' => 'Create team',
 'button.export' => '导出团队信息',
 'button.import' => '导入团队信息',
 // TODO: translate the following.
@@ -150,6 +147,7 @@ $i18n_key_words = array(
 // TODO: translate the following.
 // 'label.bcc' => 'Bcc',
 'label.subject' => '主题',
+// TODO: translate the following.
 // 'label.date' => 'Date',
 // 'label.start_date' => 'Start date',
 // 'label.end_date' => 'End date',
@@ -168,21 +166,25 @@ $i18n_key_words = array(
 // 'label.finish' => 'Finish',
 // 'label.duration' => 'Duration',
 // 'label.note' => 'Note',
+// 'label.notes' => 'Notes',
 // 'label.item' => 'Item',
 // 'label.cost' => 'Cost',
 // 'label.day_total' => 'Day total',
 // 'label.week_total' => 'Week total',
 // 'label.month_total' => 'Month total',
-// 'label.today' => 'Today',
+'label.today' => '今天',
+// TODO: translate the following.
 // 'label.total_hours' => 'Total hours',
 // 'label.total_cost' => 'Total cost',
 // 'label.view' => 'View',
 // 'label.edit' => 'Edit',
 'label.delete' => '删除',
-// TODO: Translate the following.
+// TODO: translate the following.
 // 'label.configure' => 'Configure',
 // 'label.select_all' => 'Select all',
 // 'label.select_none' => 'Deselect all',
+// 'label.day_view' => 'Day view',
+// 'label.week_view' => 'Week view',
 // 'label.id' => 'ID',
 // 'label.language' => 'Language',
 // 'label.decimal_mark' => 'Decimal mark',
@@ -194,42 +196,50 @@ $i18n_key_words = array(
 // 'label.tax' => 'Tax',
 // 'label.subtotal' => 'Subtotal',
 'label.total' => '总计',
-// TODO: Translate the following.
+// TODO: translate the following.
 // 'label.client_name' => 'Client name',
 // 'label.client_address' => 'Client address',
 // 'label.or' => 'or',
 // 'label.error' => 'Error',
 // 'label.ldap_hint' => 'Type your <b>Windows login</b> and <b>password</b> in the fields below.',
 // 'label.required_fields' => '* - required fields',
-// 'label.on_behalf' => 'on behalf of',
-// 'label.role_manager' => '(manager)',
-// 'label.role_comanager' => '(co-manager)',
-// 'label.role_admin' => '(administrator)',
+'label.on_behalf' => '代表',
+'label.role_manager' => '(经理)',
+'label.role_comanager' => '(合作经理人)',
+'label.role_admin' => '(管理员)',
 'label.page' => '页码',
 // TODO: translate the following.
 // 'label.condition' => 'Condition',
+// 'label.yes' => 'yes',
+// 'label.no' => 'no',
 // Labels for plugins (extensions to Time Tracker that provide additional features).
-// TODO: Translate the following.
-'label.custom_fields' => 'Custom fields',
-'label.monthly_quotas' => 'Monthly quotas',
-'label.type' => 'Type',
-'label.type_dropdown' => 'dropdown',
-'label.type_text' => 'text',
-'label.required' => 'Required',
-'label.fav_report' => 'Favorite report',
-'label.cron_schedule' => 'Cron schedule',
-'label.what_is_it' => 'What is it?',
-'label.expense' => 'Expense',
-'label.quantity' => 'Quantity',
+// TODO: translate the following.
+// 'label.custom_fields' => 'Custom fields',
+// 'label.monthly_quotas' => 'Monthly quotas',
+// 'label.type' => 'Type',
+// 'label.type_dropdown' => 'dropdown',
+// 'label.type_text' => 'text',
+// 'label.required' => 'Required',
+// 'label.fav_report' => 'Favorite report',
+// 'label.cron_schedule' => 'Cron schedule',
+// 'label.what_is_it' => 'What is it?',
+// 'label.expense' => 'Expense',
+// 'label.quantity' => 'Quantity',
+// 'label.paid_status' => 'Paid status',
+// 'label.paid' => 'Paid',
+// 'label.mark_paid' => 'Mark paid',
+// 'label.week_note' => 'Week note',
+// 'label.week_list' => 'Week list',
 
 // Form titles.
-// TODO: Translate the following.
+// TODO: translate the following.
 // 'title.login' => 'Login',
 // 'title.teams' => 'Teams',
 // 'title.create_team' => 'Creating Team',
 // 'title.edit_team' => 'Editing Team',
 // 'title.delete_team' => 'Deleting Team',
-// 'title.reset_password' => 'Resetting Password',
+'title.reset_password' => '重设密码',
+// TODO: translate the following.
 // 'title.change_password' => 'Changing Password',
 // 'title.time' => 'Time',
 // 'title.edit_time_record' => 'Editing Time Record',
@@ -271,7 +281,7 @@ $i18n_key_words = array(
 // 'title.add_notification' => 'Adding Notification',
 // 'title.edit_notification' => 'Editing Notification',
 // 'title.delete_notification' => 'Deleting Notification',
-//  'title.monthly_quotas' => 'Monthly Quotas',
+// 'title.monthly_quotas' => 'Monthly Quotas',
 // 'title.export' => 'Exporting Team Data',
 // 'title.import' => 'Importing Team Data',
 // 'title.options' => 'Options',
@@ -284,11 +294,96 @@ $i18n_key_words = array(
 // 'title.cf_add_dropdown_option' => 'Adding Option',
 // 'title.cf_edit_dropdown_option' => 'Editing Option',
 // 'title.cf_delete_dropdown_option' => 'Deleting Option',
-// // NOTE TO TRANSLATORS: Locking is a feature to lock records from modifications (ex: weekly on Mondays we lock all previous weeks).
-// // It is also a name for the Locking plugin on the Team profile page.
+// NOTE TO TRANSLATORS: Locking is a feature to lock records from modifications (ex: weekly on Mondays we lock all previous weeks).
+// It is also a name for the Locking plugin on the Team profile page.
 // 'title.locking' => 'Locking',
+// 'title.week_view' => 'Week View',
+
+// Section for common strings inside combo boxes on forms. Strings shared between forms shall be placed here.
+// Strings that are used in a single form must go to the specific form section.
+// TODO: translate the following.
+// 'dropdown.all' => '--- all ---',
+// 'dropdown.no' => '--- no ---',
+// 'dropdown.current_day' => 'today',
+// 'dropdown.previous_day' => 'yesterday',
+// 'dropdown.selected_day' => 'day',
+// 'dropdown.current_week' => 'this week',
+// 'dropdown.previous_week' => 'previous week',
+// 'dropdown.selected_week' => 'week',
+// 'dropdown.current_month' => 'this month',
+// 'dropdown.previous_month' => 'previous month',
+// 'dropdown.selected_month' => 'month',
+// 'dropdown.current_year' => 'this year',
+// 'dropdown.previous_year' => 'previous year',
+// 'dropdown.selected_year' => 'year',
+// 'dropdown.all_time' => 'all time',
+// 'dropdown.projects' => 'projects',
+// 'dropdown.tasks' => 'tasks',
+// 'dropdown.clients' => 'clients',
+// 'dropdown.select' => '--- select ---',
+// 'dropdown.select_invoice' => '--- select invoice ---',
+// 'dropdown.status_active' => 'active',
+// 'dropdown.status_inactive' => 'inactive',
+// 'dropdown.delete'=>'delete',
+// 'dropdown.do_not_delete'=>'do not delete',
+// 'dropdown.paid' => 'paid',
+// 'dropdown.not_paid' => 'not paid',
+
+// Login form. See example at https://timetracker.anuko.com/login.php.
+// TODO: translate the following.
+// 'form.login.forgot_password' => 'Forgot password?',
+// 'form.login.about' =>'Anuko <a href="https://www.anuko.com/lp/tt_2.htm" target="_blank">Time Tracker</a> is a simple, easy to use, open source time tracking system.',
+
+// Resetting Password form. See example at https://timetracker.anuko.com/password_reset.php.
+// TODO: translate the following.
+// 'form.reset_password.message' => 'Password reset request sent by email.',
+// 'form.reset_password.email_subject' => 'Anuko Time Tracker password reset request',
+// 'form.reset_password.email_body' => "Dear User,\n\nSomeone, possibly you, requested your Anuko Time Tracker password reset. Please visit this link if you want to reset your password.\n\n%s\n\nAnuko Time Tracker is a simple, easy to use, open source time tracking system. Visit https://www.anuko.com for more information.\n\n",
 
+// Changing Password form. See example at https://timetracker.anuko.com/password_change.php?ref=1.
+// TODO: translate the following.
+// 'form.change_password.tip' => 'Type new password and click on Save.',
+
+// Time form. See example at https://timetracker.anuko.com/time.php.
+// TODO: translate the following.
+// 'form.time.duration_format' => '(hh:mm or 0.0h)',
+// 'form.time.billable' => 'Billable',
+// 'form.time.uncompleted' => 'Uncompleted',
+// 'form.time.remaining_quota' => 'Remaining quota',
+// 'form.time.over_quota' => 'Over quota',
 
+// Editing Time Record form. See example at https://timetracker.anuko.com/time_edit.php (get there by editing an uncompleted time record).
+// TODO: translate the following.
+// 'form.time_edit.uncompleted' => 'This record was saved with only start time. It is not an error.',
+
+// Week view form. See example at https://timetracker.anuko.com/week.php.
+// TODO: translate the following.
+// 'form.week.new_entry' => 'New entry',
+
+// Reports form. See example at https://timetracker.anuko.com/reports.php
+// TODO: translate the following.
+// 'form.reports.save_as_favorite' => 'Save as favorite',
+'form.reports.confirm_delete' => '您确认要删除收藏的这个报告吗?',
+// TODO: translate the following.
+// 'form.reports.include_billable' => 'billable',
+// 'form.reports.include_not_billable' => 'not billable',
+// 'form.reports.include_invoiced' => 'invoiced',
+// 'form.reports.include_not_invoiced' => 'not invoiced',
+// 'form.reports.select_period' => 'Select time period',
+// 'form.reports.set_period' => 'or set dates',
+// 'form.reports.show_fields' => 'Show fields',
+// 'form.reports.group_by' => 'Group by',
+// 'form.reports.group_by_no' => '--- no grouping ---',
+// 'form.reports.group_by_date' => 'date',
+// 'form.reports.group_by_user' => 'user',
+// 'form.reports.group_by_client' => 'client',
+// 'form.reports.group_by_project' => 'project',
+// 'form.reports.group_by_task' => 'task',
+// 'form.reports.totals_only' => 'Totals only',
+
+
+
+// TODO: refactoring ongoing down from here.
 
 // TODO: everything below needs serious work and be synchronized with the master English file.
 // For example, form.filter.project property no longer exists, and so on.
@@ -297,7 +392,6 @@ $i18n_key_words = array(
 "form.filter.project" => '项目',
 "form.filter.filter" => '收藏的报告',
 "form.filter.filter_new" => '保存到我的收藏夹',
-"form.filter.filter_confirm_delete" => '您确认要删除收藏的这个报告吗?',
 
 // login form attributes
 "form.login.title" => '登录',
@@ -337,16 +431,13 @@ $i18n_key_words = array(
 "form.mytime.time_form" => ' (时:分)',
 "form.mytime.date" => '日期',
 "form.mytime.project" => '项目',
-"form.mytime.activity" => '活动',
 "form.mytime.start" => '开始',
 "form.mytime.finish" => '结束',
 "form.mytime.duration" => '持续时间',
 "form.mytime.note" => '备注',
-"form.mytime.behalf" => '每日工作,人员:',
 "form.mytime.daily" => '每日工作',
 "form.mytime.total" => '总小时数: ',
 "form.mytime.th.project" => '项目',
-"form.mytime.th.activity" => '活动',
 "form.mytime.th.start" => '开始',
 "form.mytime.th.finish" => '结束',
 "form.mytime.th.duration" => '持续时间',
@@ -424,11 +515,8 @@ $i18n_key_words = array(
 "form.report.to" => '结束日期',
 "form.report.groupby_user" => '用户',
 "form.report.groupby_project" => '项目',
-"form.report.groupby_activity" => '活动',
 "form.report.duration" => '持续时间',
 "form.report.start" => '开始',
-"form.report.activity" => '活动',
-"form.report.show_idle" => '显示空闲',
 "form.report.finish" => '结束',
 "form.report.note" => '备注',
 "form.report.project" => '项目',
@@ -437,7 +525,6 @@ $i18n_key_words = array(
 "form.report.th.empllist" => '用户',
 "form.report.th.date" => '日期',
 "form.report.th.project" => '项目',
-"form.report.th.activity" => '活动',
 "form.report.th.start" => '开始',
 "form.report.th.finish" => '结束',
 "form.report.th.duration" => '持续时间',
@@ -446,8 +533,6 @@ $i18n_key_words = array(
 // mail form attributes
 "form.mail.from" => '从',
 "form.mail.to" => '到',
-"form.mail.cc" => '抄送',
-"form.mail.subject" => '主题',
 "form.mail.comment" => '留言',
 "form.mail.above" => '通过电子邮件发送该报告',
 // Note to translators: this string needs to be translated.
@@ -530,14 +615,6 @@ $i18n_key_words = array(
 "label.chart.title2" => '项目用户',
 "label.chart.period" => '图表期限',
 
-"label.pinfo" => '%s, %s',
-"label.pinfo2" => '%s',
-"label.pbehalf_info" => '%s %s <b>代表%s</b>',
-"label.pminfo" => ' (经理)',
-"label.pcminfo" => ' (合作经理人)',
-"label.painfo" => ' (管理员)',
-"label.time_noentry" => '没有条目',
-"label.today" => '今天',
 "label.req_fields" => '* 必填栏目',
 "label.sel_project" => '选择项目',
 "label.sel_activity" => '选择活动',
@@ -553,7 +630,6 @@ $i18n_key_words = array(
 "label.or" => '或',
 "label.disable" => '禁用',
 "label.enable" => '启用',
-"label.filter" => '过滤器',
 "label.timeweek" => '一周总计',
 "label.hrs" => '小时',
 "label.errors" => '错误',