Merge pull request #10015 from opf/fix/locale-names

Use the I18n locales instead of the file names
pull/10007/head
Oliver Günther 3 years ago committed by GitHub
commit 93e45a921c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      .github/workflows/crowdin.yml
  2. 580
      config/locales/crowdin/js-zh-TW.yml
  3. 1161
      config/locales/crowdin/js-zh.yml
  4. 33
      config/locales/crowdin/zh-TW.yml
  5. 2962
      config/locales/crowdin/zh.yml
  6. 15
      modules/avatars/config/locales/crowdin/js-zh.yml
  7. 40
      modules/avatars/config/locales/crowdin/zh.yml
  8. 27
      modules/backlogs/config/locales/crowdin/js-zh.yml
  9. 6
      modules/backlogs/config/locales/crowdin/zh-TW.yml
  10. 161
      modules/backlogs/config/locales/crowdin/zh.yml
  11. 29
      modules/bim/config/locales/crowdin/js-zh.yml
  12. 134
      modules/bim/config/locales/crowdin/zh.yml
  13. 87
      modules/boards/config/locales/crowdin/js-zh.yml
  14. 8
      modules/boards/config/locales/crowdin/zh.yml
  15. 26
      modules/budgets/config/locales/crowdin/js-zh.yml
  16. 73
      modules/budgets/config/locales/crowdin/zh.yml
  17. 32
      modules/costs/config/locales/crowdin/js-zh.yml
  18. 141
      modules/costs/config/locales/crowdin/zh.yml
  19. 4
      modules/dashboards/config/locales/crowdin/js-zh.yml
  20. 4
      modules/dashboards/config/locales/crowdin/zh.yml
  21. 2
      modules/documents/config/locales/crowdin/zh-TW.yml
  22. 42
      modules/documents/config/locales/crowdin/zh.yml
  23. 41
      modules/github_integration/config/locales/crowdin/js-zh.yml
  24. 35
      modules/github_integration/config/locales/crowdin/zh.yml
  25. 4
      modules/grids/config/locales/crowdin/js-zh-TW.yml
  26. 63
      modules/grids/config/locales/crowdin/js-zh.yml
  27. 16
      modules/grids/config/locales/crowdin/zh.yml
  28. 17
      modules/job_status/config/locales/crowdin/js-zh.yml
  29. 70
      modules/ldap_groups/config/locales/crowdin/zh.yml
  30. 8
      modules/meeting/config/locales/crowdin/zh-TW.yml
  31. 90
      modules/meeting/config/locales/crowdin/zh.yml
  32. 4
      modules/my_page/config/locales/crowdin/js-zh.yml
  33. 19
      modules/openid_connect/config/locales/crowdin/zh.yml
  34. 4
      modules/overviews/config/locales/crowdin/js-zh.yml
  35. 4
      modules/overviews/config/locales/crowdin/zh.yml
  36. 4
      modules/pdf_export/config/locales/crowdin/zh-TW.yml
  37. 51
      modules/pdf_export/config/locales/crowdin/zh.yml
  38. 18
      modules/recaptcha/config/locales/crowdin/zh.yml
  39. 2
      modules/reporting/config/locales/crowdin/js-zh-TW.yml
  40. 26
      modules/reporting/config/locales/crowdin/js-zh.yml
  41. 2
      modules/reporting/config/locales/crowdin/zh-TW.yml
  42. 87
      modules/reporting/config/locales/crowdin/zh.yml
  43. 0
      modules/team_planner/config/locales/crowdin/js-zh-TW.yml
  44. 0
      modules/team_planner/config/locales/crowdin/zh-TW.yml
  45. 175
      modules/two_factor_authentication/config/locales/crowdin/zh.yml
  46. 59
      modules/webhooks/config/locales/crowdin/zh.yml
  47. 13
      modules/xls_export/config/locales/crowdin/zh.yml
  48. 37
      script/crowdin/fix_locale_keys.rb
  49. 4
      spec/features/projects/projects_custom_fields_spec.rb
  50. 2
      spec/features/work_packages/display_fields/spent_time_display_spec.rb
  51. 2
      spec/support/pages/reminders/settings.rb

@ -42,6 +42,7 @@ jobs:
with:
ref: ${{ matrix.branch }}
fetch-depth: 1
- uses: ruby/setup-ruby@v1
- name: "Set crowdin branch name"
id: vars
env:
@ -67,6 +68,9 @@ jobs:
env:
OPENPROJECT_CROWDIN_PROJECT: ${{ secrets.OPENPROJECT_CROWDINV2_PROJECT }}
OPENPROJECT_CROWDIN_API_KEY: ${{ secrets.OPENPROJECT_CROWDINV2_API_KEY }}
- name: "Fixing translation names"
run: |
ruby script/crowdin/fix_locale_keys.rb
- name: "Commit translations"
run: |
git config user.name "OpenProject Actions CI"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -316,6 +316,10 @@ zh-TW:
other: '%{count} 個子工作項目'
bulk:
could_not_be_saved: "以下文檔無法被保存"
none_could_be_saved: "None of the %{total} work packages could be updated."
x_out_of_y_could_be_saved: "%{failing} out of the %{total} work packages could not be updated while %{success} could."
selected_because_descendants: "While %{selected} work packages where selected, in total %{total} work packages are affected which includes descendants."
descendant: "descendant of selected"
move:
no_common_statuses_exists: "被選取的工作項目沒有可用的狀態。他們的狀態不可以變更。"
unsupported_for_multiple_projects: '工作項目不支援從多個專案的大區塊的移動/複製'
@ -632,7 +636,7 @@ zh-TW:
mail_reminder_sent:
set_on_creation: '在創建通知時不能設置為 true'
reason:
no_notification_reason: 'cannot be blank as IAN is chosen as a channel.'
no_notification_reason: '當 IAN 被選為管道時不能為空'
reason_mail_digest:
no_notification_reason: '當郵件摘要被選為管道時不能為空'
notification_settings:
@ -736,6 +740,7 @@ zh-TW:
does_not_exist: "指定的類別不存在"
estimated_hours:
only_values_greater_or_equal_zeroes_allowed: "必須是 > = 0。"
readonly_status: 'The work package is in a readonly status so its attributes cannot be changed.'
type:
attributes:
attribute_groups:
@ -1263,7 +1268,7 @@ zh-TW:
general_csv_encoding: "UTF-8"
general_csv_separator: ","
general_first_day_of_week: "星期日"
general_lang_name: "繁體中文"
general_lang_name: "台灣正體"
general_pdf_encoding: "ISO-8859-1"
general_text_no: "否"
general_text_yes: "是"
@ -1870,19 +1875,19 @@ zh-TW:
label_workflow_summary: "大綱"
label_x_closed_work_packages_abbr:
one: "1 closed"
other: "%{count} closed"
other: "%{count} 個已結案"
zero: "0 個已關閉"
label_x_comments:
one: "1 comment"
other: "%{count} comments"
other: "%{count} 個評論"
zero: "沒有留言"
label_x_open_work_packages_abbr:
one: "1 open"
other: "%{count} open"
other: "%{count} 個未完成"
zero: "0 個已開啟"
label_x_projects:
one: "1 project"
other: "%{count} projects"
other: "%{count} 個專案"
zero: "沒有專案"
label_yesterday: "昨天"
label_role_type: "類型"
@ -1931,19 +1936,19 @@ zh-TW:
salutation: '嘿 %{user}'
work_packages:
created_at: 'Created at %{timestamp} by %{user} '
login_to_see_all: 'Log in to see all notifications.'
mentioned: 'You have been <b>mentioned in a comment</b>'
login_to_see_all: '登入以查看所有通知'
mentioned: '您已在<b>評論中被提醒</b>'
mentioned_by: '%{user} mentioned you in a comment'
more_to_see:
other: 'There are %{count} more work packages with notifications.'
other: "還有 1 個帶有通知的工作包\n\n還有 %{count} 個帶有通知的工作包"
reason:
watched: 'Watched'
assigned: 'Assigned'
watched: '監看'
assigned: '指派'
responsible: '可信賴的'
mentioned: 'Mentioned'
mentioned: '提醒'
subscribed: '所有'
prefix: 'Received because of the notification setting: %{reason}'
see_all: 'See all'
prefix: '因為通知設定而收到:%{reason}'
see_all: '全部顯示'
updated_at: 'Updated at %{timestamp} by %{user}'
mail_body_account_activation_request: "一個新的使用者 (%{value}) 已註冊。該帳號正等您核准:"
mail_body_account_information: "您的帳號資訊"

File diff suppressed because it is too large Load Diff

@ -1,15 +0,0 @@
#English strings go here
zh-TW:
js:
label_preview: '預覽'
button_update: '更新'
avatars:
label_choose_avatar: "選擇頭像"
uploading_avatar: "上傳您的頭像。"
text_upload_instructions: |
上傳您自己的 128 x 128 像素自定義頭像。 較大的文件將被調整大小和裁剪。
選擇了圖像後,在上傳之前將顯示您的頭像預覽。
error_image_too_large: "圖片太大。"
wrong_file_format: "允許的格式是jpg, png以及gif"
empty_file_error: "請上傳一個有效的圖片 (jpg, png, gif)"

