X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Fresources%2Fzh-cn.lang.php;h=b8bf9d4877db57e45293811f01b2eba0dac22725;hb=9822905b00350445f82a5415d8c47db10706d1b7;hp=0c1d3777a105fb9a8037d9de5c42ef4af693fedd;hpb=67ff88b9d0f11b6f63c06823828df337063a7d6f;p=timetracker.git
diff --git a/WEB-INF/resources/zh-cn.lang.php b/WEB-INF/resources/zh-cn.lang.php
index 0c1d3777..b8bf9d48 100644
--- a/WEB-INF/resources/zh-cn.lang.php
+++ b/WEB-INF/resources/zh-cn.lang.php
@@ -60,46 +60,41 @@ $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.
-// TODO: All error messages should be complete sentences with a period (full stop) in the end. Put them there.
-'error.access_denied' => 'æç»è®¿é®',
-'error.sys' => 'ç³»ç»é误',
-'error.db' => 'æ°æ®åºé误',
-'error.field' => 'ä¸æ£ç¡®ç"{0}"æ°æ®',
-'error.empty' => 'æ ç®"{0}"为空',
-'error.not_equal' => 'æ ç®"{0}"ä¸çäºæ ç®"{1}"',
+'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.project' => 'éæ©é¡¹ç®ã',
+// TODO: translate the following.
// 'error.task' => 'Select task.',
// 'error.client' => 'Select client.',
// 'error.report' => 'Select report.',
// 'error.record' => 'Select record.',
-
-
-
-// TODO: refactoring ongoing down from here.
-
-'error.auth' => 'ä¸æ£ç¡®çç¨æ·åæå¯ç ',
-'error.user_exists' => '该ç¨æ·ç»å½ä¿¡æ¯å·²ç»åå¨',
-'error.project_exists' => '该项ç®å称已ç»åå¨',
+'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' => 'è¿å
¥æªå®æçæ¡ç®ã',
@@ -115,16 +110,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' => 'æ·»å ',
@@ -132,12 +122,12 @@ $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' => '导å
¥å¢éä¿¡æ¯',
+'button.close' => 'å
³é',
// TODO: translate the following.
-// 'button.close' => 'Close',
// 'button.stop' => 'Stop',
// Labels for controls on forms. Labels in this section are used on multiple forms.
@@ -158,6 +148,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',
@@ -180,15 +171,17 @@ $i18n_key_words = array(
// 'label.item' => 'Item',
// 'label.cost' => 'Cost',
// 'label.day_total' => 'Day total',
-// 'label.week_total' => 'Week total',
+'label.week_total' => 'ä¸å¨æ»è®¡',
+// TODO: translate the following.
// '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',
@@ -205,24 +198,24 @@ $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 Windows login and password 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.required_fields' => '* å¿
å¡«æ ç®',
+'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.
+// TODO: translate the following.
// 'label.custom_fields' => 'Custom fields',
// 'label.monthly_quotas' => 'Monthly quotas',
// 'label.type' => 'Type',
@@ -237,15 +230,18 @@ $i18n_key_words = array(
// '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',
@@ -287,7 +283,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',
@@ -300,11 +296,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 Time Tracker 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' => 'éæ©æ¶é´æ®µ',
+'form.reports.set_period' => 'æ设å®æ¥æ',
+'form.reports.show_fields' => 'æ¾ç¤ºæ ç®',
+'form.reports.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.
@@ -313,7 +394,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" => 'ç»å½',
@@ -353,16 +433,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" => 'æç»æ¶é´',
@@ -440,11 +517,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" => '项ç®',
@@ -453,7 +527,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" => 'æç»æ¶é´',
@@ -519,9 +592,6 @@ $i18n_key_words = array(
"forward.geninvoice" => 'çæå票',
"forward.change" => '客æ·è®¾ç½®',
-// strings inside contols on forms
-"controls.select.project" => '--- éæ©é¡¹ç® ---',
-"controls.select.activity" => '--- éæ©æ´»å¨ ---',
"controls.select.client" => '--- éæ©å®¢æ· ---',
"controls.project_bind" => '--- å
¨é¨ ---',
"controls.all" => '--- å
¨é¨ ---',
@@ -544,22 +614,6 @@ $i18n_key_words = array(
"label.chart.title2" => '项ç®ç¨æ·',
"label.chart.period" => 'å¾è¡¨æé',
-"label.pinfo" => '%s, %s',
-"label.pinfo2" => '%s',
-"label.pbehalf_info" => '%s %s 代表%s',
-"label.pminfo" => ' (ç»ç)',
-"label.pcminfo" => ' (åä½ç»ç人)',
-"label.painfo" => ' (管çå)',
-"label.time_noentry" => '没ææ¡ç®',
-"label.today" => 'ä»å¤©',
-"label.req_fields" => '* å¿
å¡«æ ç®',
-"label.sel_project" => 'éæ©é¡¹ç®',
-"label.sel_activity" => 'éæ©æ´»å¨',
-"label.sel_tp" => 'éæ©æ¶é´æ®µ',
-"label.set_tp" => 'æ设å®æ¥æ',
-"label.fields" => 'æ¾ç¤ºæ ç®',
-"label.group_title" => 'åç»æ¹å¼ï¼',
-"label.include_title" => 'å
å«è®°å½',
"label.inv_str" => 'å票',
"label.set_empl" => 'éæ©ç¨æ·',
"label.sel_all" => 'å
¨é¨éæ©',
@@ -567,14 +621,9 @@ $i18n_key_words = array(
"label.or" => 'æ',
"label.disable" => 'ç¦ç¨',
"label.enable" => 'å¯ç¨',
-"label.filter" => 'è¿æ»¤å¨',
-"label.timeweek" => 'ä¸å¨æ»è®¡',
"label.hrs" => 'å°æ¶',
"label.errors" => 'é误',
"label.ldap_hint" => 'å¨ä¸é¢çæ ç®è¾å
¥æ¨çWindowsç¨æ·ååå¯ç ã',
-// Note to translators: strings below must be translated.
- "label.calendar_today" => 'ä»å¤©',
- "label.calendar_close" => 'å
³é',
// login hello text
"login.hello.text" => "anukoæ¶é´è·è¸ªå¨æ¯ä¸ç§ç®åãæç¨ãå¼æ¾æºä»£ç çå®æ¶è·è¸ªç³»ç»ã",