X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/timetracker.git/blobdiff_plain/ceb103409d123c30e3c1c485b1f06293d1fe7308..2c3dea632b53be22bfa6c379df07fc99cb58d045:/WEB-INF/resources/zh-tw.lang.php
diff --git a/WEB-INF/resources/zh-tw.lang.php b/WEB-INF/resources/zh-tw.lang.php
index 953c7bcf..77dd40ab 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.',
@@ -166,7 +165,7 @@ $i18n_key_words = array(
'label.clients' => '客æ¶',
// TODO: translate the following.
// 'label.option' => 'Option',
-// 'label.invoice' => 'Invoice',
+'label.invoice' => 'ç¼ç¥¨',
'label.project' => 'é
ç®',
'label.projects' => 'é
ç®',
// TODO: translate the following.
@@ -194,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',
@@ -271,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' => 'é
ç®',
@@ -292,7 +293,8 @@ $i18n_key_words = array(
'title.add_client' => 'æ·»å 客æ¶',
'title.edit_client' => '編輯客æ¶',
'title.delete_client' => 'åªé¤å®¢æ¶',
-// 'title.invoices' => 'Invoices',
+'title.invoices' => 'ç¼ç¥¨',
+// TODO: translate the following.
// 'title.add_invoice' => 'Adding Invoice',
// 'title.view_invoice' => 'Viewing Invoice',
// 'title.delete_invoice' => 'Deleting Invoice',
@@ -303,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',
@@ -320,22 +323,22 @@ $i18n_key_words = array(
// 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.
+'dropdown.all' => '--- å
¨é¨ ---',
+'dropdown.no' => '--- ç¡ ---',
+'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.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.selected_year' => 'å¹´',
+'dropdown.all_time' => 'å
¨é¨æé',
'dropdown.projects' => 'é
ç®',
// TODO: translate the following.
// 'dropdown.tasks' => 'tasks',
@@ -356,10 +359,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.
@@ -434,19 +437,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',
-// 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" => "è¦éè¨å¯ç¢¼ï¼è«è¼¸å
¥æ°å¯ç¢¼ä¸¦é»æä¿åæé",
+// 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',
+
+// 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" => 'åé',
@@ -454,7 +487,6 @@ $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" => 'æçæéè¨é',
@@ -530,23 +562,4 @@ $i18n_key_words = array(
"forward.tocsvfile" => 'å°è³æè¼¸åºå°.csvæä»¶',
"forward.toxmlfile" => 'å°è³æè¼¸åºå°.xmlæä»¶',
"forward.geninvoice" => 'çæç¼ç¥¨',
-
-"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" => 'å°æ',
);