@ -1,40 +0,0 @@
#English strings go here
zh-TW:
label_avatar: "頭像分身"
label_avatar_plural: "Avatars"
label_current_avatar: "目前頭像"
label_choose_avatar: "選擇頭像"
message_avatar_uploaded: "大頭照上傳成功。"
error_image_upload: "儲存頭像時發生錯誤"
error_image_size: "圖片太大。"
button_change_avatar: "變更個人資料相片"
are_you_sure_delete_avatar: "您確定要刪除您的頭像?"
avatar_deleted: "頭像刪除成功"
unable_to_delete_avatar: "頭像刪除失敗"
wrong_file_format: "允許的格式是jpg, png以及gif"
empty_file_error: "請上傳一個有效的圖片 (jpg, png, gif)"
avatars:
label_avatar: "頭像分身"
label_gravatar: 'Gravatar'
label_current_avatar: '當前頭像'
label_local_avatar: '自定義頭像'
text_current_avatar: |
以下圖像顯示當前圖像。
text_upload_instructions: |
上傳您自己的 128 x 128 像素自定義頭像。 較大的文件將被調整大小和裁剪。
選擇了圖像後,在上傳之前將顯示您的頭像預覽。
text_change_gravatar_html: '欲為您的郵件地址更改或添加Gravatar, 請轉到%{gravatar_url}。'
text_your_local_avatar: |
OpenProject 允許你上傳自己定義的頭像
text_local_avatar_over_gravatar: |
如果你有設定,這個自己定義的頭像將會優先用於gravatar上方。
text_your_current_gravatar: |
如果你註冊了一個gravatar圖像,OpenProject將使用你的圖像;如果沒有則會使用既有預設的圖像或圖標。
目前的gravatar圖像如下:
settings:
enable_gravatars: '啟用使用者的圖像'
gravatar_default: "預設 Gravatar 圖片"
enable_local_avatars: '啟用使用者的客製化分身'

@ -1,27 +0,0 @@
#-- copyright
#OpenProject is an open source project management software.
#Copyright (C) 2012-2021 the OpenProject GmbH
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License version 3.
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
#Copyright (C) 2006-2013 Jean-Philippe Lang
#Copyright (C) 2010-2013 the ChiliProject Team
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#See COPYRIGHT and LICENSE files for more details.
#++
zh-TW:
js:
work_packages:
properties:
storyPoints: "需求重要性"
remainingTime: "剩餘時數"

@ -111,7 +111,7 @@ zh-TW:
label_backlog: "待辦事項"
label_backlogs: "待辦事項"
label_backlogs_unconfigured: "您尚未設定待辦事項。請前往 '%{administration} -> %{plugins}' 然後在 %{configure} 連結上按一下。當你設定欄位後,再返回這個頁面使用這個工具。"
label_blocks_ids: "已被限制的工作項目 IDs"
label_blocks_ids: "被禁止的工作項目 IDs"
label_burndown: "完成"
label_column_in_backlog: "待辦事項的欄位"
label_hours: "小時"
@ -120,7 +120,7 @@ zh-TW:
label_not_prioritized: "尚未安排優先順序"
label_points: "點數"
label_points_burn_down: "減少"
label_points_burn_up: "向上"
label_points_burn_up: "增加"
label_product_backlog: "產品待辦事項"
label_select_all: "全選"
label_sprint_backlog: "進度待辦事項"
@ -134,7 +134,7 @@ zh-TW:
label_version_setting: "版本"
label_version: '版本'
label_webcal: "Webcal 串流"
label_wiki: "維基"
label_wiki: "Wiki"
permission_view_master_backlog: "檢視主待辦事項"
permission_view_taskboards: "檢視任務看板"
permission_select_done_statuses: "Select done statuses"

@ -1,161 +0,0 @@
#-- copyright
#OpenProject is an open source project management software.
#Copyright (C) 2012-2021 the OpenProject GmbH
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License version 3.
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
#Copyright (C) 2006-2013 Jean-Philippe Lang
#Copyright (C) 2010-2013 the ChiliProject Team
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#See COPYRIGHT and LICENSE files for more details.
#++
zh-TW:
activerecord:
attributes:
work_package:
position: "位置"
remaining_hours: "剩餘時數"
remaining_time: "剩餘時數"
story_points: "需求重要性"
backlogs_work_package_type: "待辦項目類型"
errors:
models:
work_package:
attributes:
blocks_ids:
can_only_contain_work_packages_of_current_sprint: "只可以在現在進度中包含工作項目的 IDs"
must_block_at_least_one_work_package: "必須包含至少一個項目的 ID"
parent_id:
parent_child_relationship_across_projects: "是不正確的,因為這個工作項目 '%{work_package_name}' 是一個待辦任務,它不可以擁有一個在目前的專案以外的上層項目"
type_must_be_one_of_the_following: "類型必須是以下其中一種: %{type_names}"
version_id:
task_version_must_be_the_same_as_story_version: "必須與\"父\"直屬故事的版本相同。"
sprint:
cannot_end_before_it_starts: "進度不可以在開始前結束"
backlogs:
add_new_story: "新增使用者需求"
any: "任何"
backlog_settings: "待辦事項設定"
burndown_graph: "未完成圖"
card_paper_size: "卡片印製大小"
chart_options: "圖表選項"
close: "關閉"
column_width: "欄位寬度"
date: "日"
definition_of_done: "完成的定義"
generating_chart: "產生圖表中"
hours: "小時"
impediment: "阻礙"
label_versions_default_fold_state: "顯示精簡版本"
work_package_is_closed: "工作項目已完成,當"
label_is_done_status: "狀態 %{status_name} 表示完成"
no_burndown_data: "沒有未完成的資料。起始和結束日期在進度中是必須的"
points: "點"
positions_could_not_be_rebuilt: "無法重建位置"
positions_rebuilt_successfully: "位置重建成功"
properties: "屬性"
rebuild: "重建"
rebuild_positions: "重建位置"
remaining_hours: "剩餘時數"
remaining_hours_ideal: "(理想) 剩餘時數"
show_burndown_chart: "未完成圖"
story: "使用者需求"
story_points: "需求重要性"
story_points_ideal: "(理想) 需求重要性"
task: "任務"
task_color: "任務顏色"
unassigned: "尚未指派"
x_more: "還有 %{count} 個 ..."
backlogs_active: "啟用"
backlogs_any: "任何"
backlogs_card_specification: "卡片印製的標籤類型"
backlogs_inactive: "專案顯示沒有活動"
backlogs_points_burn_direction: "重要性 增加/減少"
backlogs_product_backlog: "產品待辦事項"
backlogs_product_backlog_is_empty: "產品待辦事項是空的"
backlogs_product_backlog_unsized: "最上面的產品待辦事項含有未評估大小的需求"
backlogs_sizing_inconsistent: "使用者需求的大小會影響他們的預估時間"
backlogs_sprint_notes_missing: "關閉進度前不檢視筆記"
backlogs_sprint_unestimated: "用尚未預估的使用者需求關閉或開啟進度"
backlogs_sprint_unsized: "開啟或最近關閉進度的專案中有尚未訂定大小的使用者需求"
backlogs_sprints: "進度"
backlogs_story: "使用者需求"
backlogs_story_type: "需求類型"
backlogs_task: "任務"
backlogs_task_type: "任務類型"
backlogs_velocity_missing: "專案沒有進度完成速度可以計算"
backlogs_velocity_varies: "完成速度在不同進度中差異很大"
backlogs_wiki_template: "進度的 Wiki 頁面樣板"
backlogs_empty_title: "未定義要在積壓事項中使用的版本"
backlogs_empty_action_text: "要開始積壓事項, 請創建一個新版本並將其分配給積壓事項列。"
button_edit_wiki: "編輯 Wiki 頁面"
error_backlogs_task_cannot_be_story: "The settings are invalid. The selected task type can not also be a story type."
error_intro_plural: "發生以下的錯誤:"
error_intro_singular: "發生以下的錯誤:"
error_outro: "請在再次送出前更正前面的錯誤。"
event_sprint_description: "%{summary}: %{url}\n%{description}"
event_sprint_summary: "%{project}: %{summary}"
ideal: "理想"
inclusion: "沒有包含在這個清單"
label_back_to_project: "返回專案頁面"
label_backlog: "待辦事項"
label_backlogs: "待辦事項"
label_backlogs_unconfigured: "您尚未設定待辦事項。請前往 '%{administration} -> %{plugins}' 然後在 %{configure} 連結上按一下。當你設定欄位後,再返回這個頁面使用這個工具。"
label_blocks_ids: "被禁止的工作項目 IDs"
label_burndown: "完成"
label_column_in_backlog: "待辦事項的欄位"
label_hours: "小時"
label_work_package_hierarchy: "工作項目的結構"
label_master_backlog: "主待辦事項"
label_not_prioritized: "尚未安排優先順序"
label_points: "點數"
label_points_burn_down: "減少"
label_points_burn_up: "增加"
label_product_backlog: "產品待辦事項"
label_select_all: "全選"
label_sprint_backlog: "進度待辦事項"
label_sprint_cards: "匯出卡片"
label_sprint_impediments: "進度阻礙"
label_sprint_name: "進度 '%{name}'"
label_sprint_velocity: "根據平均 %{days} 天的進度 %{sprints} ,完成速度約 %{velocity}"
label_stories: "使用者需求"
label_stories_tasks: "需求/任務"
label_task_board: "任務看板"
label_version_setting: "版本"
label_version: '版本'
label_webcal: "Webcal 串流"
label_wiki: "Wiki"
permission_view_master_backlog: "檢視主待辦事項"
permission_view_taskboards: "檢視任務看板"
permission_select_done_statuses: "Select done statuses"
permission_update_sprints: "更新進度"
points_accepted: "點數已被接受"
points_committed: "點數已確認"
points_resolved: "點數已完成"
points_to_accept: "點數不被接受"
points_to_resolve: "點數尚未完成"
project_module_backlogs: "待辦事項"
rb_label_copy_tasks: "複製工作項目"
rb_label_copy_tasks_all: "全部"
rb_label_copy_tasks_none: "無"
rb_label_copy_tasks_open: "開啟"
rb_label_link_to_original: "包含連結到原本的使用者需求"
remaining_hours: "剩餘時數"
required_burn_rate_hours: "必須的完成率 (小時)"
required_burn_rate_points: "必須的完成率 (點數)"
todo_work_package_description: "%{summary}: %{url}\n%{description}"
todo_work_package_summary: "%{type}: %{summary}"
version_settings_display_label: "待辦事項的欄位"
version_settings_display_option_left: "左"
version_settings_display_option_none: "無"
version_settings_display_option_right: "右"

