X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Fresources%2Fzh-tw.lang.php;h=0cf020d721dfe57d9d2ab64915ccc2f8c05f9669;hb=0d45a1d1514321c2a78b3f10ae5896d2ea1acdea;hp=2a509d023ae71b35c298d98794159ba00afaa5c8;hpb=47a30e69b5389f5e6cf7b7fa879d3410887ab24b;p=timetracker.git
diff --git a/WEB-INF/resources/zh-tw.lang.php b/WEB-INF/resources/zh-tw.lang.php
index 2a509d02..0cf020d7 100644
--- a/WEB-INF/resources/zh-tw.lang.php
+++ b/WEB-INF/resources/zh-tw.lang.php
@@ -71,39 +71,38 @@ $i18n_key_words = array(
// This is a link to a webpage that describes how to contribute to the project.
// Error messages.
-// TODO: All error messages should be complete sentences with a period (full stop) in the end. Put them there.
// TODO: translate the following.
// 'error.access_denied' => 'Access denied.',
// 'error.sys' => 'System error.',
-'error.db' => 'è³æ庫é¯èª¤',
-'error.field' => 'ä¸æ£ç¢ºç"{0}"è³æ',
-'error.empty' => 'æ¬ç®"{0}"çºç©º',
-'error.not_equal' => 'æ¬ç®"{0}"ä¸çæ¼æ¬ç®"{1}"',
+'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' => 'é¸æé
ç®',
+'error.project' => 'é¸æé
ç®ã',
// TODO: translate the following.
// 'error.task' => 'Select task.',
-'error.client' => 'é¸æ客æ¶',
+'error.client' => 'é¸æ客æ¶ã',
// TODO: translate the following.
// 'error.report' => 'Select report.',
// 'error.record' => 'Select record.',
-'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' => 'Client with this name already exists.',
// '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.upload' => 'ä¸å³æ件åºé¯ã',
// TODO: translate the following.
// 'error.range_locked' => 'Date range is locked.',
-'error.mail_send' => 'ç¼ééµä»¶æåºé¯',
-'error.no_email' => 'æ²æé»åéµä»¶è該ç¨æ¶åéè¯',
+'error.mail_send' => 'ç¼ééµä»¶æåºé¯ã',
+'error.no_email' => 'æ²æé»åéµä»¶è該ç¨æ¶åéè¯ã',
// TODO: translate the following.
// 'error.uncompleted_exists' => 'Uncompleted entry already exists. Close or delete it.',
// 'error.goto_uncompleted' => 'Go to uncompleted entry.',
@@ -160,12 +159,13 @@ $i18n_key_words = array(
// TODO: translate the following.
// 'label.start_date' => 'Start date',
// 'label.end_date' => 'End date',
-// 'label.user' => 'User',
-// 'label.users' => 'Users',
-// 'label.client' => 'Client',
-// 'label.clients' => 'Clients',
+'label.user' => 'ç¨æ¶',
+'label.users' => 'ç¨æ¶',
+'label.client' => '客æ¶',
+'label.clients' => '客æ¶',
+// TODO: translate the following.
// 'label.option' => 'Option',
-// 'label.invoice' => 'Invoice',
+'label.invoice' => 'ç¼ç¥¨',
'label.project' => 'é
ç®',
'label.projects' => 'é
ç®',
// TODO: translate the following.
@@ -193,8 +193,9 @@ $i18n_key_words = array(
'label.delete' => 'åªé¤',
// TODO: translate the following.
// 'label.configure' => 'Configure',
-// 'label.select_all' => 'Select all',
-// 'label.select_none' => 'Deselect all',
+'label.select_all' => 'å
¨é¨é¸æ',
+'label.select_none' => 'å
¨é¨ä¸é¸',
+// TODO: translate the following.
// 'label.day_view' => 'Day view',
// 'label.week_view' => 'Week view',
// 'label.id' => 'ID',
@@ -216,7 +217,7 @@ $i18n_key_words = array(
'label.or' => 'æ',
// TODO: translate the following.
// 'label.error' => 'Error',
-// 'label.ldap_hint' => 'Type your Windows login and password in the fields below.',
+'label.ldap_hint' => 'å¨ä¸éºµçæ¬ç®è¼¸å
¥æ¨çWindowsç¨æ¶ååå¯ç¢¼ã',
'label.required_fields' => '* å¿
å¡«æ¬ç®',
'label.on_behalf' => '代表',
'label.role_manager' => '(ç¶ç)',
@@ -270,7 +271,8 @@ $i18n_key_words = array(
// 'title.reports' => 'Reports',
// 'title.report' => 'Report',
// 'title.send_report' => 'Sending Report',
-// 'title.invoice' => 'Invoice',
+'title.invoice' => 'ç¼ç¥¨',
+// TODO: translate the following.
// 'title.send_invoice' => 'Sending Invoice',
// 'title.charts' => 'Charts',
'title.projects' => 'é
ç®',
@@ -282,15 +284,17 @@ $i18n_key_words = array(
// 'title.add_task' => 'Adding Task',
// 'title.edit_task' => 'Editing Task',
// 'title.delete_task' => 'Deleting Task',
-// 'title.users' => 'Users',
+'title.users' => 'ç¨æ¶',
+// TODO: translate the following.
// 'title.add_user' => 'Adding User',
// 'title.edit_user' => 'Editing User',
// 'title.delete_user' => 'Deleting User',
-// 'title.clients' => 'Clients',
-// 'title.add_client' => 'Adding Client',
-// 'title.edit_client' => 'Editing Client',
-// 'title.delete_client' => 'Deleting Client',
-// 'title.invoices' => 'Invoices',
+'title.clients' => '客æ¶',
+'title.add_client' => 'æ·»å 客æ¶',
+'title.edit_client' => '編輯客æ¶',
+'title.delete_client' => 'åªé¤å®¢æ¶',
+'title.invoices' => 'ç¼ç¥¨',
+// TODO: translate the following.
// 'title.add_invoice' => 'Adding Invoice',
// 'title.view_invoice' => 'Viewing Invoice',
// 'title.delete_invoice' => 'Deleting Invoice',
@@ -301,7 +305,8 @@ $i18n_key_words = array(
// 'title.monthly_quotas' => 'Monthly Quotas',
// 'title.export' => 'Exporting Team Data',
// 'title.import' => 'Importing Team Data',
-// 'title.options' => 'Options',
+'title.options' => 'é¸é
',
+// TODO: translate the following.
// 'title.profile' => 'Profile',
// 'title.cf_custom_fields' => 'Custom Fields',
// 'title.cf_add_custom_field' => 'Adding Custom Field',
@@ -321,23 +326,25 @@ $i18n_key_words = array(
// 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.current_day' => 'ä»å¤©',
+'dropdown.previous_day' => 'æ¨å¤©',
+'dropdown.selected_day' => '天',
+'dropdown.current_week' => 'æ¬å¨',
+'dropdown.previous_week' => 'ä¸å¨',
+'dropdown.selected_week' => 'å¨',
+'dropdown.current_month' => 'æ¬æ',
+'dropdown.previous_month' => 'ä¸åæ', // TODO: is this corrtect? Not ä¸æ?
+'dropdown.selected_month' => 'æ',
+'dropdown.current_year' => 'ä»å¹´',
+// TODO: translate the following.
// 'dropdown.previous_year' => 'previous year',
-// 'dropdown.selected_year' => 'year',
-// 'dropdown.all_time' => 'all time',
+'dropdown.selected_year' => 'å¹´',
+'dropdown.all_time' => 'å
¨é¨æé',
'dropdown.projects' => 'é
ç®',
// TODO: translate the following.
// 'dropdown.tasks' => 'tasks',
-// 'dropdown.clients' => 'clients',
+'dropdown.clients' => '客æ¶',
+// TODO: translate the following.
// 'dropdown.select' => '--- select ---',
// 'dropdown.select_invoice' => '--- select invoice ---',
// 'dropdown.status_active' => 'active',
@@ -353,10 +360,10 @@ $i18n_key_words = array(
// '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",
+'form.reset_password.message' => 'å¯ç¢¼éè¨è«æ±å·²ç¶ç¼éã', // TODO: Add "by email" to match the English string.
+'form.reset_password.email_subject' => 'Anukoæé追蹤å¨å¯ç¢¼éè¨è«æ±',
+// TODO: translate the ending of the following.
+'form.reset_password.email_body' => "親æçç¨æ¶ï¼\n\næ人ï¼ä¹å¯è½æ¯æ¨èªå·±ï¼è«æ±éæ°è¨ç½®æ¨çAnukoæé追蹤å¨å¯ç¢¼ãå¦ææ¨å¸æéè¨æ¨çå¯ç¢¼ï¼è«è¨ªåä¸éºµçé£çµï¼\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.
@@ -431,19 +438,49 @@ $i18n_key_words = array(
// 'form.tasks.active_tasks' => 'Active Tasks',
// 'form.tasks.inactive_tasks' => 'Inactive Tasks',
+// Users form. See example at https://timetracker.anuko.com/users.php
+// TODO: translate the following.
+// 'form.users.active_users' => 'Active Users',
+// 'form.users.inactive_users' => 'Inactive Users',
+// 'form.users.uncompleted_entry' => 'User has an uncompleted time entry',
+// 'form.users.role' => 'Role',
+// 'form.users.manager' => 'Manager',
+// 'form.users.comanager' => 'Co-manager',
+// 'form.users.rate' => 'Rate',
+// 'form.users.default_rate' => 'Default hourly rate',
+// Clients form. See example at https://timetracker.anuko.com/clients.php
+// TODO: translate the following.
+// 'form.clients.active_clients' => 'Active Clients',
+// 'form.clients.inactive_clients' => 'Inactive Clients',
-// TODO: refactoring ongoing down from here.
+// Deleting Client form. See example at https://timetracker.anuko.com/client_delete.php
+// TODO: translate the following.
+// 'form.client.client_to_delete' => 'Client to delete',
+// 'form.client.client_entries' => 'Client entries',
+
+// Exporting Team Data form. See example at https://timetracker.anuko.com/export.php
+// TODO: translate the following.
+// 'form.export.hint' => 'You can export all team data into an xml file. It could be useful if you are migrating data to your own server.',
+// 'form.export.compression' => 'Compression',
+// 'form.export.compression_none' => 'none',
+// 'form.export.compression_bzip' => 'bzip',
-// password reminder form attributes
-"form.fpass.send_pass_str" => 'å¯ç¢¼éè¨è«æ±å·²ç¶ç¼é',
-"form.fpass.send_pass_subj" => 'Anukoæé追蹤å¨å¯ç¢¼éè¨è«æ±',
-// Note to translators: the ending of this string below needs to be translated.
-"form.fpass.send_pass_body" => "親æçç¨æ¶ï¼\n\næ人ï¼ä¹å¯è½æ¯æ¨èªå·±ï¼è«æ±éæ°è¨ç½®æ¨çAnukoæé追蹤å¨å¯ç¢¼ãå¦ææ¨å¸æéè¨æ¨çå¯ç¢¼ï¼è«è¨ªåä¸éºµçé£çµï¼\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",
-"form.fpass.reset_comment" => "è¦éè¨å¯ç¢¼ï¼è«è¼¸å
¥æ°å¯ç¢¼ä¸¦é»æä¿åæé",
+// Importing Team Data form. See example at https://timetracker.anuko.com/imort.php (login as admin first).
+// TODO: translate the following.
+// 'form.import.hint' => 'Import team data from an xml file.',
+// 'form.import.file' => 'Select file',
+// 'form.import.success' => 'Import completed successfully.',
+
+// Teams form. See example at https://timetracker.anuko.com/admin_teams.php (login as admin first).
+// TODO: translate the following.
+// 'form.teams.hint' => 'Create a new team by creating a new team manager account.
You can also import team data from an xml file from another Anuko Time Tracker server (no login collisions are allowed).',
+
+
+
+// TODO: refactoring ongoing down from here.
// administrator form
-"form.admin.title" => '管çå¡',
"form.admin.duty_text" => 'ééåµå»ºæ°çåéç¶ç帳èä¾åµå»ºæ°åéã
æ¨ä¹å¯ä»¥å¾å
¶å®çAnukoæé追蹤å¨ä¼ºæå¨çxmlæªå°å
¥åéè³æ(ç»éè³è¨ä¸è½ç¼çè¡çª)ã',
"form.admin.profile.title" => 'åé',
@@ -451,14 +488,12 @@ $i18n_key_words = array(
"form.admin.profile.comment" => 'åªé¤åé',
"form.admin.profile.th.id" => 'IDè',
"form.admin.profile.th.active" => 'åå',
-"form.admin.options" => 'é¸é
',
// my time form attributes
"form.mytime.title" => 'æçæéè¨é',
"form.mytime.edit_title" => '編輯æéè¨é',
"form.mytime.del_str" => 'åªé¤æéè¨é',
"form.mytime.time_form" => ' (æ:å)',
-"form.mytime.daily" => 'æ¯æ¥å·¥ä½',
"form.mytime.total" => '總å°ææ¸ï¼ ',
"form.mytime.del_yes" => 'æååªé¤æéè¨é',
"form.mytime.no_finished_rec" => '該è¨éåªä¿åäºéå§æéãéä¸æ¯é¯èª¤ãå¦æéè¦ï¼è«ç»åºã',
@@ -480,18 +515,13 @@ $i18n_key_words = array(
"form.people.th.rate" => 'è²»ç',
"form.people.manager" => 'ç¶ç',
"form.people.comanager" => 'åä½ç¶ç人',
-"form.people.empl" => 'ç¨æ¶',
"form.people.rate" => 'é»èªå°ææ¶è²»',
"form.people.comanager" => 'åä½ç¶ç人',
// report attributes
"form.report.title" => 'å ±å',
-"form.report.from" => 'éå§æ¥æ',
-"form.report.to" => 'çµææ¥æ',
-"form.report.totals_only" => 'å
å
ä»å¤©',
"form.report.total" => '總è¨æé',
-"form.report.th.empllist" => 'ç¨æ¶',
// mail form attributes
"form.mail.from" => 'å¾',
@@ -529,11 +559,6 @@ $i18n_key_words = array(
"form.migration.compression.gzip" => 'gzipæ ¼å¼',
"form.migration.compression.bzip" => 'bzipæ ¼å¼',
-"form.client.title" => '客æ¶',
-"form.client.add_title" => 'æ·»å 客æ¶',
-"form.client.edit_title" => '編輯客æ¶',
-"form.client.del_title" => 'åªé¤å®¢æ¶',
-
// miscellaneous strings
"forward.tocsvfile" => 'å°è³æ輸åºå°.csvæ件',
"forward.toxmlfile" => 'å°è³æ輸åºå°.xmlæ件',
@@ -542,20 +567,4 @@ $i18n_key_words = array(
"controls.project_bind" => '--- å
¨é¨ ---',
"controls.all" => '--- å
¨é¨ ---',
"controls.notbind" => '--- ç¡ ---',
-"controls.per_tm" => 'æ¬æ',
-"controls.per_lm" => 'ä¸åæ',
-"controls.per_tw" => 'æ¬å¨',
-"controls.per_lw" => 'ä¸å¨',
-"controls.per_td" => 'ä»å¤©',
-"controls.per_at" => 'å
¨é¨æé',
-"controls.per_ty" => 'ä»å¹´',
-
-"label.inv_str" => 'ç¼ç¥¨',
-"label.set_empl" => 'é¸æç¨æ¶',
-"label.sel_all" => 'å
¨é¨é¸æ',
-"label.sel_none" => 'å
¨é¨ä¸é¸',
-"label.disable" => 'ç¦ç¨',
-"label.enable" => 'åç¨',
-"label.hrs" => 'å°æ',
-"label.ldap_hint" => 'å¨ä¸éºµçæ¬ç®è¼¸å
¥æ¨çWindowsç¨æ¶ååå¯ç¢¼ã',
);