@ -1,29 +0,0 @@
#English strings go here
zh-TW:
js:
bcf:
label_bcf: 'BCF'
import: '匯入'
import_bcf_xml_file: 'Import BCF XML file (BCF version 2.1)'
export: '匯出'
export_bcf_xml_file: 'Export BCF XML file (BCF version 2.1)'
viewpoint: 'Viewpoint'
add_viewpoint: 'Add viewpoint'
show_viewpoint: 'Show viewpoint'
delete_viewpoint: 'Delete viewpoint'
management: 'BCF management'
refresh: 'Refresh'
refresh_work_package: 'Refresh work package'
ifc_models:
empty_warning: "This project does not yet have any IFC models."
use_this_link_to_manage: "Use this link to upload and manage your IFC models"
keyboard_input_disabled: "Viewer does not have keyboard controls. Click on the viewer to give keyboard control to the viewer."
models:
ifc_models: 'IFC models'
views:
viewer: 'Viewer'
split: 'Viewer and table'
split_cards: 'Viewer and cards'
revit:
revit_add_in: "Revit Add-In"
revit_add_in_settings: "Revit Add-In settings"

@ -1,134 +0,0 @@
#English strings go here for Rails i18n
zh-TW:
bim:
label_bim: 'BIM'
bcf:
label_bcf: 'BCF'
label_imported_failed: 'Failed imports of BCF topics'
label_imported_successfully: ' '
issues: "Issues"
recommended: 'recommended'
not_recommended: 'not recommended'
no_viewpoints: 'No viewpoints'
new_badge: "新增"
exceptions:
file_invalid: "BCF file invalid"
x_bcf_issues:
zero: 'No BCF issues'
one: 'One BCF issue'
other: '%{count} BCF issues'
bcf_xml:
xml_file: 'BCF XML File'
import_title: '匯入'
export: '匯出'
import_update_comment: '(Updated in BCF import)'
import_failed: '無法匯入 BCF 檔案:%{error}'
import_failed_unsupported_bcf_version: 'Failed to read the BCF file: The BCF version is not supported. Please ensure the version is at least %{minimal_version} or higher.'
import_successful: 'Imported %{count} BCF issues'
import_canceled: 'BCF-XML 匯入已取消。'
type_not_active: "The issue type is not activated for this project."
import:
num_issues_found: '%{x_bcf_issues} are contained in the BCF-XML file, their details are listed below.'
button_prepare: '準備匯入'
button_perform_import: '確認匯入'
button_proceed: 'Proceed with import'
button_back_to_list: '回到列表'
no_permission_to_add_members: 'You do not have sufficient permissions to add them as members to the project.'
contact_project_admin: 'Contact your project admin to add them as members and start this import again.'
continue_anyways: '你確定要繼續並完成匯入嗎?'
description: "Provide a BCF-XML v2.1 file to import into this project. You can examine its contents before performing the import."
invalid_types_found: 'Invalid topic type names found'
invalid_statuses_found: 'Invalid status names found'
invalid_priorities_found: 'Invalid priority names found'
invalid_emails_found: 'Invalid email addresses found'
unknown_emails_found: 'Unknown email addresses found'
unknown_property: 'Unknown property'
non_members_found: 'Non project members found'
import_types_as: 'Set all these types to'
import_statuses_as: 'Set all these statuses to'
import_priorities_as: 'Set all these priorities to'
invite_as_members_with_role: 'Invite them as members to the project "%{project}" with role'
add_as_members_with_role: 'Add them as members to the project "%{project}" with role'
no_type_provided: 'No type provided'
no_status_provided: 'No status provided'
no_priority_provided: 'No priority provided'
perform_description: "Do you want to import or update the issues listed above?"
replace_with_system_user: 'Replace them with "System" user'
import_as_system_user: 'Import them as "System" user.'
what_to_do: "您想要做什麼?"
work_package_has_newer_changes: "Outdated! This topic was not updated as the latest changes on the server were newer than the \"ModifiedDate\" of the imported topic. However, comments to the topic were imported."
bcf_file_not_found: "Failed to locate BCF file. Please start the upload process again."
export:
format:
bcf: "BCF-XML"
attributes:
bcf_thumbnail: "BCF 快照"
project_module_bcf: "BCF"
project_module_bim: "BCF"
permission_view_linked_issues: "View BCF issues"
permission_manage_bcf: "Import and manage BCF issues"
permission_delete_bcf: "Delete BCF issues"
oauth:
scopes:
bcf_v2_1: "Full access to the BCF v2.1 API"
bcf_v2_1_text: "Application will receive full read & write access to the OpenProject BCF API v2.1 to perform actions on your behalf."
activerecord:
models:
bim/ifc_models/ifc_model: "IFC model"
attributes:
bim/ifc_models/ifc_model:
ifc_attachment: "IFC file"
is_default: "Default model"
attachments: "IFC file"
errors:
models:
bim/ifc_models/ifc_model:
attributes:
base:
ifc_attachment_missing: "No ifc file attached."
invalid_ifc_file: "The provided file is not a valid IFC file."
bim/bcf/viewpoint:
bitmaps_not_writable: "bitmaps is not writable as it is not yet implemented."
index_not_integer: "index is not an integer."
invalid_clipping_planes: "clipping_planes is invalid."
invalid_components: "components is invalid."
invalid_lines: "lines is invalid."
invalid_orthogonal_camera: "orthogonal_camera is invalid."
invalid_perspective_camera: "perspective_camera is invalid."
mismatching_guid: "The guid in the json_viewpoint does not match the model's guid."
no_json: "Is not a well structured json."
snapshot_type_unsupported: "snapshot_type needs to be either 'png' or 'jpg'."
snapshot_data_blank: "snapshot_data needs to be provided."
unsupported_key: "An unsupported json property is included."
bim/bcf/issue:
uuid_already_taken: "Can't import this BCF issue as there already is another with the same GUID. Could it be that this BCF issue had already been imported into a different project?"
ifc_models:
label_ifc_models: 'IFC models'
label_new_ifc_model: 'New IFC model'
label_show_defaults: 'Show defaults'
label_default_ifc_models: 'Default IFC models'
label_edit_defaults: 'Edit defaults'
no_defaults_warning:
title: 'No IFC model was set as default for this project.'
check_1: 'Check that you have uploaded at least one IFC model.'
check_2: 'Check that at least one IFC model is set to "Default".'
no_results: "No IFC models have been uploaded in this project."
conversion_status:
label: 'Processing?'
pending: 'Pending'
processing: 'Processing'
completed: 'Completed'
error: '錯誤'
processing_notice:
processing_default: 'The following default IFC models are still being processed and are thus not available, yet:'
flash_messages:
upload_successful: 'Upload succeeded. It will now get processed and will be ready to use in a couple of minutes.'
conversion:
missing_commands: "The following IFC converter commands are missing on this system: %{names}"
project_module_ifc_models: "IFC models"
permission_view_ifc_models: "View IFC models"
permission_manage_ifc_models: "Import and manage IFC models"
extraction:
available:
ifc_convert: "IFC conversion pipeline available"

@ -1,87 +0,0 @@
#English strings go here
zh-TW:
js:
boards:
label_unnamed_board: 'Unnamed board'
label_unnamed_list: 'Unnamed list'
label_board_type: 'Board type'
upsale:
teaser_text: 'Improve your agile project management with this flexible Boards view. Create as many boards as you like for anything you would like to keep track of.'
upgrade_to_ee_text: 'Boards is an Enterprise feature. Please upgrade to a paid plan.'
upgrade: 'Upgrade now'
personal_demo: 'Contact us for a demo'
lists:
delete: 'Delete list'
version:
is_locked: 'Version is locked. No items can be added to this version.'
is_closed: 'Version is closed. No items can be added to this version.'
close_version: 'Close version'
open_version: 'Open version'
lock_version: 'Lock version'
unlock_version: 'Unlock version'
edit_version: 'Edit version'
show_version: 'Show version'
locked: '鎖定'
closed: '已關閉'
new_board: 'New board'
add_list: 'Add list to board'
add_card: 'Add card'
error_attribute_not_writable: "Cannot move the work package, %{attribute} is not writable."
error_loading_the_list: "Error loading the list: %{error_message}"
error_permission_missing: "The permission to create public queries is missing"
error_cannot_move_into_self: "You can not move a work package into its own column."
text_hidden_list_warning: "Not all lists are displayed because you lack the permission. Contact your admin for more information."
click_to_remove_list: "Click to remove this list"
board_type:
text: 'Board type'
free: 'basic'
select_board_type: 'Please choose the type of board you need.'
free_text: >
Start from scratch with a blank board. Manually add cards and columns to this board.
action: 'Action board'
action_by_attribute: 'Action board (%{attribute})'
action_text: >
A board with filtered lists on %{attribute} attribute. Moving work packages to other lists will update their attribute.
action_text_subprojects: >
Board with automated columns for subprojects. Dragging work packages to other lists updates the (sub-)project accordingly.
action_text_subtasks: >
Board with automated columns for sub-elements. Dragging work packages to other lists updates the parent accordingly.
action_text_status: >
Basic kanban style board with columns for status such as To Do, In Progress, Done.
action_text_assignee: >
Board with automated columns based on assigned users. Ideal for dispatching work packages.
action_text_version: >
Board with automated columns based on the version attribute. Ideal for planning product development.
action_type:
assignee: assignee
status: status
version: version
subproject: subproject
subtasks: parent-child
board_type_title:
assignee: 負責執行者
status: 狀態
version: 版本
subproject: 子專案
subtasks: Parent-Child
basic: Basic
select_attribute: "Action attribute"
add_list_modal:
labels:
assignee: Select user to add as a new assignee list
status: Select status to add as a new list
version: Select version to add as a new list
subproject: Select subproject to add as a new list
subtasks: Select work package to add as a new list
warning:
status: |
There is currently no status available. <br>
Either there are none or they have all already been added to the board.
assignee: There isn't any member matched with your filter value. <br>
no_member: This project currently does not have any members that can be added. <br>
add_members: <a href="%{link}">Add a new member to this project</a> to select users again.
configuration_modal:
title: 'Configure this board'
display_settings:
card_mode: "Display as cards"
table_mode: "Display as table"

@ -1,8 +0,0 @@
#English strings go here
zh-TW:
permission_show_board_views: "View boards"
permission_manage_board_views: "Manage boards"
project_module_board_view: "看板"
boards:
label_board: "面板"
label_boards: "看板"

@ -1,26 +0,0 @@
#-- copyright
#OpenProject is an open source project management software.
#Copyright (C) 2012-2021 the OpenProject GmbH
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License version 3.
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
#Copyright (C) 2006-2013 Jean-Philippe Lang
#Copyright (C) 2010-2013 the ChiliProject Team
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#See COPYRIGHT and LICENSE files for more details.
#++
zh-TW:
js:
work_packages:
properties:
costObject: "Budget"

@ -1,73 +0,0 @@
#-- copyright
#OpenProject is an open source project management software.
#Copyright (C) 2012-2021 the OpenProject GmbH
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License version 3.
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
#Copyright (C) 2006-2013 Jean-Philippe Lang
#Copyright (C) 2010-2013 the ChiliProject Team
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#See COPYRIGHT and LICENSE files for more details.
#++
zh-TW:
activerecord:
attributes:
budget:
author: "作者"
available: "Available"
budget: "Planned"
budget_ratio: "Spent (ratio)"
description: "說明"
spent: "花費"
status: "狀態"
subject: "主題"
type: "Cost type"
labor_budget: "Planned labor costs"
material_budget: "Planned unit costs"
work_package:
budget_subject: "Budget title"
models:
budget: "Budget"
material_budget_item: "Unit"
attributes:
budget: "Budget"
button_add_budget_item: "Add planned costs"
button_add_budget: "新增預算"
button_add_cost_type: "Add cost type"
button_cancel_edit_budget: "取消編輯預算"
button_cancel_edit_costs: "取消編輯花費"
caption_labor: "Labor"
caption_labor_costs: "Actual labor costs"
caption_material_costs: "Actual unit costs"
budgets_title: "預算"
events:
budget: "Budget edited"
help_click_to_edit: "點擊這裡編輯"
help_currency_format: "Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit."
help_override_rate: "Enter a value here to override the default rate."
label_budget: "Budget"
label_budget_new: "新增預算"
label_budget_plural: "預算"
label_budget_id: "預算 #%{id}"
label_deliverable: "Budget"
label_example_placeholder: 'e.g., %{decimal}'
label_view_all_budgets: "View all budgets"
label_yes: "是"
notice_budget_conflict: "WorkPackages must be of the same project."
notice_no_budgets_available: "No budgets available."
permission_edit_budgets: "Edit budgets"
permission_view_budgets: "檢視預算"
project_module_budgets: "預算"
text_budget_reassign_to: "Reassign them to this budget:"
text_budget_delete: "Delete the budget from all work packages"
text_budget_destroy_assigned_wp: "There are %{count} work packages assigned to this budget. What do you want to do?"

@ -1,32 +0,0 @@
#-- copyright
#OpenProject is an open source project management software.
#Copyright (C) 2012-2021 the OpenProject GmbH
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License version 3.
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
#Copyright (C) 2006-2013 Jean-Philippe Lang
#Copyright (C) 2010-2013 the ChiliProject Team
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#See COPYRIGHT and LICENSE files for more details.
#++
zh-TW:
js:
work_packages:
property_groups:
costs: "Costs"
properties:
overallCosts: "Overall costs"
spentUnits: "Spent units"
button_log_costs: "Log unit costs"
label_hour: "小時"
label_hours: "小時"

@ -1,141 +0,0 @@
#-- copyright
#OpenProject is an open source project management software.
#Copyright (C) 2012-2021 the OpenProject GmbH
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License version 3.
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
#Copyright (C) 2006-2013 Jean-Philippe Lang
#Copyright (C) 2010-2013 the ChiliProject Team
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#See COPYRIGHT and LICENSE files for more details.
#++
zh-TW:
activerecord:
attributes:
cost_entry:
work_package: "工作項目"
overridden_costs: "覆蓋成本"
spent: "花費"
spent_on: "日期"
cost_type:
unit: "Unit name"
unit_plural: "Pluralized unit name"
work_package:
costs_by_type: "Spent units"
labor_costs: "Labor costs"
material_costs: "Unit costs"
overall_costs: "Overall costs"
spent_costs: "Spent costs"
spent_units: "Spent units"
rate:
rate: "Rate"
user:
default_rates: "Default rates"
models:
cost_type:
other: "Cost types"
rate: "Rate"
errors:
models:
work_package:
is_not_a_valid_target_for_cost_entries: "Work package #%{id} is not a valid target for reassigning the cost entries."
nullify_is_not_valid_for_cost_entries: "Cost entries can not be assigned to a project."
attributes:
comment: "評論"
cost_type: "Cost type"
costs: "Costs"
current_rate: "Current rate"
hours: "小時"
units: "單位"
valid_from: "Valid from"
fixed_date: "Fixed date"
button_add_rate: "Add rate"
button_log_costs: "Log unit costs"
caption_booked_on_project: "Booked on project"
caption_default: "預設"
caption_default_rate_history_for: "Default rate history for %{user}"
caption_locked_on: "Locked on"
caption_materials: "單位"
caption_rate_history: "Rate history"
caption_rate_history_for: "Rate history for %{user}"
caption_rate_history_for_project: "Rate history for %{user} in project %{project}"
caption_save_rate: "Save rate"
caption_set_rate: "Set current rate"
caption_show_locked: "Show locked types"
description_date_for_new_rate: "Date for new rate"
group_by_others: "not in any group"
label_between: "介於"
label_cost_filter_add: "Add cost entry filter"
label_costlog: "Logged unit costs"
label_cost_plural: "Costs"
label_cost_type_plural: "Cost types"
label_cost_type_specific: "Cost type #%{id}: %{name}"
label_costs_per_page: "Costs per page"
label_currency: "貨幣"
label_currency_format: "Format of currency"
label_current_default_rate: "Current default rate"
label_date_on: "開啟"
label_deleted_cost_types: "Deleted cost types"
label_locked_cost_types: "鎖定成本類型"
label_display_cost_entries: "Display unit costs"
label_display_time_entries: "Display reported hours"
label_display_types: "Display types"
label_edit: "編輯"
label_generic_user: "一般使用者"
label_greater_or_equal: ">="
label_group_by: "分組依據"
label_group_by_add: "Add grouping field"
label_hourly_rate: "Hourly rate"
label_include_deleted: "包含已刪除的"
label_work_package_filter_add: "新增工作項目篩選器"
label_kind: "類型"
label_less_or_equal: "<="
label_log_costs: "Log unit costs"
label_no: "否"
label_option_plural: "選項"
label_overall_costs: "Overall costs"
label_rate: "Rate"
label_rate_plural: "Rates"
label_status_finished: "Finished"
label_units: "Cost units"
label_user: "使用者"
label_until: "until"
label_valid_from: "Valid from"
label_yes: "是"
notice_something_wrong: "Something went wrong. Please try again."
notice_successful_restore: "Successful restore."
notice_successful_lock: "鎖定成功。"
notice_cost_logged_successfully: 'Unit cost logged successfully.'
permission_edit_cost_entries: "Edit booked unit costs"
permission_edit_own_cost_entries: "Edit own booked unit costs"
permission_edit_hourly_rates: "Edit hourly rates"
permission_edit_own_hourly_rate: "Edit own hourly rates"
permission_edit_rates: "Edit rates"
permission_log_costs: "Book unit costs"
permission_log_own_costs: "Book unit costs for oneself"
permission_view_cost_entries: "View booked costs"
permission_view_cost_rates: "View cost rates"
permission_view_hourly_rates: "View all hourly rates"
permission_view_own_cost_entries: "View own booked costs"
permission_view_own_hourly_rate: "View own hourly rate"
permission_view_own_time_entries: "View own spent time"
project_module_costs: "時程與成本"
text_assign_time_and_cost_entries_to_project: "Assign reported hours and costs to the project"
text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?"
text_destroy_time_and_cost_entries: "Delete reported hours and costs"
text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?"
text_reassign_time_and_cost_entries: "Reassign reported hours and costs to this work package:"
text_warning_hidden_elements: "Some entries may have been excluded from the aggregation."
week: "週"
js:
text_are_you_sure: "是否確定?"

@ -1,4 +0,0 @@
zh-TW:
js:
dashboards:
label: 'Dashboard'

@ -1,4 +0,0 @@
zh-TW:
dashboards:
label: 'Dashboards'
project_module_dashboards: 'Dashboards'

@ -29,7 +29,7 @@ zh-TW:
enumeration:
document_category:
documentation: 說明文件
specification: 規格
specification: 技術規格
other: 其他
documents:
label_attachment_author: "附件作者"

@ -1,42 +0,0 @@
#-- copyright
#OpenProject is an open source project management software.
#Copyright (C) 2012-2021 the OpenProject GmbH
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License version 3.
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
#Copyright (C) 2006-2013 Jean-Philippe Lang
#Copyright (C) 2010-2013 the ChiliProject Team
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#See COPYRIGHT and LICENSE files for more details.
#++
zh-TW:
activerecord:
models:
document: "文件"
default_doc_category_tech: "技術文件"
default_doc_category_user: "使用者文件"
enumeration_doc_categories: "文件類別"
enumeration:
document_category:
documentation: 說明文件
specification: 技術規格
other: 其他
documents:
label_attachment_author: "附件作者"
label_document_added: "文件已新增"
label_document_new: "建立新文件"
label_document_plural: "文件"
label_documents: "文件"
permission_manage_documents: "管理文件"
permission_view_documents: "檢視文件"
project_module_documents: "文件"

@ -1,41 +0,0 @@
#-- copyright
#OpenProject is an open source project management software.
#Copyright (C) 2012-2021 the OpenProject GmbH
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License version 3.
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
#Copyright (C) 2006-2013 Jean-Philippe Lang
#Copyright (C) 2010-2013 the ChiliProject Team
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#See COPYRIGHT and LICENSE files for more details.
#++
zh-TW:
js:
github_integration:
work_packages:
tab_name: "GitHub"
tab_header:
title: "Pull requests"
copy_menu:
label: Git snippets
description: Copy git snippets to clipboard
git_actions:
branch_name: Branch name
commit_message: Commit message
cmd: Create branch with empty commit
title: Quick snippets for Git
copy_success: '✅ Copied!'
copy_error: '❌ Copy failed!'
tab_prs:
empty: 'There are no pull requests linked yet. Link an existing PR by using the code <code>OP#%{wp_id}</code> in the PR description or create a new PR.'
github_actions: 操作

@ -1,35 +0,0 @@
#-- copyright
#OpenProject is an open source project management software.
#Copyright (C) 2012-2021 the OpenProject GmbH
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License version 3.
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
#Copyright (C) 2006-2013 Jean-Philippe Lang
#Copyright (C) 2010-2013 the ChiliProject Team
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#See COPYRIGHT and LICENSE files for more details.
#++
zh-TW:
project_module_github: "GitHub"
permission_show_github_content: "Show GitHub content"
github_integration:
pull_request_opened_comment: >
**PR Opened:** Pull request %{pr_number} [%{pr_title}](%{pr_url}) for [%{repository}](%{repository_url}) has been opened by [%{github_user}](%{github_user_url}).
pull_request_closed_comment: >
**PR Closed:** Pull request %{pr_number} [%{pr_title}](%{pr_url}) for [%{repository}](%{repository_url}) has been closed by [%{github_user}](%{github_user_url}).
pull_request_merged_comment: >
**PR Merged:** Pull request %{pr_number} [%{pr_title}](%{pr_url}) for [%{repository}](%{repository_url}) has been merged by [%{github_user}](%{github_user_url}).
pull_request_referenced_comment: >
**Referenced in PR:** [%{github_user}](%{github_user_url}) referenced this work package in Pull request %{pr_number} [%{pr_title}](%{pr_url}) on [%{repository}](%{repository_url}).
pull_request_ready_for_review_comment: >
**PR Ready for Review:** Pull request %{pr_number} [%{pr_title}](%{pr_url}) for [%{repository}](%{repository_url}) was marked as ready for review by [%{github_user}](%{github_user_url}).

@ -2,7 +2,7 @@ zh-TW:
js:
grid:
add_widget: 'Add widget'
remove: 'Remove widget'
remove: '移除元件'
configure: '設定小工具'
upsale:
text: "Some widgets, like the work package graph widget, are only available in the "
@ -16,7 +16,7 @@ zh-TW:
members:
title: '成員'
no_results: 'No visible members.'
view_all_members: '查看所有成員'
view_all_members: '查看所有成員'
add: '成員'
too_many: 'Displaying %{count} of %{total} members.'
news:

@ -1,63 +0,0 @@
zh-TW:
js:
grid:
add_widget: 'Add widget'
remove: '移除元件'
configure: '設定小工具'
upsale:
text: "Some widgets, like the work package graph widget, are only available in the "
link: 'enterprise edition.'
widgets:
custom_text:
title: '自訂文字'
documents:
title: '文件'
no_results: 'No documents yet.'
members:
title: '成員'
no_results: 'No visible members.'
view_all_members: '查看所有的成員'
add: '成員'
too_many: 'Displaying %{count} of %{total} members.'
news:
title: '新知'
at: 'at'
no_results: '沒有新的消息可以報告'
project_description:
title: '專案描述'
no_results: "No description has been written yet. One can be provided in the 'Project settings'."
project_details:
title: '專案詳細資訊'
no_results: 'No custom fields have been defined for projects.'
project_status:
title: '專案狀態'
on_track: '進度良好'
off_track: '進度脫軌'
at_risk: '存在風險'
not_set: 'Not set'
subprojects:
title: '子專案'
no_results: 'No subprojects.'
time_entries_current_user:
title: 'My spent time'
displayed_days: '小工具顯示天數'
time_entries_list:
title: 'Spent time (last 7 days)'
no_results: 'No time entries for the last 7 days.'
work_packages_accountable:
title: "我負責的工作項目"
work_packages_assigned:
title: '分配給我的工作項目'
work_packages_created:
title: 'Work packages created by me'
work_packages_watched:
title: 'Work packages watched by me'
work_packages_table:
title: 'Work packages table'
work_packages_graph:
title: 'Work packages graph'
work_packages_calendar:
title: '行事曆'
work_packages_overview:
title: 'Work packages overview'
placeholder: 'Click to edit ...'

@ -1,16 +0,0 @@
zh-TW:
grids:
label_widget_in_grid: "Widget contained in Grid %{grid_name}"
activerecord:
attributes:
grids/grid:
page: "頁面"
row_count: "列數"
column_count: "欄數:"
widgets: "小工具"
errors:
models:
grids/grid:
overlaps: '重疊'
outside: 'is outside of the grid.'
end_before_start: '結束值必須大於開始值。'

@ -1,17 +0,0 @@
zh-TW:
js:
job_status:
download_starts: 'The download should start automatically.'
click_to_download: 'Or click here to download.'
title: 'Background job status'
redirect: 'You are being redirected.'
redirect_link: 'Please click here to continue.'
redirect_errors: 'Due to these errors, you will not be redirected automatically.'
errors: 'Some errors have occurred'
generic_messages:
not_found: 'This job could not be found.'
in_queue: 'The job has been queued and will be processed shortly.'
in_process: 'The job is currently being processed.'
error: 'The job has failed to complete.'
cancelled: 'The job has been cancelled due to an error.'
success: 'The job completed successfully.'

@ -1,70 +0,0 @@
zh-TW:
activerecord:
attributes:
ldap_groups/synchronized_group:
dn: '獨特名'
auth_source: 'LDAP 連線'
sync_users: 'Sync users'
ldap_groups/synchronized_filter:
filter_string: '簡約登入目錄制約(LDAP)篩選'
auth_source: 'LDAP 連線'
group_name_attribute: "群組名字屬性"
sync_users: 'Sync users'
base_dn: "Search base DN"
models:
ldap_groups/synchronized_group: 'Synchronized LDAP group'
ldap_groups/synchronized_filter: 'LDAP群組同步篩選'
errors:
models:
ldap_groups/synchronized_filter:
must_contain_base_dn: "Filter base DN must be contained within the LDAP connection's base DN"
ldap_groups:
label_menu_item: 'LDAP group synchronization'
label_group_key: 'LDAP group filter key'
label_synchronize: '同步'
settings:
name_attribute: 'LDAP群組名屬性'
name_attribute_text: '以篩選來創建OpenProject群組的LDAP命名屬性'
synchronized_filters:
add_new: '新增同步LDAP篩選'
singular: 'LDAP群組同步篩選'
plural: 'LDAP群組同步篩選'
label_n_groups_found:
one: "1 group found by the filter"
other: "%{count} groups found by the filter"
zero: "No groups were found by the filter"
destroy:
title: '移除同步篩選 %{name}'
confirmation: "如果繼續,本同步篩選 %{name} 和藉此創建的群組 %{groups_count} 將會刪除"
removed_groups: "警告: 將從OpenProject和專案中移除以下群組"
verification: "輸入篩選名稱 %{name} 以確定刪除"
form:
group_name_attribute_text: '輸入用於設定OpenProject群組名的LDAP群組屬性'
filter_string_text: 'Enter the RFC4515 LDAP filter that returns groups in your LDAP to synchronize with OpenProject.'
base_dn_text: >
Enter the search base DN to use for this filter. It needs to be below the base DN of the selected LDAP connection.
Leave this option empty to reuse the base DN of the connection
synchronized_groups:
add_new: 'Add synchronized LDAP group'
destroy:
title: 'Remove synchronized group %{name}'
confirmation: "If you continue, the synchronized group %{name} and all %{users_count} users synchronized through it will be removed."
info: "Note: The OpenProject group itself and members added outside this LDAP synchronization will not be removed."
verification: "Enter the group's name %{name} to verify the deletion."
help_text_html: |
This module allows you to set up a synchronization between LDAP and OpenProject groups.
It depends on LDAP groups need to use the <em>groupOfNames / memberOf</em> attribute set to be working with OpenProject.
<br/>
Groups are synchronized hourly through a cron job.
<a href="https://www.openproject.org/help/administration/manage-ldap-authentication/">Please see our documentation on this topic</a>.
no_results: '找不到同步的群組。'
no_members: '這個群組還沒有同步的成員。'
plural: 'Synchronized LDAP groups'
singular: 'Synchronized LDAP group'
form:
auth_source_text: 'Select which LDAP connection should be used.'
sync_users_text: >
If you enable this option, found users will also be automatically created in OpenProject. Without it, only existing accounts in OpenProject will be added to groups.
dn_text: 'Enter the full DN of the group in LDAP'
group_text: 'Select an existing OpenProject group that members of the LDAP group shall be synchronized with'

@ -25,7 +25,7 @@ zh-TW:
attributes:
meeting:
location: "地點"
duration: "時間長度"
duration: "會議長度"
participants: "參加人員"
participants_attended: "出席人員"
participants_invited: "受邀人員"
@ -53,8 +53,8 @@ zh-TW:
label_meeting_edit: "編輯會議"
label_meeting_agenda: "會議大綱"
label_meeting_minutes: "會議記錄"
label_meeting_close: "關閉"
label_meeting_open: "開"
label_meeting_close: "結束"
label_meeting_open: "開"
label_meeting_agenda_close: "定案會議大綱以便開始會議記錄"
label_meeting_date_time: "日期 / 時間"
label_meeting_diff: "比較"
@ -62,7 +62,7 @@ zh-TW:
label_icalendar: "發送 iCalendar"
label_version: "版本"
label_time_zone: "時區"
label_start_date: "始日期"
label_start_date: "始日期"
meeting:
copied: "Copied from Meeting #%{id}"
notice_successful_notification: "通知傳送成功"

@ -1,90 +0,0 @@
#-- copyright
#OpenProject is an open source project management software.
#Copyright (C) 2012-2021 the OpenProject GmbH
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License version 3.
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
#Copyright (C) 2006-2013 Jean-Philippe Lang
#Copyright (C) 2010-2013 the ChiliProject Team
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#See COPYRIGHT and LICENSE files for more details.
#++
#English strings go here for Rails i18n
zh-TW:
activerecord:
attributes:
meeting:
location: "地點"
duration: "會議長度"
participants: "參加人員"
participants_attended: "出席人員"
participants_invited: "受邀人員"
start_time: "時間"
start_time_hour: "開始時間"
errors:
messages:
invalid_time_format: "不是有效時間。所需格式: HH:MM"
models:
meeting_agenda: "會議大綱"
meeting_minutes: "會議記錄"
description_attended: "出席人員"
description_invite: "已邀請"
events:
meeting: 會議已編輯
meeting_agenda: 會議大綱已編輯
meeting_agenda_closed: 會議大綱已定案
meeting_agenda_opened: 會議大綱開啟
meeting_minutes: 會議記錄已編輯
meeting_minutes_created: 會議記錄已建立
error_notification_with_errors: "傳送通知失敗。以下的收件者將不會被通知到: %{recipients}"
label_meeting: "會議"
label_meeting_plural: "會議"
label_meeting_new: "新增會議"
label_meeting_edit: "編輯會議"
label_meeting_agenda: "會議大綱"
label_meeting_minutes: "會議記錄"
label_meeting_close: "結束"
label_meeting_open: "開始"
label_meeting_agenda_close: "定案會議大綱以便開始會議記錄"
label_meeting_date_time: "日期 / 時間"
label_meeting_diff: "比較"
label_notify: "送出審閱"
label_icalendar: "發送 iCalendar"
label_version: "版本"
label_time_zone: "時區"
label_start_date: "開始日期"
meeting:
copied: "Copied from Meeting #%{id}"
notice_successful_notification: "通知傳送成功"
notice_timezone_missing: 沒有設定時區,預設時區為 %{zone} 。請按這裡選擇您的時區。
permission_create_meetings: "建立會議"
permission_edit_meetings: "編輯會議"
permission_delete_meetings: "刪除會議"
permission_view_meetings: "檢視會議"
permission_create_meeting_agendas: "管理會議"
permission_close_meeting_agendas: "定案會議大綱"
permission_send_meeting_agendas_notification: "傳送會議大綱審閱通知"
permission_create_meeting_minutes: "管理會議記錄"
permission_send_meeting_minutes_notification: "傳送會議記錄審閱通知"
permission_meetings_send_invite: "邀請使用者加入會議"
permission_send_meeting_agendas_icalendar: "Send meeting agenda as calendar entry"
project_module_meetings: "會議"
text_duration_in_hours: "持續時間 (小時)"
text_in_hours: "在一小時內"
text_meeting_agenda_for_meeting: '%{meeting} 的會議大綱'
text_meeting_closing_are_you_sure: "確實要關閉會議嗎?"
text_meeting_agenda_open_are_you_sure: "This will overwrite all changes in the minutes! Do you want to continue?"
text_meeting_minutes_for_meeting: '%{meeting} 的會議記錄'
text_review_meeting_agenda: "%{author} 已經放上 %{link} 來審閱"
text_review_meeting_minutes: "%{author} 已經放上 %{link} 來審閱"
text_notificiation_invited: "此郵件包含以下會議的 ics 條目:"

@ -1,4 +0,0 @@
zh-TW:
js:
my_page:
label: "我的首頁"

@ -1,19 +0,0 @@
zh-TW:
logout_warning: >
你已被登出,你嘗試送出的內容可能都會遺失。請登入。
activemodel:
attributes:
openid_connect/provider:
name: 名稱
display_name: 顯示名稱
identifier: 識別碼
secret: 金鑰
scope: 範圍
openid_connect:
menu_title: OpenID 提供者
providers:
label_add_new: 新增 OpenID 提供者
label_edit: 編輯 OpenID 提供者:%{name}
no_results_table: 尚未定義任何提供者。
plural: OpenID 提供者
singular: OpenID 提供者

@ -1,4 +0,0 @@
zh-TW:
js:
overviews:
label: '概要'

@ -1,4 +0,0 @@
zh-TW:
overviews:
label: '概要'
permission_manage_overview: 'Manage overview page'

@ -27,7 +27,7 @@ zh-TW:
label_export_card_configuration_new: "新匯出卡設定"
label_export_card_configuration: "匯出卡設定"
label_export_card_configuration_plural: "匯出卡設定"
label_export_card_activate: "啟"
label_export_card_activate: "啟"
label_export_card_deactivate: "關閉"
notice_export_card_configuration_activated: "設定成功啟動"
notice_export_card_configuration_deactivated: "設定成功關閉"
@ -41,7 +41,7 @@ zh-TW:
export_config_per_page: "每頁"
export_config_page_size: "頁面大小"
export_config_orientation: "頁面方向"
export_config_rows: ""
export_config_rows: ""
activerecord:
attributes:
export_card_configuration:

@ -1,51 +0,0 @@
#-- copyright
#OpenProject is an open source project management software.
#Copyright (C) 2012-2021 the OpenProject GmbH
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License version 3.
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
#Copyright (C) 2006-2013 Jean-Philippe Lang
#Copyright (C) 2010-2013 the ChiliProject Team
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#See COPYRIGHT and LICENSE files for more details.
#++
zh-TW:
error_can_not_delete_export_card_configuration: "不能刪除設定。"
error_can_not_change_name_of_default_configuration: "預設設定的名稱不能更改。"
label_backlogs_export_card_config_select: "選擇匯出卡設置"
label_backlogs_export_card_export: "匯出"
label_export_card_configuration_new: "新匯出卡設定"
label_export_card_configuration: "匯出卡設定"
label_export_card_configuration_plural: "匯出卡設定"
label_export_card_activate: "啟動"
label_export_card_deactivate: "關閉"
notice_export_card_configuration_activated: "設定成功啟動"
notice_export_card_configuration_deactivated: "設定成功關閉"
error_can_not_activate_export_card_configuration: "設定不能啟動"
error_can_not_deactivate_export_card_configuration: "設定不能關閉"
validation_error_required_keys_not_present: "所需的鍵不存在 ︰"
validation_error_yaml_is_badly_formed: "有無效的 YAML 格式。"
validation_error_uknown_key: "未知鍵:"
yaml_error: "YAML 錯誤 ︰"
help_link_rows_format: "行格式"
export_config_per_page: "每頁"
export_config_page_size: "頁面大小"
export_config_orientation: "頁面方向"
export_config_rows: "行"
activerecord:
attributes:
export_card_configuration:
rows: "列"
per_page: "每頁"
page_size: "頁面大小"
orientation: "頁面方向"

@ -1,18 +0,0 @@
#English strings go here for Rails i18n
zh-TW:
recaptcha:
label_recaptcha: "reCAPTCHA"
button_please_wait: 'Please wait ...'
verify_account: "Verify your account"
error_captcha: "Your account could not be verified. Please contact an administrator."
settings:
website_key: 'Website key'
website_key_text: 'Enter the website key you created on the reCAPTCHA admin console for this domain.'
secret_key: 'Secret key'
secret_key_text: 'Enter the secret key you created on the reCAPTCHA admin console.'
type: 'Use reCAPTCHA'
type_disabled: 'Disable reCAPTCHA'
type_v2: 'reCAPTCHA v2'
type_v3: 'reCAPTCHA v3'
recaptcha_description_html: >
reCAPTCHA is a free service by Google that can be enabled for your OpenProject instance. If enabled, a captcha form will be rendered upon login for all users that have not verified a captcha yet. <br/> Please see the following link for more details on reCAPTCHA and their versions, and how to create the website and secret keys: %{recaptcha_link}

@ -22,5 +22,5 @@
zh-TW:
js:
reporting_engine:
label_remove: "除"
label_remove: "除"
label_response_error: "處理查詢時發生錯誤"

@ -1,26 +0,0 @@
#-- copyright
#OpenProject is an open source project management software.
#Copyright (C) 2012-2021 the OpenProject GmbH
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License version 3.
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
#Copyright (C) 2006-2013 Jean-Philippe Lang
#Copyright (C) 2010-2013 the ChiliProject Team
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#See COPYRIGHT and LICENSE files for more details.
#++
zh-TW:
js:
reporting_engine:
label_remove: "刪除"
label_response_error: "處理查詢時發生錯誤"

@ -32,7 +32,7 @@ zh-TW:
information_restricted_depending_on_permission: "根據您的許可權, 此頁可能包含受限資訊。"
label_click_to_edit: "按一下編輯"
label_closed: "已關閉"
label_columns: "欄"
label_columns: "欄"
label_cost_entry_attributes: "成本項屬性"
label_days_ago: "在最後的日子裡"
label_entry: "成本項"

@ -1,87 +0,0 @@
#-- copyright
#OpenProject is an open source project management software.
#Copyright (C) 2012-2021 the OpenProject GmbH
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License version 3.
#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
#Copyright (C) 2006-2013 Jean-Philippe Lang
#Copyright (C) 2010-2013 the ChiliProject Team
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#See COPYRIGHT and LICENSE files for more details.
#++
zh-TW:
button_save_as: "將報表另存為..。"
comments: "評論"
cost_reports_title: "時程與成本"
label_cost_report: "成本報告"
label_cost_report_plural: "成本報告"
description_drill_down: "顯示詳細資訊"
description_filter_selection: "選擇"
description_multi_select: "顯示多選"
description_remove_filter: "刪除篩選器"
information_restricted_depending_on_permission: "根據您的許可權, 此頁可能包含受限資訊。"
label_click_to_edit: "按一下編輯"
label_closed: "已關閉"
label_columns: "欄位"
label_cost_entry_attributes: "成本項屬性"
label_days_ago: "在最後的日子裡"
label_entry: "成本項"
label_filter_text: "篩選文本"
label_filter_value: "值"
label_filters: "篩選器"
label_greater: ">"
label_is_not_project_with_subprojects: "不是 (包括子專案)"
label_is_project_with_subprojects: "是 (包括子專案)"
label_work_package_attributes: "工作包屬性"
label_less: "<"
label_money: "現金價值"
label_month_reporting: "月 (已用)"
label_new_report: "新建成本報表"
label_open: "打開"
label_operator: "操作員"
label_private_report_plural: "私密成本報告"
label_progress_bar_explanation: "產生報告中..."
label_public_report_plural: "公開成本報告"
label_really_delete_question: "你確定你要刪除這個報告?"
label_rows: "列"
label_saving: "儲存中..."
label_spent_on_reporting: "日期 (已用)"
label_sum: "總和"
label_units: "單位"
label_week_reporting: "星期 (已用)"
label_year_reporting: "年 (已用)"
label_count: "數量"
label_filter: "篩選器"
label_filter_add: "新增篩選器"
label_filter_plural: "篩選器"
label_group_by: "分組依據"
label_group_by_add: "新增分組依據屬性"
label_inactive: "«不活動»"
label_no: "否"
label_none: "(沒有資料)"
label_no_reports: "There are no cost reports yet."
label_report: "報表"
label_yes: "是"
load_query_question: "報告含有 %{size} 個儲存格,將要花一些時間呈現。你仍然想要嘗試顯示它嗎?"
permission_save_cost_reports: "保存公開成本報告"
permission_save_private_cost_reports: "保存私密成本報告"
project_module_reporting_module: "成本報告"
text_costs_are_rounded_note: "顯示的值被舍入。所有計算都基於非舍入值。"
toggle_multiselect: "啟動/停用多選"
units: "單位"
validation_failure_date: "不是一個有效日期"
validation_failure_integer: "不是一個有效的整數"
reporting:
group_by:
selected_columns: "選擇列"
selected_rows: "選定行"

@ -1,175 +0,0 @@
#English strings go here for Rails i18n
zh-TW:
activerecord:
attributes:
two_factor_authentication/device:
identifier: '識別碼'
default: '儲存為預設值'
two_factor_authentication/device/sms:
phone_number: "電話號碼"
errors:
models:
two_factor_authentication/device:
default_already_exists: '已為另一個 OTP 設備設置。'
two_factor_authentication/device/sms:
attributes:
phone_number:
error_phone_number_format: "格式必須是 + XX XXXXXXXXX"
models:
two_factor_authentication/device: "2FA 設備"
two_factor_authentication/device/sms: "手機"
two_factor_authentication/device/totp: "驗證程式應用程式"
two_factor_authentication:
error_2fa_disabled: "2FA 發送已被禁用。"
error_no_device: "未為該使用者找到已註冊的2FA 設備, 儘管此實例是必需的。"
error_no_matching_strategy: "沒有匹配的2FA 策略可供此使用者使用。請聯繫您的系統管理員。"
error_is_enforced_not_active: '配置錯誤: 已強制執行雙因素身份驗證, 但不存在有效原則。'
error_invalid_backup_code: '不正確2FA 備份代碼'
channel_unavailable: "傳遞通道 %{channel} 不可用。"
no_valid_phone_number: "不存在有效電話號碼。"
label_pwd_confirmation: "密碼"
notice_pwd_confirmation: "在對這些設置進行更改時, 您需要確認您的密碼。"
label_device_type: "裝置類型"
label_default_device: "預設2FA 設備"
label_device: "2FA 設備"
label_devices: "2FA 設備"
label_one_time_password: '一次性密碼'
label_2fa_enabled: '雙重驗證已啟用'
label_2fa_disabled: '雙重驗證已關閉'
text_otp_delivery_message_sms: "%{app_title} 一次性密碼為 %{token}"
text_otp_delivery_message_voice: "您的 %{app_title} 一次性密碼為: %{pause} %{token}。 %{pause} 重複: %{pause} %{token}"
text_enter_2fa: '請從您的設備取得一次性密碼。'
text_2fa_enabled: '於每次登錄, 您都將被要求從預設的2FA 設備中取得 OTP 密碼。'
text_2fa_disabled: '要啟用雙因素身份驗證, 請使用上面的按鈕註冊新的2FA 設備。如果已有設備, 則需要將其設置為預設值。'
login:
enter_backup_code_title: 輸入備份代碼
enter_backup_code_text: 請從代碼清單中輸入有效的備份代碼, 以防您無法再訪問已註冊的2FA 設備。
other_device: '使用其他設備或備份代碼'
settings:
title: '2FA 設置'
current_configuration: '目前設定:'
label_active_strategies: '已套用的 2FA 策略'
label_enforced: '強制使用 2FA'
label_remember: '記住2FA 登錄'
text_configuration: |
注意: 這些值表示當前應用程式範圍的配置。不能禁用由配置強制執行的設置或更改當前套用的策略, 因為它們需要重新開機伺服器。
text_configuration_guide: 更多資訊,請參考設定指南.
text_enforced: '啟用這個設定強制所有使用者在下次登入時同時要求註冊一個2FA設備。 這個設定只能在沒有強制合規設定的情形下才能時被停用。'
text_remember: |
將此值設置為大於零, 以允許使用者在給定的天數內記住其2FA 身份驗證。在那段期間, 他們將不被要求重新進入。只能在配置不強制的情況下設置。
error_invalid_settings: '您選擇的2FA 策略無效'
failed_to_save_settings: '未能更新2FA 設置: %{message}'
admin:
self_edit_path: '要添加或修改您自己的2FA 設備, 請轉到 %{self_edit_link}'
self_edit_link_name: '雙重驗證於您的帳號頁面'
self_edit_forbidden: '無法於此路徑編輯您擁有的2FA設備.請至 我的帳號 > 雙重認證.'
no_devices_for_user: '沒有為該使用者註冊的 2FA 設備。'
all_devices_deleted: '此使用者的所有2FA 設備已被刪除'
delete_all_are_you_sure: '確實要刪除此使用者的所有2FA 設備嗎?'
button_delete_all_devices: '刪除已註冊的2FA 設備'
button_register_mobile_phone_for_user: '註冊手機'
text_2fa_enabled: '每次登錄時, 都會要求該使用者從預設的2FA 設備中取得 OTP 密碼。'
text_2fa_disabled: "使用者沒有透過【我的帳戶】頁面進行建立一個2FA設備的動作。"
upsale:
title: '雙重認證是一個企業級功能'
description: '請使用第二種的認證方式加強您內部或外部的認證機制'
backup_codes:
none_found: 這個帳戶沒有存在備份代碼
singular: 備份代碼
plural: 備份代碼
your_codes: 為您的 %{app_name} 帳戶 %{login}
overview_description: |
If you are unable to access your two factor devices, you can use a backup code to regain access to your account.
Use the following button to generate a new set of backup codes.
generate:
title: Generate backup codes
keep_safe_as_password: 'Important! Treat these codes as passwords.'
keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.'
regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.'
devices:
add_new: 'Add new 2FA device'
register: 'Register device'
confirm_default: 'Confirm changing default device'
confirm_device: 'Confirm device'
confirm_now: 'Not confirmed, click here to activate'
cannot_delete_default: 'Cannot delete default device'
make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?'
make_default_failed: 'Failed to update the default 2FA device.'
deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?'
registration_complete: '2FA device registration complete!'
registration_failed_token_invalid: '2FA device registration failed, the token was invalid.'
registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.'
confirm_send_failed: 'Confirmation of your 2FA device failed.'
button_complete_registration: 'Complete 2FA registration'
text_confirm_to_complete_html: "Please complete the registration of your device <strong>%{identifier}</strong> by entering a one-time password from your default device."
text_confirm_to_change_default_html: "Please confirm changing your default device to <strong>%{new_identifier}</strong> by entering a one-time password from your current default device."
text_identifier: 'You can give the device a custom identifier using this field.'
failed_to_delete: 'Failed to delete 2FA device.'
is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.'
not_existing: 'No 2FA device has been registered for your account.'
request_2fa: Please enter the code from your %{device_name} to verify your identity.
totp:
title: 'Use your app-based authenticator'
provisioning_uri: 'Provisioning URI'
secret_key: 'Secret key'
time_based: 'Time based'
account: 'Account name / Issuer'
setup: |
For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store.
After opening the app, you can scan the following QR code to register the device.
question_cannot_scan: |
Unable to scan the code using your application?
text_cannot_scan: |
If you can't scan the code, you can enter the entry manually using the following details:
description: |
Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard.
Common examples are Google Authenticator or Authy.
sms:
title: 'Use your mobile phone'
redacted_identifier: 'Mobile device (%{redacted_number})'
request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}'
description: |
Register your mobile phone number for delivery of OpenProject one-time passwords.
sns:
delivery_failed: 'SNS delivery failed:'
message_bird:
sms_delivery_failed: 'MessageBird SMS delivery failed.'
voice_delivery_failed: 'MessageBird voice call failed.'
restdt:
delivery_failed_with_code: 'Token delivery failed. (Error code %{code})'
strategies:
totp: '驗證程式應用程式'
sns: '亞馬遜 SNS'
resdt: 'SMS Rest API'
mobile_transmit_notification: "已將一次性密碼發送給您的手機。"
label_two_factor_authentication: '雙重身分驗證'
forced_registration:
required_to_add_device: '活動安全性原則要求您啟用雙重身份驗證。請使用以下表格註冊設備。'
remember:
active_session_notice: >
您的帳戶有一個活動的記住 cookie 有效, 直到 %{expires_on}。此 cookie 允許您在沒有第二個因素的情況下登錄到您的帳戶, 直到該時間。
other_active_session_notice: Your account has an active remember cookie on another session.
label: '記住'
clear_cookie: 'Click here to remove all remembered 2FA sessions.'
cookie_removed: 'All remembered 2FA sessions have been removed.'
dont_ask_again: "創建 cookie,使 %{days} 天內記住此用戶端上的2FA 身份驗證。"
field_phone: "手機"
field_otp: "一次性密碼"
notice_account_otp_invalid: "一次性密碼無效。"
notice_account_otp_expired: "您輸入的一次性密碼已過期。"
notice_developer_strategy_otp: "開發者策略生成了以下一次性密碼: %{token} (通道: %{channel})"
notice_account_otp_send_failed: "無法發送您的一次性密碼。"
notice_account_has_no_phone: "沒有與您的帳戶關聯的手機號碼。"
label_expiration_hint: "%{date} 或登出時"
label_actions: '操作'
label_confirmed: '已確認'
button_continue: '繼續'
button_make_default: '標記為預設值'
label_unverified_phone: "Cell phone not yet verified"
notice_phone_number_format: "請輸入以下格式的號碼: + XX XXXXXXXX。"
text_otp_not_receive: "其他驗證方法"
text_send_otp_again: "通過以下操作,重新發送一次性密碼:"
button_resend_otp_form: "重新發送"
button_otp_by_voice: "語音電話"
button_otp_by_sms: "簡訊"
label_otp_channel: "傳送管道"

@ -1,59 +0,0 @@
zh-TW:
activerecord:
attributes:
webhooks/webhook:
url: 'Payload URL'
secret: 'Signature secret'
events: '事件'
projects: '已啟用的專案'
webhooks/log:
event_name: '事件名稱'
url: 'Payload URL'
response_code: '回應代碼'
response_body: '回應'
models:
webhooks/outgoing_webhook: "Outgoing webhook"
webhooks:
singular: Webhook
plural: Webhooks
resources:
time_entry:
name: "Time entry"
outgoing:
no_results_table: No webhooks have been defined yet.
label_add_new: 新增 Webhook
label_edit: 編輯 Webhook
label_event_resources: Event resources
events:
created: "已建立"
updated: "已更新"
status:
enabled: 'Webhook 已啟用'
disabled: 'Webhook 已停用'
enabled_text: 'The webhook will emit payloads for the defined events below.'
disabled_text: '點擊編輯按鈕以啟用 Webhook。'
deliveries:
no_results_table: No deliveries have been made for this webhook.
title: 'Recent deliveries'
time: 'Delivery time'
form:
introduction: >
Send a POST request to the payload URL below for any event in the project you're subscribed to. Payload will correspond to the APIv3 representation of the object being modified.
apiv3_doc_url: For more information, visit the API documentation
description:
placeholder: 'Optional description for the webhook.'
enabled:
description: >
When checked, the webhook will trigger on the selected events. Uncheck to disable the webhook.
events:
title: '已啟用的事件'
project_ids:
title: '已啟用的專案'
description: 'Select for which projects this webhook should be executed for.'
all: '所有專案'
selected: 'Selected projects only'
selected_project_ids:
title: 'Selected projects'
secret:
description: >
If set, this secret value is used by OpenProject to sign the webhook payload.

@ -1,13 +0,0 @@
zh-TW:
export_to_excel: "Export XLS"
print_with_description: "Print preview with description"
sentence_separator_or: "或者"
different_formats: Different formats
export:
format:
xls: "XLS"
xls_with_descriptions: "有說明的 XLS 檔"
xls_with_relations: "XLS with relations"
xls_export:
child_of: child of
parent_of: parent of

@ -0,0 +1,37 @@
require 'fileutils'
def js_translation?(translation_file_path)
filename = File.basename translation_file_path.to_s
filename.match? /\Ajs-.+\z/
end
Dir.glob('**/config/locales/crowdin/*.yml').each do |crowdin_file|
# Get the line that contains the first language key
language_key = nil
filename = File.basename(crowdin_file)
File.readlines(crowdin_file).each do |line|
if line.match(/^\s*(\S{2,}):\s*$/)
language_key = $1
break
end
end
# Read the language code from the YML index
if language_key.nil? || language_key.length > 5
raise "Failed to detect language from #{crowdin_file}"
end
# Remove any escaped language names
language_key.delete!('"')
# the files should be named like their translation-key
new_filename = "#{js_translation?(filename) ? 'js-' : ''}#{language_key}.yml"
directory = File.dirname(crowdin_file)
new_filepath = File.join(directory, new_filename)
next if crowdin_file == new_filepath
puts "Renaming #{crowdin_file} to #{new_filepath}"
FileUtils.mv crowdin_file, new_filepath
end

@ -169,12 +169,12 @@ describe 'Projects custom fields', type: :feature, js: true do
visit new_project_path
name_field.set_value 'My project name'
find('.op-fieldset--toggle', text: 'ERWEITERTE EINSTELLUNGEN').click
find('.op-fieldset--toggle', text: I18n.t('js.forms.advanced_settings').upcase).click
float_field.set_value '10000,55'
# Save project settings
click_on 'Speichern'
click_on I18n.t('js.button_save')
expect(page).to have_current_path /\/projects\/my-project-name\/?/
project = Project.find_by(name: 'My project name')

@ -56,7 +56,7 @@ describe 'Logging time within the work package view', type: :feature, js: true d
# a click on save creates a time entry
time_logging_modal.perform_action I18n.t('js.label_create')
wp_page.expect_and_dismiss_toaster message: I18n.t(:notice_successful_create)
wp_page.expect_and_dismiss_toaster message: I18n.t('js.notice_successful_create')
end
context 'as an admin' do

@ -138,7 +138,7 @@ module Pages
end
def save
click_button I18n.t(:button_save)
click_button I18n.t('js.button_save')
end
end
end

Loading…
Cancel
Save