Ray Kuo 31382a5b5e
Translated using Weblate (Chinese (Traditional))
Currently translated at 20.3% (321 of 1574 strings)
2024-05-21 02:04:43 +02:00

8131 lines
223 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-06 20:18-0400\n"
"PO-Revision-Date: 2024-05-21 00:04+0000\n"
"Last-Translator: Ray Kuo <ray20140811@gmail.com>\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
"freedombox/freedombox/zh_Hant/>\n"
"Language: zh_Hant\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.6-dev\n"
#: config.py:103
#, python-brace-format
msgid "Static configuration {etc_path} is setup properly"
msgstr "靜態配置 {etc_path} 已正確設置"
#: context_processors.py:23 views.py:116
msgid "FreedomBox"
msgstr "自由盒子"
#: daemon.py:124
#, python-brace-format
msgid "Service {service_name} is running"
msgstr "{service_name} 服務執行中"
#: daemon.py:222
#, python-brace-format
msgid "Listening on {kind} port {listen_address}:{port}"
msgstr "正在聆聽 {kind} 埠 {listen_address}:{port}"
#: daemon.py:225
#, python-brace-format
msgid "Listening on {kind} port {port}"
msgstr "正在聆聽 {kind} 埠 {port}"
#: daemon.py:296
#, python-brace-format
msgid "Connect to {host}:{port}"
msgstr "正在連線 {host}:{port}"
#: daemon.py:304
#, python-brace-format
msgid "Cannot connect to {host}:{port}"
msgstr "無法連線到 {host}:{port}"
#: forms.py:36
msgid "Backup app before uninstall"
msgstr "解除安裝前備份應用程式"
#: forms.py:37
msgid "Restoring from the backup will restore app data."
msgstr "從備份中恢復將還原應用程式資料."
#: forms.py:39
#, fuzzy
#| msgid "Repository not found"
msgid "Repository to backup to"
msgstr "找不到儲存庫"
#: forms.py:64
msgid "Select a domain name to be used with this application"
msgstr "選擇這個應用要使用的網域名稱"
#: forms.py:66
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
msgstr "警告!如果在之後修改網域名稱,這個應用可能無法正常運作。"
#: forms.py:80 modules/coturn/forms.py:31 modules/mumble/forms.py:21
msgid "TLS domain"
msgstr "TLS 網域"
#: forms.py:82 modules/coturn/forms.py:33 modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
"least one domain with certificates."
msgstr "選擇要使用 TLS 的網域。如果列表是空的,請至少設定一個網域及憑證。"
#: forms.py:92
msgid "Language"
msgstr "語言"
#: forms.py:93
msgid "Language to use for presenting this web interface"
msgstr "此網頁介面顯示的語言"
#: forms.py:100
msgid "Use the language preference set in the browser"
msgstr "使用瀏覽器語言設定"
#: menu.py:106
msgid "Visibility"
msgstr "可見性"
#: menu.py:108
msgid "Data"
msgstr "資料"
#: menu.py:110 templates/base.html:131
msgid "System"
msgstr "系統"
#: menu.py:112 modules/networks/templates/connection_show.html:259
#: modules/security/__init__.py:35
msgid "Security"
msgstr "安全性"
#: menu.py:114
msgid "Administration"
msgstr "管理"
#: middleware.py:131
msgid "System is possibly under heavy load. Please retry later."
msgstr "系統可能負載過重. 請稍後重試."
#: modules/apache/__init__.py:32
msgid "Apache HTTP Server"
msgstr "Apache HTTP 伺服器"
#: modules/apache/__init__.py:46
msgid "Web Server"
msgstr "網頁伺服器"
#: modules/apache/__init__.py:52
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr "{box_name} 網頁介面 (Plinth)"
#: modules/apache/components.py:162
#, python-brace-format
msgid "Access URL {url} on tcp{kind}"
msgstr "透過 TCP {kind} 開啟網址 {url}"
#: modules/apache/components.py:165
#, python-brace-format
msgid "Access URL {url}"
msgstr "開啟網址 {url}"
#: modules/avahi/__init__.py:24
#, python-brace-format
msgid ""
"Service discovery allows other devices on the network to discover your "
"{box_name} and services running on it. It also allows {box_name} to "
"discover other devices and services running on your local network. Service "
"discovery is not essential and works only on internal networks. It may be "
"disabled to improve security especially when connecting to a hostile local "
"network."
msgstr ""
"發現服務可以讓在此網路中其他裝置找到 {box_name} 和在其運作的服務,也能讓 "
"{box_name} 找到在此網路中其他裝置和運行的服務。發現服務並非必要且僅限內部網路"
"使用,當您在不安全的網路環境時,您可以取消此功能以提升安全性。"
#: modules/avahi/__init__.py:47
msgid "Service Discovery"
msgstr "發現服務"
#: modules/avahi/__init__.py:61
msgid "Local Network Domain"
msgstr "內部網路網域"
#: modules/backups/__init__.py:24
msgid "Backups allows creating and managing backup archives."
msgstr "Backups 能提供建立和管理備份檔。"
#: modules/backups/__init__.py:44 modules/backups/__init__.py:168
#: modules/backups/__init__.py:213
msgid "Backups"
msgstr "Backups 模組"
#: modules/backups/__init__.py:165
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
msgstr ""
"啟用自動排程的備份以策資料安全。請優先使用加密的遠端備份位置或外接式磁碟。"
#: modules/backups/__init__.py:171
msgid "Enable a Backup Schedule"
msgstr "啟用備份排程"
#: modules/backups/__init__.py:175 modules/backups/__init__.py:222
#: modules/privacy/__init__.py:77 modules/storage/__init__.py:315
#, python-brace-format
msgid "Go to {app_name}"
msgstr "移至 {app_name}"
#: modules/backups/__init__.py:210
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
"succeed. The latest error is: {error_message}"
msgstr ""
"排程備份已失敗。總共 {error_count} 次備份嘗試沒有成功。最新的錯誤是︰"
"{error_message}"
#: modules/backups/__init__.py:218
msgid "Error During Backup"
msgstr "備份時發生錯誤"
#: modules/backups/forms.py:33
#, python-brace-format
msgid "{app} (No data to backup)"
msgstr "{app} 無資料可備份"
#: modules/backups/forms.py:53
msgid "Enable scheduled backups"
msgstr "啟用已排程備份"
#: modules/backups/forms.py:54
msgid ""
"If enabled, a backup is taken every day, every week and every month. Older "
"backups are removed."
msgstr "如果啟用,會在每日、每週、每個月進行備份。較舊的備份會被移除。"
#: modules/backups/forms.py:58
msgid "Number of daily backups to keep"
msgstr "要保留的每日備份數"
#: modules/backups/forms.py:59
msgid ""
"This many latest backups are kept and the rest are removed. A value of \"0\" "
"disables backups of this type. Triggered at specified hour every day."
msgstr ""
"這是最多要保留的備份數量其餘的會被移除。數值「0」代表停用這個類型的備份。觸"
"發方式為指定每天的幾點鐘。"
#: modules/backups/forms.py:64
msgid "Number of weekly backups to keep"
msgstr "要保留的每週備份數"
#: modules/backups/forms.py:66
msgid ""
"This many latest backups are kept and the rest are removed. A value of \"0\" "
"disables backups of this type. Triggered at specified hour every Sunday."
msgstr ""
"這是最多要保留的備份數量其餘的會被移除。數值「0」代表停用這個類型的備份。觸"
"發方式為指定每週日的幾點鐘。"
#: modules/backups/forms.py:71
msgid "Number of monthly backups to keep"
msgstr "要保留的每月備份數"
#: modules/backups/forms.py:73
msgid ""
"This many latest backups are kept and the rest are removed. A value of \"0\" "
"disables backups of this type. Triggered at specified hour first day of "
"every month."
msgstr ""
"這是最多要保留的備份數量其餘的會被移除。數值「0」代表停用這個類型的備份。觸"
"發方式為指定每月第一日的幾點鐘。"
#: modules/backups/forms.py:78
msgid "Hour of the day to trigger backup operation"
msgstr "觸發備份操作於每日幾點鐘"
#: modules/backups/forms.py:79
msgid "In 24 hour format."
msgstr "使用 24 小時格式。"
#: modules/backups/forms.py:82 modules/backups/forms.py:104
msgid "Included apps"
msgstr "包含的應用"
#: modules/backups/forms.py:82 modules/backups/forms.py:104
msgid "Apps to include in the backup"
msgstr "要包含在備份中的應用"
#: modules/backups/forms.py:98
msgid "Repository"
msgstr "儲存庫"
#: modules/backups/forms.py:100
#: modules/backups/templates/backups_delete.html:17 modules/ikiwiki/forms.py:15
#: modules/networks/templates/connection_show.html:71
#: modules/samba/templates/samba.html:66
#: modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr "名稱"
#: modules/backups/forms.py:101
msgid "(Optional) Set a name for this backup archive"
msgstr "(可選) 設定此備份檔名稱"
#: modules/backups/forms.py:122
msgid "Select the apps you want to restore"
msgstr "選擇您想備份還原的應用"
#: modules/backups/forms.py:138 modules/kiwix/forms.py:21
msgid "Upload File"
msgstr "上傳檔案"
#: modules/backups/forms.py:140
msgid "Backup files have to be in .tar.gz format"
msgstr "備份檔已儲存為 .tar.gz 格式"
#: modules/backups/forms.py:141
msgid "Select the backup file you want to upload"
msgstr "選擇您想上傳的備份檔"
#: modules/backups/forms.py:147
msgid "Repository path format incorrect."
msgstr "儲存庫路徑格式錯誤。"
#: modules/backups/forms.py:154
#, python-brace-format
msgid "Invalid username: {username}"
msgstr "無效的使用者名稱:{username}"
#: modules/backups/forms.py:164
#, python-brace-format
msgid "Invalid hostname: {hostname}"
msgstr "無效的網域名稱:{hostname}"
#: modules/backups/forms.py:168
#, python-brace-format
msgid "Invalid directory path: {dir_path}"
msgstr "無效的資料夾路徑:{dir_path}"
#: modules/backups/forms.py:174
msgid "Encryption"
msgstr "加密"
#: modules/backups/forms.py:175
msgid ""
"\"Key in Repository\" means that a password-protected key is stored with the "
"backup."
msgstr "「儲存庫中的金鑰」代表被密碼保護的金鑰儲存在備份檔中。"
#: modules/backups/forms.py:177
msgid "Key in Repository"
msgstr "儲存庫中的金鑰"
#: modules/backups/forms.py:177
#: modules/matrixsynapse/templates/matrix-synapse.html:62
#: modules/searx/forms.py:14
msgid "None"
msgstr "無"
#: modules/backups/forms.py:179 modules/networks/forms.py:270
msgid "Passphrase"
msgstr "密碼"
#: modules/backups/forms.py:180
msgid "Passphrase; Only needed when using encryption."
msgstr "密碼;僅在加密時需要使用。"
#: modules/backups/forms.py:183
msgid "Confirm Passphrase"
msgstr "再輸入一次密碼"
#: modules/backups/forms.py:183
msgid "Repeat the passphrase."
msgstr "請再輸入一次相同的密碼。"
#: modules/backups/forms.py:194
msgid "The entered encryption passphrases do not match"
msgstr "您輸入的密碼不相符"
#: modules/backups/forms.py:198
msgid "Passphrase is needed for encryption."
msgstr "加密時需要密碼。"
#: modules/backups/forms.py:233
msgid "Select Disk or Partition"
msgstr "選擇磁碟或磁區"
#: modules/backups/forms.py:234
msgid "Backups will be stored in the directory FreedomBoxBackups"
msgstr "備份檔會儲存在 FreedomBoxBackups 目錄"
#: modules/backups/forms.py:243
msgid "SSH Repository Path"
msgstr "SSH 儲存庫路徑"
#: modules/backups/forms.py:244
msgid ""
"Path of a new or existing repository. Example: <i>user@host:~/path/to/repo/</"
"i>"
msgstr "新的或現有的儲存庫路徑。例如:<i>user@host:~/path/to/repo/</i>"
#: modules/backups/forms.py:248
msgid "SSH server password"
msgstr "SSH 伺服器密碼"
#: modules/backups/forms.py:249
msgid ""
"Password of the SSH Server.<br />SSH key-based authentication is not yet "
"possible."
msgstr "SSH 伺服器的密碼。<br />採金鑰的 SSH 認證機制目前無法使用。"
#: modules/backups/forms.py:268
msgid "Remote backup repository already exists."
msgstr "異地備份儲存庫已存在。"
#: modules/backups/forms.py:274
msgid "Select verified SSH public key"
msgstr "選擇已認證的 SSH 公鑰"
#: modules/backups/repository.py:30
msgid ""
"Connection refused - make sure you provided correct credentials and the "
"server is running."
msgstr "連線被拒絕 - 請確認您提供的認證正確且伺服器正在運作。"
#: modules/backups/repository.py:37
msgid "Connection refused"
msgstr "連線被拒絕"
#: modules/backups/repository.py:44
msgid "Repository not found"
msgstr "找不到儲存庫"
#: modules/backups/repository.py:49
msgid "Incorrect encryption passphrase"
msgstr "無效的加密密碼"
#: modules/backups/repository.py:54
msgid "SSH access denied"
msgstr "SSH 連線被拒絕"
#: modules/backups/repository.py:60
msgid "Repository path is neither empty nor is an existing backups repository."
msgstr "路徑儲存庫不為空或為現有備份儲存庫。"
#: modules/backups/repository.py:145
msgid "Existing repository is not encrypted."
msgstr "現有儲存庫未加密。"
#: modules/backups/repository.py:337
#, python-brace-format
msgid "{box_name} storage"
msgstr "{box_name} 儲存空間"
#: modules/backups/templates/backups.html:17 modules/backups/views.py:116
msgid "Create a new backup"
msgstr "建立一個新的備份檔"
#: modules/backups/templates/backups.html:21
msgid "Create Backup"
msgstr "建立備份"
#: modules/backups/templates/backups.html:24
msgid "Upload and restore a backup archive"
msgstr "上傳並備份還原"
#: modules/backups/templates/backups.html:28
msgid "Upload and Restore"
msgstr "上傳並備份還原"
#: modules/backups/templates/backups.html:31
msgid "Add a backup location"
msgstr "新增一個備份檔路徑"
#: modules/backups/templates/backups.html:35
msgid "Add Backup Location"
msgstr "新增備份檔路徑"
#: modules/backups/templates/backups.html:38
msgid "Add a remote backup location"
msgstr "新增一個異地的備份檔路徑"
#: modules/backups/templates/backups.html:42
msgid "Add Remote Backup Location"
msgstr "新增異地備份檔路徑"
#: modules/backups/templates/backups.html:46
msgid "Existing Backups"
msgstr "現有的備份檔"
#: modules/backups/templates/backups_add_remote_repository.html:19
#, fuzzy, python-format
#| msgid ""
#| "The credentials for this repository are stored on your %(box_name)s. <br /"
#| "> To restore a backup on a new %(box_name)s you need the ssh credentials "
#| "and, if chosen, the encryption passphrase."
msgid ""
"The credentials for this repository are stored on your %(box_name)s. <br /> "
"To restore a backup on a new %(box_name)s you need the SSH credentials and, "
"if chosen, the encryption passphrase."
msgstr ""
"此儲存庫的認證存在 %(box_name)s。<br> 如果要備份還原到新的 %(box_name)s 您需"
"要 SSH 認證和(如果您有設定)加密密碼。"
#: modules/backups/templates/backups_add_remote_repository.html:28
msgid "Create Location"
msgstr "建立儲存路徑"
#: modules/backups/templates/backups_add_repository.html:19
#: modules/gitweb/views.py:51
msgid "Create Repository"
msgstr "建立儲存庫"
#: modules/backups/templates/backups_delete.html:12
msgid "Delete this archive permanently?"
msgstr "您確定要永久刪除此備份檔嗎?"
#: modules/backups/templates/backups_delete.html:18
msgid "Time"
msgstr "時間"
#: modules/backups/templates/backups_delete.html:34
#, python-format
msgid "Delete Archive %(name)s"
msgstr "刪除備份檔 %(name)s"
#: modules/backups/templates/backups_repository.html:19
msgid "This repository is encrypted"
msgstr "此儲存庫已加密"
#: modules/backups/templates/backups_repository.html:29
msgid "Schedule"
msgstr "排程"
#: modules/backups/templates/backups_repository.html:40
msgid "Unmount Location"
msgstr "移除儲存庫位置"
#: modules/backups/templates/backups_repository.html:51
msgid "Mount Location"
msgstr "加入儲存庫位置"
#: modules/backups/templates/backups_repository.html:62
msgid "Remove Backup Location. This will not delete the remote backup."
msgstr "移除備份檔的路徑。這並不會刪除異地的備份檔。"
#: modules/backups/templates/backups_repository.html:83
msgid "Download"
msgstr "下載"
#: modules/backups/templates/backups_repository.html:87
#: modules/backups/templates/backups_restore.html:27
#: modules/backups/views.py:219 templates/toolbar.html:44
#: templates/toolbar.html:45
msgid "Restore"
msgstr "備份還原"
#: modules/backups/templates/backups_repository.html:109
msgid "No archives currently exist."
msgstr "目前沒有備份檔。"
#: modules/backups/templates/backups_repository_remove.html:13
msgid "Are you sure that you want to remove this repository?"
msgstr "您確定要移除這個儲存庫嗎?"
#: modules/backups/templates/backups_repository_remove.html:19
msgid ""
"The remote repository will not be deleted. This just removes the repository "
"from the listing on the backup page, you can add it again later on."
msgstr "異地的儲存庫不會被刪除,這只會將儲存庫從清單中移除,您可以之後再加回。"
#: modules/backups/templates/backups_repository_remove.html:31
msgid "Remove Location"
msgstr "移除儲存庫位置"
#: modules/backups/templates/backups_restore.html:15
msgid "Restore data from"
msgstr "將資料還原自"
#: modules/backups/templates/backups_upload.html:17
#, python-format
msgid ""
"\n"
" Upload a backup file downloaded from another %(box_name)s to restore "
"its\n"
" contents. You can choose the apps you wish to restore after uploading "
"a\n"
" backup file.\n"
" "
msgstr ""
"\n"
" 將從另一個 %(box_name)s 下載的備份檔上傳以還原其\n"
" 內容。您可以在上傳備份檔後選擇您想要備份還原的\n"
" 應用。\n"
" "
#: modules/backups/templates/backups_upload.html:27
#: modules/help/templates/statuslog.html:23
#: modules/networks/templates/connection_show.html:23
msgid "Caution:"
msgstr "小心:"
#: modules/backups/templates/backups_upload.html:28
#, python-format
msgid ""
"You have %(max_filesize)s available to restore a backup. Exceeding this "
"limit can leave your %(box_name)s unusable."
msgstr ""
"您剩餘空間有 %(max_filesize)s 可以備份還原。超出此容量可能會造成您的 "
"%(box_name)s 無法使用。"
#: modules/backups/templates/backups_upload.html:41
msgid "Upload file"
msgstr "上傳檔案"
#: modules/backups/templates/verify_ssh_hostkey.html:18
#, python-format
msgid ""
"Could not reach SSH host %(hostname)s. Please verify that the host is up and "
"accepting connections."
msgstr ""
"無法連線到 SSH 伺服器 %(hostname)s。請確認伺服器有在正常運作且接受連線。"
#: modules/backups/templates/verify_ssh_hostkey.html:28
#, python-format
msgid ""
"The authenticity of SSH host %(hostname)s could not be established. The host "
"advertises the following SSH public keys. Please verify any one of them."
msgstr ""
"主機 %(hostname)s 的 SSH 核對無法建立。此主機廣告了下列 SSH 公鑰。請檢驗它們"
"中的任何一個。"
#: modules/backups/templates/verify_ssh_hostkey.html:40
msgid "How to verify?"
msgstr "如何校驗?"
#: modules/backups/templates/verify_ssh_hostkey.html:45
msgid ""
"Run the following command on the SSH host machine. The output should match "
"one of the provided options. You can also use DSA, ECDSA, Ed25519 etc. "
"instead of RSA, by choosing the corresponding file."
msgstr ""
"在 SSH 主機執行下列指令。輸出結果應該符合提供選項之一。您也可以使用 DSA、"
"ECDSA、Ed25519 等等。要替換 RSA可以選擇對應的檔案。"
#: modules/backups/templates/verify_ssh_hostkey.html:60
msgid "Verify Host"
msgstr "校驗主機"
#: modules/backups/views.py:59
msgid "Backup schedule updated."
msgstr "備份排程已更新。"
#: modules/backups/views.py:78
msgid "Schedule Backups"
msgstr "排程備份"
#: modules/backups/views.py:111
msgid "Archive created."
msgstr "封存已建立。"
#: modules/backups/views.py:147
msgid "Delete Archive"
msgstr "刪除封存"
#: modules/backups/views.py:159
msgid "Archive deleted."
msgstr "封存已刪除。"
#: modules/backups/views.py:172
msgid "Upload and restore a backup"
msgstr "上傳和恢復備份檔"
#: modules/backups/views.py:207
msgid "Restored files from backup."
msgstr "從備份中恢復檔案。"
#: modules/backups/views.py:235
msgid "No backup file found."
msgstr "沒有找到備份檔。"
#: modules/backups/views.py:243
msgid "Restore from uploaded file"
msgstr "從上傳的檔案中恢復"
#: modules/backups/views.py:302
msgid "No additional disks available to add a repository."
msgstr "無多餘的磁碟可取得用以新增資料庫。"
#: modules/backups/views.py:310
msgid "Create backup repository"
msgstr "建立備份資料庫"
#: modules/backups/views.py:337
msgid "Create remote backup repository"
msgstr "建立遠端備份資料庫"
#: modules/backups/views.py:357
msgid "Added new remote SSH repository."
msgstr "新增遠端 SSH 資料庫。"
#: modules/backups/views.py:379
msgid "Verify SSH hostkey"
msgstr "校驗 SSH 主機密鑰"
#: modules/backups/views.py:405
msgid "SSH host already verified."
msgstr "SSH 主機已驗證。"
#: modules/backups/views.py:415
msgid "SSH host verified."
msgstr "SSH 主機較驗成功。"
#: modules/backups/views.py:430
msgid "SSH host public key could not be verified."
msgstr "SSH 主機公鑰無法被校驗。"
#: modules/backups/views.py:432
msgid "Authentication to remote server failed."
msgstr "俺端主機認證失敗。"
#: modules/backups/views.py:434
msgid "Error establishing connection to server: {}"
msgstr "建立連絡到伺服器時發生錯誤︰{}"
#: modules/backups/views.py:445
msgid "Repository removed."
msgstr "資料庫已移除。"
#: modules/backups/views.py:459
msgid "Remove Repository"
msgstr "移除資料庫"
#: modules/backups/views.py:468
msgid "Repository removed. Backups were not deleted."
msgstr "資料庫已移除。 備份並未被刪除。"
#: modules/backups/views.py:478
msgid "Unmounting failed!"
msgstr "取消掛載失敗!"
#: modules/backups/views.py:493 modules/backups/views.py:497
msgid "Mounting failed"
msgstr "掛載失敗"
#: modules/bepasty/__init__.py:17
msgid ""
"bepasty is a web application that allows large files to be uploaded and "
"shared. Text and code snippets can also be pasted and shared. Text, image, "
"audio, video and PDF documents can be previewed in the browser. Shared files "
"can be set to expire after a time period."
msgstr ""
"bepasty 是一個允許上傳與分享大型檔案的網頁應用程式。文字與程式碼片段也可以貼"
"上並分享。文字、影像、音訊、視訊和 PDF 文件可以在瀏覽器中預覽。分享的檔案可以"
"設定在一段時間後過期。"
#: modules/bepasty/__init__.py:21
msgid ""
"bepasty does not use usernames for login. It only uses passwords. For each "
"password, a set of permissions can be selected. Once you have created a "
"password, you can share it with the users who should have the associated "
"permissions."
msgstr ""
"bepasty 不用使用者名稱來登入。它只使用密碼。對每一組密碼,可以選擇一組權限。"
"一旦您建立了密碼,您可以將它分享給應該有相關權限的使用者。"
#: modules/bepasty/__init__.py:25
msgid ""
"You can also create multiple passwords with the same set of privileges, and "
"distribute them to different people or groups. This will allow you to later "
"revoke access for a single person or group, by removing their password from "
"the list."
msgstr ""
"您也可以建立多個具有相同權限的密碼,然後把它們分給不同的人或群組。這讓您可以"
"在稍後取消單一個人或群組的存取,只要將他們的密碼自列表中移除。"
#: modules/bepasty/__init__.py:32 modules/bepasty/__init__.py:41
msgid "Read a file, if a web link to the file is available"
msgstr "讀取檔案,若該檔案鍵結可用"
#: modules/bepasty/__init__.py:33
msgid "Create or upload files"
msgstr "建立或上傳檔案"
#: modules/bepasty/__init__.py:34
msgid "List all files and their web links"
msgstr "列出所有檔案和他們的網頁鍵結"
#: modules/bepasty/__init__.py:35
msgid "Delete files"
msgstr "刪除檔案"
#: modules/bepasty/__init__.py:36
msgid "Administer files: lock/unlock files"
msgstr "系統管理者檔案︰鎖定/解鎖檔案"
#: modules/bepasty/__init__.py:40
msgid "None, password is always required"
msgstr "無,密碼永遠需要"
#: modules/bepasty/__init__.py:42
msgid "List and read all files"
msgstr "列出與讀取所有檔案"
#: modules/bepasty/__init__.py:57 modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr "bepasty"
#: modules/bepasty/__init__.py:59
msgid "File & Snippet Sharing"
msgstr "檔案 &amp; 字條分享"
#: modules/bepasty/forms.py:17
msgid "Public Access (default permissions)"
msgstr "公開存取 (預設權限)"
#: modules/bepasty/forms.py:18
msgid "Permissions for anonymous users, who have not provided a password."
msgstr "匿名使用者的權限,不需提供密碼。"
#: modules/bepasty/forms.py:27 modules/bepasty/templates/bepasty.html:30
#: modules/users/forms.py:103
msgid "Permissions"
msgstr "權限"
#: modules/bepasty/forms.py:29
msgid ""
"Users that log in with this password will have the selected permissions."
msgstr "使用這個密碼登入的使用者會具備相應的權限。"
#: modules/bepasty/forms.py:33 modules/bepasty/templates/bepasty.html:31
msgid "Comment"
msgstr "評論"
#: modules/bepasty/forms.py:34
msgid "Any comment to help you remember the purpose of this password."
msgstr "任何能協助您記得這組密碼用途的註解。"
#: modules/bepasty/templates/bepasty.html:12
msgid "Manage Passwords"
msgstr "管理密碼"
#: modules/bepasty/templates/bepasty.html:16
#: modules/bepasty/templates/bepasty.html:18
msgid "Add password"
msgstr "新增密碼"
#: modules/bepasty/templates/bepasty.html:23
msgid "No passwords currently configured."
msgstr "目前沒有設定密碼。"
#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91
#: modules/networks/forms.py:208 modules/shadowsocks/forms.py:32
#: modules/shadowsocksserver/forms.py:37
msgid "Password"
msgstr "密碼"
#: modules/bepasty/views.py:19
msgid "admin"
msgstr "管理員"
#: modules/bepasty/views.py:20
msgid "editor"
msgstr "編輯器"
#: modules/bepasty/views.py:21
msgid "viewer"
msgstr "檢視器"
#: modules/bepasty/views.py:47
msgid "Read"
msgstr "讀取"
#: modules/bepasty/views.py:48
msgid "Create"
msgstr "建立"
#: modules/bepasty/views.py:49
msgid "List"
msgstr "清單"
#: modules/bepasty/views.py:50 modules/email/templates/email-aliases.html:24
#: modules/letsencrypt/templates/letsencrypt.html:86
#: modules/networks/templates/connection_show.html:56
#: modules/samba/templates/samba.html:154
#: modules/wireguard/templates/wireguard_delete_client.html:24
#: modules/wireguard/templates/wireguard_delete_server.html:35
#: modules/wireguard/templates/wireguard_show_client.html:77
#: modules/wireguard/templates/wireguard_show_server.html:78
msgid "Delete"
msgstr "刪除"
#: modules/bepasty/views.py:51
msgid "Admin"
msgstr "管理員"
#: modules/bepasty/views.py:88 modules/diagnostics/views.py:55
#: modules/nextcloud/views.py:62 modules/searx/views.py:35
#: modules/searx/views.py:46 modules/security/views.py:56
#: modules/snapshot/views.py:158 modules/tor/views.py:73
#: modules/torproxy/views.py:71 modules/upgrades/views.py:83
#: modules/zoph/views.py:74
msgid "Configuration updated."
msgstr "配置已更新。"
#: modules/bepasty/views.py:91 modules/email/views.py:48
#: modules/gitweb/views.py:117 modules/searx/views.py:38
#: modules/searx/views.py:49 modules/zoph/views.py:77
msgid "An error occurred during configuration."
msgstr "設置過程中發生錯誤。"
#: modules/bepasty/views.py:103
msgid "Password added."
msgstr "密碼已新增。"
#: modules/bepasty/views.py:108
msgid "Add Password"
msgstr "新增密碼"
#: modules/bepasty/views.py:122
msgid "Password deleted."
msgstr "密碼已刪除。"
#: modules/bind/__init__.py:17
msgid ""
"BIND enables you to publish your Domain Name System (DNS) information on the "
"Internet, and to resolve DNS queries for your user devices on your network."
msgstr ""
"BIND 可以推送您的網域名稱系統 (DNS) 資訊到網際網路,同時解析您的網路上使用者"
"裝置的 DNS 查詢。"
#: modules/bind/__init__.py:21
#, python-brace-format
msgid ""
"Currently, on {box_name}, BIND is only used to resolve DNS queries for other "
"machines on local network. It is also incompatible with sharing Internet "
"connection from {box_name}."
msgstr ""
"目前,在 {box_name} 上BIND 只用來解析區域網路上其他機器的 DNS 查詣。它也不"
"相容從 {box_name} 分享網際網路連線。"
#: modules/bind/__init__.py:40
msgid "BIND"
msgstr "BIND"
#: modules/bind/__init__.py:41
msgid "Domain Name Server"
msgstr "域名服務器 DNS"
#: modules/bind/forms.py:19
msgid "Forwarders"
msgstr "轉發器"
#: modules/bind/forms.py:20
msgid ""
"A list DNS servers, separated by space, to which requests will be forwarded"
msgstr "DNS 伺服器列表,以空白分隔,用來轉發要求"
#: modules/bind/templates/bind.html:11
msgid "Serving Domains"
msgstr "提供網域"
#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38
#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:15
#: modules/networks/templates/connection_show.html:91
#: modules/samba/templates/samba.html:65
#: modules/storage/templates/storage.html:26
msgid "Type"
msgstr "類型"
#: modules/bind/templates/bind.html:18
msgid "Domain Names"
msgstr "網域名稱"
#: modules/bind/templates/bind.html:19
msgid "Serving"
msgstr "提供"
#: modules/bind/templates/bind.html:20
msgid "IP addresses"
msgstr "IP 地址"
#: modules/bind/templates/bind.html:37 modules/bind/templates/bind.html:39
msgid "Refresh IP address and domains"
msgstr "更新 IP 位址與網域名稱"
#: modules/bind/views.py:61 modules/config/views.py:98
#: modules/coturn/views.py:40 modules/deluge/views.py:35
#: modules/dynamicdns/views.py:78 modules/ejabberd/views.py:95
#: modules/email/views.py:45 modules/matrixsynapse/views.py:149
#: modules/minetest/views.py:55 modules/mumble/views.py:37
#: modules/pagekite/forms.py:74 modules/privacy/views.py:36
#: modules/quassel/views.py:29 modules/roundcube/views.py:32
#: modules/rssbridge/views.py:31 modules/shadowsocks/views.py:53
#: modules/shadowsocksserver/views.py:52 modules/ssh/views.py:62
#: modules/transmission/views.py:43 modules/ttrss/views.py:31
#: modules/wordpress/views.py:31
msgid "Configuration updated"
msgstr "配置已更新"
#: modules/calibre/__init__.py:24
#, python-brace-format
msgid ""
"calibre server provides online access to your e-book collection. You can "
"store your e-books on your {box_name}, read them online or from any of your "
"devices."
msgstr ""
"calibre 伺服器提供線上存取您的電子書收藏。您可以將自己的電子書儲存在 "
"{box_name},並從您的任何裝置線上閱讀它們。"
#: modules/calibre/__init__.py:27
msgid ""
"You can organize your e-books, extract and edit their metadata, and perform "
"advanced search. calibre can import, export, or convert across a wide range "
"of formats to make e-books ready for reading on any device. It also provides "
"an online web reader. It remembers your last read location, bookmarks, and "
"highlighted text. Content distribution using OPDS is currently not supported."
msgstr ""
"您可以組織電子書提取和編輯其元數據以及執行進階搜尋。calibre可以匯入匯出"
"或轉換各種格式,使電子書在任何設備上都可以閱讀。它還提供線上網路閱讀器。它會"
"記住您上次閱讀的位置、書籤和畫記的文字。目前不支援使用 OPDS 進行內容散布。"
#: modules/calibre/__init__.py:33
msgid ""
"Only users belonging to <em>calibre</em> group will be able to access the "
"app. All users with access can use all the libraries."
msgstr ""
"只有屬於 <em>calibre</em> 群組的使用者可以存取這個 app。每個能存取的使用者都"
"可以使用所有的圖書館。"
#: modules/calibre/__init__.py:53
msgid "Use calibre e-book libraries"
msgstr "使用 calibre 電子書庫"
#: modules/calibre/__init__.py:56 modules/calibre/manifest.py:6
msgid "calibre"
msgstr "calibre"
#: modules/calibre/__init__.py:57
msgid "E-book Library"
msgstr "電子書圖書館"
#: modules/calibre/forms.py:16
msgid "Name of the new library"
msgstr "新圖書館名稱"
#: modules/calibre/forms.py:17
msgid ""
"Only letters of the English alphabet, numbers and the characters _ . and - "
"without spaces or special characters. Example: My_Library_2000"
msgstr ""
"只有英文字母、數字和字符 _ . 和 - 不包含空格或特殊字符. 例如:My_Library_2000"
#: modules/calibre/forms.py:28
msgid "A library with this name already exists."
msgstr "已存在同樣名稱的圖書館。"
#: modules/calibre/templates/calibre-delete-library.html:11
#, python-format
msgid "Delete calibre Library <em>%(name)s</em>"
msgstr "刪除 calibre 圖書館 <em>%(name)s</em>"
#: modules/calibre/templates/calibre-delete-library.html:17
msgid ""
"Delete this library permanently? All stored e-books and saved data will be "
"lost."
msgstr "是否要永久刪除這個圖書館?所有儲存的電子書與資料都會消失。"
#: modules/calibre/templates/calibre-delete-library.html:27
#: modules/gitweb/templates/gitweb_delete.html:27
#: modules/ikiwiki/templates/ikiwiki_delete.html:29
#: modules/kiwix/templates/kiwix-delete-package.html:27
#: modules/networks/templates/connections_delete.html:23
#, python-format
msgid "Delete %(name)s"
msgstr "刪除 %(name)s"
#: modules/calibre/templates/calibre.html:11
msgid "Manage Libraries"
msgstr "管理圖書館"
#: modules/calibre/templates/calibre.html:15
#: modules/calibre/templates/calibre.html:17
msgid "Create Library"
msgstr "建立圖書館"
#: modules/calibre/templates/calibre.html:24
msgid "No libraries available."
msgstr "無可用的圖書館。"
#: modules/calibre/templates/calibre.html:31
#, python-format
msgid "Go to library %(library)s"
msgstr "前往至圖書館 %(library)s"
#: modules/calibre/templates/calibre.html:37
#, python-format
msgid "Delete library %(library)s"
msgstr "刪除圖書館 %(library)s"
#: modules/calibre/views.py:39
msgid "Library created."
msgstr "圖書已建立。"
#: modules/calibre/views.py:49
msgid "An error occurred while creating the library."
msgstr "建立圖書館時發生錯誤。"
#: modules/calibre/views.py:63 modules/gitweb/views.py:139
#: modules/kiwix/views.py:100
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} 已刪除。"
#: modules/calibre/views.py:67 modules/gitweb/views.py:143
#: modules/kiwix/views.py:104
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "無法刪除 {name}: {error}"
#: modules/cockpit/__init__.py:23
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
"servers via a web browser. On a {box_name}, controls are available for many "
"advanced functions that are not usually required. A web based terminal for "
"console operations is also available."
msgstr ""
"Cockpit 是一個伺服器管理程式,讓您可以輕鬆的透過網頁瀏覽器來管理 GNU/Linux 伺"
"服器。在 {box_name} 上,控制器可以用於許多不常見的進階功能。另外也提供網頁式"
"終端機可以進行主控台操作。"
#: modules/cockpit/__init__.py:29
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
"firewall ports and advanced networking such as bonding, bridging and VLAN "
"management."
msgstr ""
"Cockpit 可以用來進行進階的儲存裝置操作,像是磁碟分𨜌和 RAID 管理。它也可以用"
"來開啟自訂防火牆連接埠與進階的網路功能,像是綁定、橋接和 VLAN 管理。"
#: modules/cockpit/__init__.py:34
#, python-brace-format
msgid ""
"It can be accessed by <a href=\"{users_url}\">any user</a> on {box_name} "
"belonging to the admin group."
msgstr ""
"它可以由 {box_name} 上屬於 admin 群組的 <a href=\"{users_url}\">任何使用者</"
"a>存取。"
#: modules/cockpit/__init__.py:53 modules/cockpit/manifest.py:9
#: modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
#: modules/cockpit/__init__.py:55
msgid "Server Administration"
msgstr "伺服器管理"
#: modules/config/__init__.py:22
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
msgstr ""
"在這裡您可以設定某些一般設定選項,像是主機名稱、網域名稱、網頁伺服器首頁等"
"等。"
#: modules/config/__init__.py:44
msgid "General Configuration"
msgstr "一般配置"
#: modules/config/__init__.py:49 modules/names/templates/names.html:30
#: modules/names/templates/names.html:44 modules/snapshot/views.py:32
#: templates/index.html:38
msgid "Configure"
msgstr "配置"
#: modules/config/__init__.py:63 modules/config/forms.py:68
#: modules/dynamicdns/forms.py:82 modules/names/templates/names.html:16
msgid "Domain Name"
msgstr "網域名稱"
#: modules/config/forms.py:30 modules/config/forms.py:80
#: modules/dynamicdns/forms.py:85
msgid "Invalid domain name"
msgstr "無效的網域名稱"
#: modules/config/forms.py:40
#, python-brace-format
msgid "{user}'s website"
msgstr "{user} 的網站"
#: modules/config/forms.py:42
msgid "Apache Default"
msgstr "Apache 預設值"
#: modules/config/forms.py:43
msgid "FreedomBox Service (Plinth)"
msgstr "自由盒子服務 (Plinth)"
#: modules/config/forms.py:55
msgid "Hostname"
msgstr "主機名稱"
#: modules/config/forms.py:57
#, python-brace-format
msgid ""
"Hostname is the local name by which other devices on the local network can "
"reach your {box_name}. It must start and end with an alphabet or a digit "
"and have as interior characters only alphabets, digits and hyphens. Total "
"length must be 63 characters or less."
msgstr ""
"主機名稱是一種本地名稱,讓其他在區域網路上的裝置可以到達您的 {box_name}。它必"
"須以字母或數字開頭與結尾,內部字元也只能包含字母、數字和連字符。總長度必須低"
"於 63 字元。"
#: modules/config/forms.py:64
msgid "Invalid hostname"
msgstr "無效的主機名稱"
#: modules/config/forms.py:70
#, python-brace-format
msgid ""
"Domain name is the global name by which other devices on the Internet can "
"reach your {box_name}. It must consist of labels separated by dots. Each "
"label must start and end with an alphabet or a digit and have as interior "
"characters only alphabets, digits and hyphens. Length of each label must be "
"63 characters or less. Total length of domain name must be 253 characters "
"or less."
msgstr ""
"網域名稱是一種全域名稱,讓其他在網際網路上的裝置可以到達您的 {box_name}。它必"
"須以句點分隔的幾組標籤組成。每個標籤必須字母或數字開頭與結尾,內部字元也只能"
"包含字母、數字和連字符。每個標籤的長度必須低於 63 字元。網域名稱的總長度必須"
"低於 253 字元。"
#: modules/config/forms.py:85
msgid "Webserver Home Page"
msgstr "網頁伺服器首頁"
#: modules/config/forms.py:87
#, python-brace-format
msgid ""
"Choose the default page that must be served when someone visits your "
"{box_name} on the web. A typical use case is to set your blog or wiki as the "
"home page when someone visits the domain name. Note that once the home page "
"is set to something other than {box_name} Service (Plinth), your users must "
"explicitly type /plinth or /freedombox to reach {box_name} Service (Plinth)."
msgstr ""
"選擇別人參訪您的 {box_name} 時要提供的預設頁面。通常的用法是設定您的部落格或"
"維基當作別人參訪此網域時的首頁。請注意一旦設定不是 {box_name} 的首頁,您的使"
"用者必須明確輸入 /plinth 或 /freedombox 才能看到 {box_name} 服務 (Plinth)。"
#: modules/config/forms.py:98
msgid "Show advanced apps and features"
msgstr "顯示進階的 app 與功能"
#: modules/config/forms.py:100
msgid "Show apps and features that require more technical knowledge."
msgstr "顯示需要更多技術知識的 app 與功能。"
#: modules/config/forms.py:104
msgid "System-wide logging"
msgstr "系統-全域 記錄"
#: modules/config/forms.py:105
msgid "Disable logging, for privacy"
msgstr "為了保護隱私,禁用日誌記錄"
#: modules/config/forms.py:107
msgid "Keep some in memory until a restart, for performance"
msgstr "為了提高性能,保留在記憶體中,直到重新啟動"
#: modules/config/forms.py:110
msgid "Write to disk, useful for debugging"
msgstr "寫入磁碟,用於調試"
#: modules/config/forms.py:112
msgid ""
"Logs contain information about who accessed the system and debug information "
"from various services"
msgstr "日誌記錄了存取系統的人員以及各種服務的調試資訊"
#: modules/config/views.py:49
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "設定主機名稱時發生錯誤︰{exception}"
#: modules/config/views.py:52
msgid "Hostname set"
msgstr "主機名稱設定"
#: modules/config/views.py:61
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "設定網域名稱時發生錯誤︰{exception}"
#: modules/config/views.py:64
msgid "Domain name set"
msgstr "網域名稱設定"
#: modules/config/views.py:72
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "設定網頁伺服器首頁時發生錯誤︰{exception}"
#: modules/config/views.py:75
msgid "Webserver home page set"
msgstr "網頁伺服器首頁設定"
#: modules/config/views.py:83
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "改變進階模式時發生錯誤︰{exception}"
#: modules/config/views.py:88
msgid "Showing advanced apps and features"
msgstr "顯示進階 app 與功能"
#: modules/config/views.py:91
msgid "Hiding advanced apps and features"
msgstr "隱藏進階 app 與功能"
#: modules/coturn/__init__.py:25
msgid ""
"Coturn is a server to facilitate audio/video calls and conferences by "
"providing an implementation of TURN and STUN protocols. WebRTC, SIP and "
"other communication servers can use it to establish a call between parties "
"who are otherwise unable connect to each other."
msgstr ""
"Coturn 是一個伺服器,通過提供 TURN 和 STUN 通訊協定的實作來促進音訊/視訊通話"
"和會議。 WebRTC、SIP 和其他通訊伺服器可以使用它在無法相互連接的各方之間建立通"
"訊。"
#: modules/coturn/__init__.py:30
#, python-brace-format
msgid ""
"It is not meant to be used directly by users. Servers such as <a "
"href=\"{ms_url}\">Matrix Synapse</a> or <a href=\"{e_url}\">ejabberd</a> "
"need to be configured with the details provided here."
msgstr ""
"這不是讓使用者直接使用的。伺服器如 <a href=\"{ms_url}\">Matrix Synapse</a> "
"或 <a href=\"{e_url}\">ejabberd</a> 都需要以在這裡提供的資料來設定。"
#: modules/coturn/__init__.py:52
msgid "Coturn"
msgstr "Coturn"
#: modules/coturn/__init__.py:53
msgid "VoIP Helper"
msgstr "VoIP 協助程式"
#: modules/coturn/forms.py:23
msgid "Invalid list of STUN/TURN Server URIs"
msgstr "STUN/TURN 伺服器 URI 列表無效"
#: modules/coturn/templates/coturn.html:15
msgid "Use the following URLs to configure your communication server:"
msgstr "使用下列 URL 來設定您的通訊伺服器︰"
#: modules/coturn/templates/coturn.html:24
msgid "Use the following shared authentication secret:"
msgstr "使用下列分享核對金鑰:"
#: modules/datetime/__init__.py:21
msgid ""
"Network time server is a program that maintains the system time in "
"synchronization with servers on the Internet."
msgstr "網路時刻伺服器是一種透過網際網路與伺服器同步以維護系統時刻的程式。"
#: modules/datetime/__init__.py:68
msgid "Date & Time"
msgstr "日期 &amp; 時刻"
#: modules/datetime/__init__.py:123
msgid "Time synchronized to NTP server"
msgstr "時刻與 NTP 伺服器同步"
#: modules/datetime/forms.py:18
msgid "Time Zone"
msgstr "時區"
#: modules/datetime/forms.py:19
msgid ""
"Set your time zone to get accurate timestamps. This will set the system-wide "
"time zone."
msgstr "設定您的時區以取得正確的時刻戳記。這會設定系統層級的時區。"
#: modules/datetime/forms.py:30
msgid "-- no time zone set --"
msgstr "-- 尚未設定時區 --"
#: modules/datetime/views.py:53
#, python-brace-format
msgid "Error setting time zone: {exception}"
msgstr "設定時區時發生錯誤︰{exception}"
#: modules/datetime/views.py:56
msgid "Time zone set"
msgstr "時區設定"
#: modules/deluge/__init__.py:21
msgid "Deluge is a BitTorrent client that features a Web UI."
msgstr "Deluge 是一個具有網頁使用者介面的 BitTorrent 客戶端。"
#: modules/deluge/__init__.py:22
msgid ""
"The default password is 'deluge', but you should log in and change it "
"immediately after enabling this service."
msgstr "預設的密碼是「deluge」但啟用這個服務後您應該登入並立即改變它。"
#: modules/deluge/__init__.py:41 modules/transmission/__init__.py:70
msgid "Download files using BitTorrent applications"
msgstr "使用 BitTorrent 應用程式下載檔案"
#: modules/deluge/__init__.py:45 modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
#: modules/deluge/__init__.py:47 modules/transmission/__init__.py:76
msgid "BitTorrent Web Client"
msgstr "BitTorrent 網頁客戶端"
#: modules/deluge/forms.py:20 modules/transmission/forms.py:20
msgid "Download directory"
msgstr "下載目錄"
#: modules/deluge/manifest.py:7
msgid "Bittorrent client written in Python/PyGTK"
msgstr "以 Python/PyGTK 寫的 Bittorrent 客戶端"
#: modules/diagnostics/__init__.py:28
msgid ""
"The system diagnostic test will run a number of checks on your system to "
"confirm that applications and services are working as expected."
msgstr "系統診斷測試將對您的系統進行多項檢查,以確認應用程序和服務是否按預期運行。"
#: modules/diagnostics/__init__.py:52 modules/diagnostics/__init__.py:237
msgid "Diagnostics"
msgstr "診斷"
#: modules/diagnostics/__init__.py:98
msgid "passed"
msgstr "通過"
#: modules/diagnostics/__init__.py:99 modules/networks/views.py:50
msgid "failed"
msgstr "失敗"
#: modules/diagnostics/__init__.py:100
msgid "error"
msgstr "錯誤"
#: modules/diagnostics/__init__.py:101
msgid "warning"
msgstr "警告"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
#: modules/diagnostics/__init__.py:203
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
#: modules/diagnostics/__init__.py:208
msgid "GiB"
msgstr "GiB"
#: modules/diagnostics/__init__.py:215
msgid "You should disable some apps to reduce memory usage."
msgstr "您應該停用一些應用程式以減少記憶體使用量。"
#: modules/diagnostics/__init__.py:220
msgid "You should not install any new apps on this system."
msgstr "您不應該在這個系統上安裝任何新的應用程式。"
#: modules/diagnostics/__init__.py:232
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
"系統記憶體不足: 使用了{percent_used}%,剩 "
"{memory_available}{memory_available_unit} 可用。{advice_message}"
#: modules/diagnostics/__init__.py:234
msgid "Low Memory"
msgstr "記憶體不足"
#: modules/diagnostics/__init__.py:265
msgid "Running diagnostics"
msgstr "正在進行診斷"
#: modules/diagnostics/__init__.py:308
#, no-python-format, python-brace-format
msgid "Found {issue_count} issues during routine tests."
msgstr "在例行測試中發現{issue_count}個問題。"
#: modules/diagnostics/__init__.py:309
msgid "Diagnostics results"
msgstr "診斷結果"
#: modules/diagnostics/__init__.py:314
msgid "Go to diagnostics results"
msgstr "前往診斷結果頁面"
#: modules/diagnostics/forms.py:11
msgid "Enable daily run"
msgstr "啟用每日運行"
#: modules/diagnostics/forms.py:12
msgid "When enabled, diagnostic checks will run once a day."
msgstr "啟用後,診斷檢查將每天運行一次。"
#: modules/diagnostics/templates/diagnostics.html:11
msgid "Diagnostics Run"
msgstr "執行診斷"
#: modules/diagnostics/templates/diagnostics.html:17
msgid "Run Diagnostics Now"
msgstr "立即執行診斷"
#: modules/diagnostics/templates/diagnostics.html:22
msgid "View Results"
msgstr "查看結果"
#: modules/diagnostics/templates/diagnostics_app.html:10
msgid "Diagnostic Results"
msgstr "診斷結果"
#: modules/diagnostics/templates/diagnostics_app.html:13
#, python-format
msgid "App: %(app_name)s"
msgstr "應用程式:%(app_name)s"
#: modules/diagnostics/templates/diagnostics_app.html:20
#: modules/diagnostics/templates/diagnostics_full.html:48
msgid "Try to repair"
msgstr "試著修復"
#: modules/diagnostics/templates/diagnostics_app.html:32
msgid "This app does not support diagnostics"
msgstr "此應用程式不支援診斷"
#: modules/diagnostics/templates/diagnostics_button.html:11
msgid "Run Diagnostics"
msgstr "執行診斷"
#: modules/diagnostics/templates/diagnostics_full.html:17
msgid "Re-run Diagnostics"
msgstr "重新執行診斷"
#: modules/diagnostics/templates/diagnostics_full.html:21
msgid "Diagnostics test is currently running"
msgstr "診斷測試目前正在運行"
#: modules/diagnostics/templates/diagnostics_full.html:34
msgid "Results"
msgstr "結果"
#: modules/diagnostics/templates/diagnostics_full.html:38
#, python-format
msgid ""
"\n"
" App: %(app_name)s\n"
" "
msgstr ""
"\n"
" 應用程式: %(app_name)s\n"
" "
#: modules/diagnostics/templates/diagnostics_results.html:11
msgid "Test"
msgstr "測試"
#: modules/diagnostics/templates/diagnostics_results.html:12
#: modules/dynamicdns/templates/dynamicdns.html:20
msgid "Result"
msgstr "結果"
#: modules/diagnostics/views.py:114
msgid "Diagnostic Test"
msgstr "診斷測試"
#: modules/diagnostics/views.py:144
#, python-brace-format
msgid "App {app_id} is not installed, cannot repair"
msgstr "應用程式{app_id}未安裝,無法修復"
#: modules/dynamicdns/__init__.py:28
#, python-brace-format
msgid ""
"If your Internet provider changes your IP address periodically (i.e. every "
"24h), it may be hard for others to find you on the Internet. This will "
"prevent others from finding services which are provided by this {box_name}."
msgstr ""
"如果您的網路服務供應商定期更改您的 IP 地址(即每 24 "
"小時一次),其他人可能很難在互聯網上找到您。這將阻止其他人找到由此 {box_name}"
" 提供的服務。"
#: modules/dynamicdns/__init__.py:32
msgid ""
"The solution is to assign a DNS name to your IP address and update the DNS "
"name every time your IP is changed by your Internet provider. Dynamic DNS "
"allows you to push your current public IP address to a <a href='http://"
"gnudip2.sourceforge.net/' target='_blank'> GnuDIP</a> server. Afterwards, "
"the server will assign your DNS name to the new IP, and if someone from the "
"Internet asks for your DNS name, they will get a response with your current "
"IP address."
msgstr ""
"解決方案是將 DNS 名稱分配給您的 IP 地址,並在您的網路服務供應商更改您的 IP "
"時更新 DNS 名稱。動態 DNS 允許您將當前的公共 IP 地址推送到一個 <a href=\"http"
"://gnudip2.sourceforge.net/\" target=\"_blank\">GnuDIP</a> 伺服器。之後,"
"伺服器將將您的 DNS 名稱分配給新的 IP如果有人從網路上詢問您的 DNS 名稱,"
"他們將收到包含您當前 IP 地址的回應。"
#: modules/dynamicdns/__init__.py:40
msgid ""
"If you are looking for a free dynamic DNS account, you may find a free "
"GnuDIP service at <a href='https://ddns.freedombox.org' target='_blank'>ddns."
"freedombox.org</a> or you may find free update URL based services at <a "
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org</a>."
msgstr ""
"如果您正在尋找免費的動態 DNS 帳戶,您可以在 <a href=\"https://ddns.freedombox"
".org\" target=\"_blank\">ddns.freedombox.org</a> 找到免費的 GnuDIP 服務,"
"或者您也可以在 <a href=\"http://freedns.afraid.org/\" target=\"_blank\""
">freedns.afraid.org</a> 找到基於更新 URL 的免費服務。"
#: modules/dynamicdns/__init__.py:61
msgid "Dynamic DNS Client"
msgstr "動態 DNS 客戶端"
#: modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "動態域名"
#: modules/dynamicdns/forms.py:18
msgid ""
"The Variables &lt;User&gt;, &lt;Pass&gt;, &lt;Ip&gt;, &lt;Domain&gt; may be "
"used within the URL. For details see the update URL templates of the example "
"providers."
msgstr ""
"URL 中可以使用變數 &lt;User&gt;、&lt;Pass&gt;、&lt;Ip&gt; 和 "
"&lt;Domain&gt;。有關詳細信息,請參閱示例提供者的更新 URL 模板。"
#: modules/dynamicdns/forms.py:22
msgid ""
"Please choose an update protocol according to your provider. If your "
"provider does not support the GnuDIP protocol or your provider is not listed "
"you may use the update URL of your provider."
msgstr "請根據您的供應商選擇一個更新協議。如果您的供應商不支持 GnuDIP "
"協議,或者您的供應商未列出,您可以使用您的供應商的更新 URL。"
#: modules/dynamicdns/forms.py:27
msgid ""
"Please do not enter a URL here (like \"https://example.com/\") but only the "
"hostname of the GnuDIP server (like \"example.com\")."
msgstr ""
"請不要在此處輸入 URL例如 \"https://example.com/\"),而只需輸入 GnuDIP "
"伺服器的主機名稱(例如 \"example.com\")。"
#: modules/dynamicdns/forms.py:31
#, python-brace-format
msgid "The public domain name you want to use to reach your {box_name}."
msgstr "使用您想要的公共域名,以便訪問您的 {box_name}。"
#: modules/dynamicdns/forms.py:34
msgid "Use this option if your provider uses self signed certificates."
msgstr "如果您的供應商使用自簽名證書,請使用此選項。"
#: modules/dynamicdns/forms.py:37
msgid ""
"If this option is selected, your username and password will be used for HTTP "
"basic authentication."
msgstr "如果選擇此選項,您的用戶名和密碼將用於 HTTP 基本驗證。"
#: modules/dynamicdns/forms.py:40
msgid "Leave this field empty if you want to keep your current password."
msgstr ""
#: modules/dynamicdns/forms.py:43
#, python-brace-format
msgid ""
"Optional Value. If your {box_name} is not connected directly to the Internet "
"(i.e. connected to a NAT router) this URL is used to determine the real IP "
"address. The URL should simply return the IP where the client comes from "
"(example: https://ddns.freedombox.org/ip/)."
msgstr ""
#: modules/dynamicdns/forms.py:51
msgid "The username that was used when the account was created."
msgstr ""
#: modules/dynamicdns/forms.py:54
msgid "GnuDIP"
msgstr ""
#: modules/dynamicdns/forms.py:57
msgid "Other update URL"
msgstr ""
#: modules/dynamicdns/forms.py:59
msgid "Service Type"
msgstr ""
#: modules/dynamicdns/forms.py:64
msgid "GnuDIP Server Address"
msgstr ""
#: modules/dynamicdns/forms.py:67
msgid "Invalid server name"
msgstr ""
#: modules/dynamicdns/forms.py:70
msgid "Update URL"
msgstr ""
#: modules/dynamicdns/forms.py:74
msgid "Accept all SSL certificates"
msgstr ""
#: modules/dynamicdns/forms.py:78
msgid "Use HTTP basic authentication"
msgstr ""
#: modules/dynamicdns/forms.py:88 modules/networks/forms.py:207
#: modules/users/forms.py:129
msgid "Username"
msgstr ""
#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:210
msgid "Show password"
msgstr ""
#: modules/dynamicdns/forms.py:99
msgid "URL to look up public IP"
msgstr ""
#: modules/dynamicdns/forms.py:104
msgid "Use IPv6 instead of IPv4"
msgstr ""
#: modules/dynamicdns/forms.py:123
msgid "This field is required."
msgstr ""
#: modules/dynamicdns/templates/dynamicdns.html:11
#: modules/ejabberd/templates/ejabberd.html:13
#: modules/firewall/templates/firewall.html:16
#: modules/firewall/templates/firewall.html:22
#: modules/letsencrypt/templates/letsencrypt.html:17
#: modules/matrixsynapse/templates/matrix-synapse.html:12
#: modules/networks/templates/connection_show.html:254
#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19
#: modules/upgrades/templates/upgrades_configure.html:14
#: modules/wireguard/templates/wireguard_show_client.html:48
#: modules/wireguard/templates/wireguard_show_server.html:47
msgid "Status"
msgstr ""
#: modules/dynamicdns/templates/dynamicdns.html:18
#: modules/email/templates/email.html:35
#: modules/letsencrypt/templates/letsencrypt.html:24
#: modules/mediawiki/forms.py:64
msgid "Domain"
msgstr ""
#: modules/dynamicdns/templates/dynamicdns.html:19
msgid "Last update"
msgstr ""
#: modules/dynamicdns/templates/dynamicdns.html:21
#, fuzzy
#| msgid "IP addresses"
msgid "IP Address"
msgstr "IP 地址"
#: modules/dynamicdns/templates/dynamicdns.html:32
#, fuzzy
#| msgid "Access"
msgid "Success"
msgstr "存取"
#: modules/dynamicdns/templates/dynamicdns.html:36
msgid "Failed"
msgstr ""
#: modules/dynamicdns/templates/dynamicdns.html:52
#, fuzzy
#| msgid "No libraries available."
msgid "No status available."
msgstr "無可用的圖書館。"
#: modules/dynamicdns/views.py:24 modules/dynamicdns/views.py:26
#, fuzzy
#| msgid "Connection refused"
msgid "Connection timed out"
msgstr "連線被拒絕"
#: modules/dynamicdns/views.py:25
msgid "Could not find server"
msgstr ""
#: modules/dynamicdns/views.py:27
msgid "Server refused connection"
msgstr ""
#: modules/dynamicdns/views.py:28
msgid "Already up-to-date"
msgstr ""
#: modules/ejabberd/__init__.py:29
msgid ""
"XMPP is an open and standardized communication protocol. Here you can run "
"and configure your XMPP server, called ejabberd."
msgstr ""
#: modules/ejabberd/__init__.py:32
#, python-brace-format
msgid ""
"To actually communicate, you can use the <a href=\"{jsxc_url}\">web client</"
"a> or any other <a href='https://xmpp.org/software/clients' "
"target='_blank'>XMPP client</a>. When enabled, ejabberd can be accessed by "
"any <a href=\"{users_url}\"> user with a {box_name} login</a>."
msgstr ""
#: modules/ejabberd/__init__.py:40
#, python-brace-format
msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the <a "
"href={coturn_url}>Coturn</a> app or configure an external server."
msgstr ""
#: modules/ejabberd/__init__.py:61
msgid "ejabberd"
msgstr ""
#: modules/ejabberd/__init__.py:62 modules/matrixsynapse/__init__.py:56
msgid "Chat Server"
msgstr ""
#: modules/ejabberd/forms.py:19
#, fuzzy
#| msgid "Domain Names"
msgid "Domain names"
msgstr "網域名稱"
#: modules/ejabberd/forms.py:21
msgid ""
"Domains to be used by ejabberd. Note that user accounts are unique for each "
"domain, and migrating users to a new domain name is not yet implemented."
msgstr ""
#: modules/ejabberd/forms.py:26
msgid "Enable Message Archive Management"
msgstr ""
#: modules/ejabberd/forms.py:28
#, python-brace-format
msgid ""
"If enabled, your {box_name} will store chat message histories. This allows "
"synchronization of conversations between multiple clients, and reading the "
"history of a multi-user chat room. It depends on the client settings whether "
"the histories are stored as plain text or encrypted."
msgstr ""
#: modules/ejabberd/forms.py:35 modules/matrixsynapse/forms.py:38
msgid "Automatically manage audio/video call setup"
msgstr ""
#: modules/ejabberd/forms.py:37
#, python-brace-format
msgid ""
"Configures the local <a href={coturn_url}>coturn</a> app as the STUN/TURN "
"server for ejabberd. Disable this if you want to use a different STUN/TURN "
"server."
msgstr ""
#: modules/ejabberd/forms.py:44 modules/matrixsynapse/forms.py:47
msgid "STUN/TURN Server URIs"
msgstr ""
#: modules/ejabberd/forms.py:46 modules/matrixsynapse/forms.py:49
msgid "List of public URIs of the STUN/TURN server, one on each line."
msgstr ""
#: modules/ejabberd/forms.py:50 modules/matrixsynapse/forms.py:53
msgid "Shared Authentication Secret"
msgstr ""
#: modules/ejabberd/forms.py:51 modules/matrixsynapse/forms.py:54
msgid "Shared secret used to compute passwords for the TURN server."
msgstr ""
#: modules/ejabberd/manifest.py:10
msgid "Conversations"
msgstr ""
#: modules/ejabberd/manifest.py:24
msgid "Xabber"
msgstr ""
#: modules/ejabberd/manifest.py:26
msgid ""
"Open source Jabber (XMPP) client with multi-account support and clean and "
"simple interface. "
msgstr ""
#: modules/ejabberd/manifest.py:41
msgid "Yaxim"
msgstr ""
#: modules/ejabberd/manifest.py:55
msgid "Monal - XMPP Chat"
msgstr ""
#: modules/ejabberd/manifest.py:64
msgid "Siskin IM"
msgstr ""
#: modules/ejabberd/manifest.py:73
msgid "Dino"
msgstr ""
#: modules/ejabberd/manifest.py:85
msgid "Gajim"
msgstr ""
#: modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to <b>%(domainname)s</b>. User IDs will look "
"like <i>username@%(domainname)s</i>. You can setup your domain on the system "
"<a href=\"%(index_url)s\">Configure</a> page."
msgstr ""
#: modules/email/__init__.py:27
msgid ""
"This is a complete email server solution using Postfix, Dovecot, and Rspamd. "
"Postfix sends and receives emails. Dovecot allows email clients to access "
"your mailbox using IMAP and POP3. Rspamd deals with spam."
msgstr ""
#: modules/email/__init__.py:31
msgid ""
"Email server currently does not work with many free domain services "
"including those provided by the FreedomBox Foundation. Many ISPs also "
"restrict outgoing email. Some lift the restriction after an explicit "
"request. See manual page for more information."
msgstr ""
#: modules/email/__init__.py:36
#, python-brace-format
msgid ""
"Each user on {box_name} gets an email address like user@mydomain.example. "
"They will also receive mail from all addresses that look like "
"user+foo@mydomain.example. Further, they can add aliases to their email "
"address. Necessary aliases such as \"postmaster\" are automatically created "
"pointing to the first admin user."
msgstr ""
#: modules/email/__init__.py:42
msgid ""
"<a href=\"/plinth/apps/roundcube/\">Roundcube app</a> provides web interface "
"for users to access email."
msgstr ""
#: modules/email/__init__.py:44
msgid ""
"During installation, any other email servers in the system will be "
"uninstalled."
msgstr ""
#: modules/email/__init__.py:63
msgid "Postfix/Dovecot"
msgstr ""
#: modules/email/__init__.py:65
#, fuzzy
#| msgid "Domain Name Server"
msgid "Email Server"
msgstr "域名服務器 DNS"
#: modules/email/__init__.py:85
#, fuzzy
#| msgid "Manage Libraries"
msgid "My Email Aliases"
msgstr "管理圖書館"
#: modules/email/__init__.py:86
#, fuzzy
#| msgid "Manage Libraries"
msgid "Manage Aliases for Mailbox"
msgstr "管理圖書館"
#: modules/email/forms.py:25
msgid "Primary domain"
msgstr ""
#: modules/email/forms.py:27
msgid ""
"Mails are received for all domains configured in the system. Among these, "
"select the most important one."
msgstr ""
#: modules/email/forms.py:35
msgid "New alias (without @domain)"
msgstr ""
#: modules/email/forms.py:42
msgid "Contains illegal characters"
msgstr ""
#: modules/email/forms.py:45
msgid "Must start and end with a-z or 0-9"
msgstr ""
#: modules/email/forms.py:49
msgid "Cannot be a number"
msgstr ""
#: modules/email/forms.py:59
#, fuzzy
#| msgid "Manage Libraries"
msgid "Aliases"
msgstr "管理圖書館"
#: modules/email/manifest.py:12 modules/roundcube/__init__.py:50
#: modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
#: modules/email/manifest.py:20 modules/radicale/manifest.py:36
msgid "Thunderbird"
msgstr ""
#: modules/email/manifest.py:37
msgid "K-9 Mail"
msgstr ""
#: modules/email/manifest.py:52
msgid "FairEmail"
msgstr ""
#: modules/email/templates/email-aliases.html:13
#: modules/email/templates/email.html:15
#, fuzzy
#| msgid "Manage Libraries"
msgid "Manage Aliases"
msgstr "管理圖書館"
#: modules/email/templates/email-aliases.html:16
msgid "You have no email aliases."
msgstr ""
#: modules/email/templates/email-aliases.html:28
#, fuzzy
#| msgid "Create a new backup"
msgid "Create a new email alias"
msgstr "建立一個新的備份檔"
#: modules/email/templates/email-aliases.html:34
msgid "Add"
msgstr ""
#: modules/email/templates/email.html:10
#, fuzzy
#| msgid "Manage Libraries"
msgid "Manage Spam"
msgstr "管理圖書館"
#: modules/email/templates/email.html:22
msgid "DNS Records"
msgstr ""
#: modules/email/templates/email.html:25
msgid ""
"The following DNS records must be added manually on your primary domain for "
"the mail server to work properly."
msgstr ""
#: modules/email/templates/email.html:36
msgid "TTL"
msgstr ""
#: modules/email/templates/email.html:37
msgid "Class"
msgstr ""
#: modules/email/templates/email.html:39
msgid "Priority"
msgstr ""
#: modules/email/templates/email.html:40
msgid "Weight"
msgstr ""
#: modules/email/templates/email.html:41
#: modules/minetest/templates/minetest.html:18
msgid "Port"
msgstr ""
#: modules/email/templates/email.html:42
msgid "Host/Target/Value"
msgstr ""
#: modules/firewall/__init__.py:25
#, python-brace-format
msgid ""
"Firewall is a security system that controls the incoming and outgoing "
"network traffic on your {box_name}. Keeping a firewall enabled and properly "
"configured reduces risk of security threat from the Internet."
msgstr ""
#: modules/firewall/__init__.py:61
msgid "Firewall"
msgstr ""
#: modules/firewall/__init__.py:273
msgid "Default zone is external"
msgstr ""
#: modules/firewall/__init__.py:283
msgid "Firewall backend is nftables"
msgstr ""
#: modules/firewall/__init__.py:297
msgid "Direct passthrough rules exist"
msgstr ""
#: modules/firewall/components.py:139
#, python-brace-format
msgid "Port {name} ({details}) available for internal networks"
msgstr ""
#: modules/firewall/components.py:154
#, python-brace-format
msgid "Port {name} ({details}) available for external networks"
msgstr ""
#: modules/firewall/components.py:160
#, python-brace-format
msgid "Port {name} ({details}) unavailable for external networks"
msgstr ""
#: modules/firewall/templates/firewall.html:21
msgid "Service/Port"
msgstr ""
#: modules/firewall/templates/firewall.html:40
#: modules/letsencrypt/templates/letsencrypt.html:69
#: modules/snapshot/forms.py:23 modules/snapshot/forms.py:29
msgid "Enabled"
msgstr ""
#: modules/firewall/templates/firewall.html:43
#: modules/letsencrypt/templates/letsencrypt.html:71
#: modules/snapshot/forms.py:23 modules/snapshot/forms.py:29
#: templates/cards.html:34
msgid "Disabled"
msgstr ""
#: modules/firewall/templates/firewall.html:58
msgid "Permitted"
msgstr ""
#: modules/firewall/templates/firewall.html:61
msgid "Permitted (internal only)"
msgstr ""
#: modules/firewall/templates/firewall.html:64
msgid "Permitted (external only)"
msgstr ""
#: modules/firewall/templates/firewall.html:67
msgid "Blocked"
msgstr ""
#: modules/firewall/templates/firewall.html:80
msgid ""
"The operation of the firewall is automatic. When you enable a service it is "
"also permitted in the firewall and when you disable a service it is also "
"disabled in the firewall."
msgstr ""
#: modules/firewall/templates/firewall.html:88
#: modules/networks/templates/networks_configuration.html:22
#: modules/storage/templates/storage.html:93
msgid "Advanced"
msgstr ""
#: modules/firewall/templates/firewall.html:90
msgid ""
"Advanced firewall operations such as opening custom ports are provided by "
"the <a href=\"/_cockpit/network/firewall\">Cockpit</a> app."
msgstr ""
#: modules/first_boot/forms.py:14
#, python-brace-format
msgid ""
"Enter the secret generated during FreedomBox installation. This secret can "
"also be obtained by running the command \"sudo cat /var/lib/plinth/firstboot-"
"wizard-secret\" on your {box_name}"
msgstr ""
#: modules/first_boot/forms.py:19
msgid "Firstboot Wizard Secret"
msgstr ""
#: modules/first_boot/templates/firstboot_complete.html:11
msgid "Setup Complete!"
msgstr ""
#: modules/first_boot/templates/firstboot_complete.html:14
#, python-format
msgid "Without any apps, your %(box_name)s cannot do very much."
msgstr ""
#: modules/first_boot/templates/firstboot_complete.html:21
msgid "Install Apps"
msgstr ""
#: modules/first_boot/templates/firstboot_complete.html:27
#, python-format
msgid ""
"You may want to check the <a href=\"%(networks_url)s\">network setup</a> and "
"modify it if necessary."
msgstr ""
#: modules/first_boot/templates/firstboot_welcome.html:29
msgid "Start Setup"
msgstr ""
#: modules/first_boot/views.py:50
msgid "Setup Complete"
msgstr ""
#: modules/gitweb/__init__.py:22
msgid ""
"Git is a distributed version-control system for tracking changes in source "
"code during software development. Gitweb provides a web interface to Git "
"repositories. You can browse history and content of source code, use search "
"to find relevant commits and code. You can also clone repositories and "
"upload code changes with a command-line Git client or with multiple "
"available graphical clients. And you can share your code with people around "
"the world."
msgstr ""
#: modules/gitweb/__init__.py:29
msgid ""
"To learn more on how to use Git visit <a href=\"https://git-scm.com/docs/"
"gittutorial\">Git tutorial</a>."
msgstr ""
#: modules/gitweb/__init__.py:45
msgid "Read-write access to Git repositories"
msgstr ""
#: modules/gitweb/__init__.py:48 modules/gitweb/manifest.py:11
msgid "Gitweb"
msgstr ""
#: modules/gitweb/__init__.py:49
msgid "Simple Git Hosting"
msgstr ""
#: modules/gitweb/forms.py:59
msgid "Invalid repository URL."
msgstr ""
#: modules/gitweb/forms.py:69
msgid "Invalid repository name."
msgstr ""
#: modules/gitweb/forms.py:77
msgid "Name of a new repository or URL to import an existing repository."
msgstr ""
#: modules/gitweb/forms.py:83
msgid "Description of the repository"
msgstr ""
#: modules/gitweb/forms.py:84 modules/gitweb/forms.py:88
msgid "Optional, for displaying on Gitweb."
msgstr ""
#: modules/gitweb/forms.py:86
msgid "Repository's owner name"
msgstr ""
#: modules/gitweb/forms.py:91
msgid "Private repository"
msgstr ""
#: modules/gitweb/forms.py:92
msgid "Allow only authorized users to access this repository."
msgstr ""
#: modules/gitweb/forms.py:113 modules/gitweb/forms.py:155
msgid "A repository with this name already exists."
msgstr ""
#: modules/gitweb/forms.py:126
msgid "Name of the repository"
msgstr ""
#: modules/gitweb/forms.py:130
msgid "An alpha-numeric string that uniquely identifies a repository."
msgstr ""
#: modules/gitweb/forms.py:134
msgid "Default branch"
msgstr ""
#: modules/gitweb/forms.py:135
msgid "Gitweb displays this as a default branch."
msgstr ""
#: modules/gitweb/manifest.py:19
msgid "Git"
msgstr ""
#: modules/gitweb/templates/gitweb_configure.html:13
msgid "Manage Repositories"
msgstr ""
#: modules/gitweb/templates/gitweb_configure.html:17
#: modules/gitweb/templates/gitweb_configure.html:19
msgid "Create repository"
msgstr ""
#: modules/gitweb/templates/gitweb_configure.html:26
msgid "No repositories available."
msgstr ""
#: modules/gitweb/templates/gitweb_configure.html:35
#, python-format
msgid "Go to repository %(repo.name)s"
msgstr ""
#: modules/gitweb/templates/gitweb_configure.html:42
msgid "Cloning…"
msgstr ""
#: modules/gitweb/templates/gitweb_configure.html:59
#, python-format
msgid "Delete repository %(repo.name)s"
msgstr ""
#: modules/gitweb/templates/gitweb_delete.html:12
#, python-format
msgid "Delete Git Repository <em>%(name)s</em>"
msgstr ""
#: modules/gitweb/templates/gitweb_delete.html:18
msgid "Delete this repository permanently?"
msgstr ""
#: modules/gitweb/views.py:46
msgid "Repository created."
msgstr ""
#: modules/gitweb/views.py:69
msgid "An error occurred while creating the repository."
msgstr ""
#: modules/gitweb/views.py:84
msgid "Repository edited."
msgstr ""
#: modules/gitweb/views.py:89
msgid "Edit repository"
msgstr ""
#: modules/help/__init__.py:33
msgid "Documentation"
msgstr "文件"
#: modules/help/__init__.py:37 templates/help-menu.html:20
#: templates/help-menu.html:21 templates/index.html:124
msgctxt "User guide"
msgid "Manual"
msgstr ""
#: modules/help/__init__.py:41 modules/help/templates/help_support.html:9
#: modules/help/views.py:90 templates/help-menu.html:27
#: templates/help-menu.html:28
msgid "Get Support"
msgstr ""
#: modules/help/__init__.py:45 modules/help/templates/help_feedback.html:9
#: modules/help/views.py:84 templates/help-menu.html:33
#: templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
#: modules/help/__init__.py:49 modules/help/templates/help_contribute.html:9
#: modules/help/views.py:73 templates/help-menu.html:39
#: templates/help-menu.html:40
msgid "Contribute"
msgstr ""
#: modules/help/__init__.py:53 templates/help-menu.html:46
#: templates/help-menu.html:47
msgid "About"
msgstr "關於"
#: modules/help/templates/help_about.html:17
#: modules/upgrades/templates/upgrades_configure.html:26
#, python-format
msgid "You are running %(os_release)s and %(box_name)s version %(version)s."
msgstr ""
#: modules/help/templates/help_about.html:23
#, python-format
msgid ""
"There is a new %(box_name)s version <a href=\"%(upgrades_url)s\">available</"
"a>."
msgstr ""
#: modules/help/templates/help_about.html:28
#: modules/upgrades/templates/upgrades_configure.html:37
#, python-format
msgid "%(box_name)s is up to date."
msgstr ""
#: modules/help/templates/help_about.html:35
#, python-format
msgid ""
"%(box_name)s is a community project to develop, design and promote personal "
"servers running free software for private, personal communications. It is a "
"networking appliance designed to allow interfacing with the rest of the "
"Internet under conditions of protected privacy and data security. It hosts "
"applications such as blog, wiki, website, social network, email, web proxy "
"and a Tor relay, on a device that can replace your Wi-Fi router, so that "
"your data stays with you."
msgstr ""
#: modules/help/templates/help_about.html:48
msgid ""
"We live in a world where our use of the network is mediated by those who "
"often do not have our best interests at heart. By building software that "
"does not rely on a central service, we can regain control and privacy. By "
"keeping our data in our homes, we gain useful legal protections over it. By "
"giving back power to the users over their networks and machines, we are "
"returning the Internet to its intended peer-to-peer architecture."
msgstr ""
#: modules/help/templates/help_about.html:61
#, python-format
msgid ""
"There are a number of projects working to realize a future of distributed "
"services; %(box_name)s aims to bring them all together in a convenient "
"package."
msgstr ""
#: modules/help/templates/help_about.html:69
#, python-format
msgid ""
"%(box_name)s is free software, licensed under the GNU Affero General Public "
"License. The source code is available online at the <a href=\"https://salsa."
"debian.org/freedombox-team/freedombox\"> %(box_name)s repository</a>. In "
"addition, the source code of any Debian package can be obtained from the <a "
"href=\"https://sources.debian.org/\">Debian Sources</a> site, or by running "
"\"apt source <i>package_name</i>\" in a terminal (using Cockpit or SSH)."
msgstr ""
#: modules/help/templates/help_about.html:82
#, python-format
msgid ""
"For more information about the %(box_name)s project, see the <a "
"href=\"https://wiki.debian.org/FreedomBox\">%(box_name)s Wiki</a>."
msgstr ""
#: modules/help/templates/help_about.html:91
msgid "Learn more"
msgstr ""
#: modules/help/templates/help_base.html:21
#: modules/help/templates/help_index.html:61
#, python-format
msgid "%(box_name)s Setup"
msgstr ""
#: modules/help/templates/help_contribute.html:12
msgid "The FreedomBox project welcomes contributions of all kinds."
msgstr ""
#: modules/help/templates/help_contribute.html:18
msgid ""
"You can contribute by writing code, testing and reporting bugs, discussing "
"new use cases and applications, designing logos and artwork, providing "
"support to your fellow users, translating FreedomBox and its applications "
"into your language, hosting hackathons or install fests, and by spreading "
"the word."
msgstr ""
#: modules/help/templates/help_contribute.html:28
msgid ""
"You can also help the project financially by <a href=\"https://"
"freedomboxfoundation.org/donate/\">donating</a> to the non-profit FreedomBox "
"Foundation. Founded in 2011, the FreedomBox Foundation is a non-profit "
"organization with 501(c)(3) status based in New York City that exists to "
"support FreedomBox. It provides technical infrastructure and legal services "
"for the project, pursues partnerships, and advocates for FreedomBox "
"throughout the world. The FreedomBox Foundation would not exist without its "
"supporters."
msgstr ""
#: modules/help/templates/help_contribute.html:42
#: modules/power/templates/power_restart.html:27
#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:57
msgid "Learn more..."
msgstr ""
#: modules/help/templates/help_contribute.html:46
msgid "How can I help?"
msgstr ""
#: modules/help/templates/help_contribute.html:48
msgid ""
"Below is a list of opportunities for contributing to Debian. It has been "
"filtered to only show packages that are installed on this system."
msgstr ""
#: modules/help/templates/help_contribute.html:59
msgid "Show issues"
msgstr ""
#: modules/help/templates/help_contribute.html:63
msgid "Packages that will be removed from Debian testing"
msgstr ""
#: modules/help/templates/help_contribute.html:69
#: modules/help/templates/help_contribute.html:85
msgid "source package:"
msgstr ""
#: modules/help/templates/help_contribute.html:80
msgid "Packages that are not in Debian testing"
msgstr ""
#: modules/help/templates/help_contribute.html:92
msgid "Good first issues for beginners"
msgstr ""
#: modules/help/templates/help_contribute.html:104
msgid "Issues for which the package maintainer has requested help"
msgstr ""
#: modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
msgstr ""
#: modules/help/templates/help_feedback.html:18
msgid ""
"Let us know about missing features, your favourite apps and how we can "
"improve them on our <a href=\"https://discuss.freedombox.org\" "
"target=\"_blank\"> discussion forum</a>."
msgstr ""
#: modules/help/templates/help_feedback.html:26
msgid ""
"If you find any bugs or issues, please use the <a href=\"https://salsa."
"debian.org/freedombox-team/freedombox/issues\" target=\"_blank\">issue "
"tracker</a> to let our developers know. To report, first check if the issue "
"is already reported and then use the \"New issue\" button."
msgstr ""
#: modules/help/templates/help_feedback.html:36
msgid "Thank you!"
msgstr ""
#: modules/help/templates/help_index.html:12 templates/help-menu.html:8
#: templates/help-menu.html:14
msgid "Help"
msgstr ""
#: modules/help/templates/help_index.html:16
#, python-format
msgid ""
"The <a href=\"%(manual_url)s\">%(box_name)s Manual</a> is the best place to "
"start for information regarding %(box_name)s."
msgstr ""
#: modules/help/templates/help_index.html:23
#, python-format
msgid ""
"<a href=\"http://wiki.debian.org/FreedomBox\" target=\"_blank\"> "
"%(box_name)s project wiki </a> contains further information."
msgstr ""
#: modules/help/templates/help_index.html:30
#, python-format
msgid ""
"To seek help from %(box_name)s community, queries may be posted on the <a "
"href=\"https://lists.alioth.debian.org/mailman/listinfo/freedombox-"
"discuss\"> mailing list</a>. The list archives also contain information "
"about problems faced by other users and possible solutions."
msgstr ""
#: modules/help/templates/help_index.html:40
#, python-format
msgid ""
"Many %(box_name)s contributors and users are also available on the irc.oftc."
"net IRC network. Join and request help on the <a href=\"https://webchat."
"oftc.net/?randomnick=1&channels=freedombox&prompt=1\"> #freedombox</a> "
"channel using the IRC web interface."
msgstr ""
#: modules/help/templates/help_manual.html:18
msgid "Download as PDF"
msgstr ""
#: modules/help/templates/help_support.html:12
#, python-format
msgid ""
"If you need help in getting something done or if you are facing problems "
"using %(box_name)s, you can ask for help from our community of users and "
"contributors."
msgstr ""
#: modules/help/templates/help_support.html:20
msgid ""
"Search for past discussions or post a new query on our <a href=\"https://"
"discuss.freedombox.org\" target=\"_blank\">discussion forum</a>."
msgstr ""
#: modules/help/templates/help_support.html:27
msgid ""
"You can also chat with us on our IRC and Matrix channels (bridged): <ul> "
"<li>#freedombox on irc.oftc.net</li> <li>#freedombox:matrix.org</li> </ul> "
"Or send an email to our <a href=\"mailto:freedombox-discuss@alioth-lists."
"debian.net\">mailing list</a>."
msgstr ""
#: modules/help/templates/statuslog.html:10
msgid "Status Log"
msgstr ""
#: modules/help/templates/statuslog.html:13
#, python-format
msgid ""
"These are the last %(num_lines)s lines of the status log for this web "
"interface. If you want to report a bug, please use the <a href=\"https://"
"salsa.debian.org/freedombox-team/freedombox/issues\">bug tracker</a> and "
"attach this status log to the bug report."
msgstr ""
#: modules/help/templates/statuslog.html:24
msgid ""
"Please remove any passwords or other personal information from the log "
"before submitting the bug report."
msgstr ""
#: modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
#: modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
#: modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
#: modules/i2p/__init__.py:21
msgid ""
"The Invisible Internet Project is an anonymous network layer intended to "
"protect communication from censorship and surveillance. I2P provides "
"anonymity by sending encrypted traffic through a volunteer-run network "
"distributed around the world."
msgstr ""
#: modules/i2p/__init__.py:25
msgid ""
"Find more information about I2P on their project <a href=\"https://geti2p."
"net\" target=\"_blank\">homepage</a>."
msgstr ""
#: modules/i2p/__init__.py:27
msgid ""
"The first visit to the provided web interface will initiate the "
"configuration process."
msgstr ""
#: modules/i2p/__init__.py:49
msgid "Manage I2P application"
msgstr ""
#: modules/i2p/__init__.py:52 modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
#: modules/i2p/__init__.py:53 modules/tor/__init__.py:63
#: modules/torproxy/__init__.py:57
msgid "Anonymity Network"
msgstr ""
#: modules/i2p/__init__.py:83
msgid "I2P Proxy"
msgstr ""
#: modules/i2p/templates/i2p.html:12
msgid "I2P Proxies and Tunnels"
msgstr ""
#: modules/i2p/templates/i2p.html:21 modules/i2p/templates/i2p.html:34
#: templates/clients.html:28
msgid "Launch"
msgstr ""
#: modules/i2p/templates/i2p.html:25
msgid "Anonymous Torrents"
msgstr ""
#: modules/i2p/views.py:16
msgid ""
"I2P lets you browse the Internet and hidden services (eepsites) anonymously. "
"For this, your browser, preferably the Tor Browser, needs to be configured "
"with a proxy."
msgstr ""
#: modules/i2p/views.py:19
msgid ""
"By default HTTP, HTTPS and IRC proxies are available. Additional proxies and "
"tunnels may be configured using the tunnel configuration interface."
msgstr ""
#: modules/i2p/views.py:24
msgid ""
"I2P provides an application to download files anonymously in a peer-to-peer "
"network. Download files by adding torrents or create a new torrent to share "
"a file."
msgstr ""
#: modules/ikiwiki/__init__.py:20
msgid ""
"ikiwiki is a simple wiki and blog application. It supports several "
"lightweight markup languages, including Markdown, and common blogging "
"functionality such as comments and RSS feeds."
msgstr ""
#: modules/ikiwiki/__init__.py:24
#, python-brace-format
msgid ""
"Only {box_name} users in the <b>admin</b> group can <i>create</i> and "
"<i>manage</i> blogs and wikis, but any user in the <b>wiki</b> group can "
"<i>edit</i> existing ones. In the <a href=\"{users_url}\">User "
"Configuration</a> you can change these permissions or add new users."
msgstr ""
#: modules/ikiwiki/__init__.py:45 modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
#: modules/ikiwiki/__init__.py:46
msgid "Wiki and Blog"
msgstr ""
#: modules/ikiwiki/__init__.py:80
msgid "View and edit wiki applications"
msgstr ""
#: modules/ikiwiki/forms.py:17
msgid "Admin Account Name"
msgstr ""
#: modules/ikiwiki/forms.py:19
msgid "Admin Account Password"
msgstr ""
#: modules/ikiwiki/templates/ikiwiki_configure.html:12
msgid "Manage Wikis and Blogs"
msgstr ""
#: modules/ikiwiki/templates/ikiwiki_configure.html:16
#: modules/ikiwiki/templates/ikiwiki_configure.html:18
#: modules/ikiwiki/templates/ikiwiki_create.html:10
msgid "Create Wiki or Blog"
msgstr ""
#: modules/ikiwiki/templates/ikiwiki_configure.html:25
msgid "No wikis or blogs available."
msgstr ""
#: modules/ikiwiki/templates/ikiwiki_configure.html:31
#, python-format
msgid "Go to site %(site)s"
msgstr ""
#: modules/ikiwiki/templates/ikiwiki_configure.html:38
#, python-format
msgid "Delete site %(site)s"
msgstr ""
#: modules/ikiwiki/templates/ikiwiki_create.html:18
#: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
#: modules/snapshot/templates/snapshot.html:16 templates/app.html:54
msgid "Update setup"
msgstr ""
#: modules/ikiwiki/templates/ikiwiki_delete.html:12
#, python-format
msgid "Delete Wiki or Blog <em>%(name)s</em>"
msgstr ""
#: modules/ikiwiki/templates/ikiwiki_delete.html:18
msgid ""
"This action will remove all the posts, pages and comments including revision "
"history. Delete this wiki or blog permanently?"
msgstr ""
#: modules/ikiwiki/views.py:69
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
#: modules/ikiwiki/views.py:72
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
#: modules/ikiwiki/views.py:79
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
#: modules/ikiwiki/views.py:82
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
#: modules/ikiwiki/views.py:98
#, python-brace-format
msgid "{title} deleted."
msgstr ""
#: modules/ikiwiki/views.py:102
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
#: modules/infinoted/__init__.py:20
msgid "infinoted is a server for Gobby, a collaborative text editor."
msgstr ""
#: modules/infinoted/__init__.py:22
#, python-brace-format
msgid ""
"To use it, <a href=\"https://gobby.github.io/\">download Gobby</a>, desktop "
"client and install it. Then start Gobby and select \"Connect to Server\" and "
"enter your {box_name}'s domain name."
msgstr ""
#: modules/infinoted/__init__.py:41
msgid "infinoted"
msgstr ""
#: modules/infinoted/__init__.py:42
msgid "Gobby Server"
msgstr ""
#: modules/infinoted/manifest.py:10
msgid "Gobby"
msgstr ""
#: modules/infinoted/manifest.py:12
msgid "Gobby is a collaborative text editor"
msgstr ""
#: modules/infinoted/manifest.py:15
#, python-brace-format
msgid ""
"Start Gobby and select \"Connect to Server\" and enter your {box_name}'s "
"domain name."
msgstr ""
#: modules/janus/__init__.py:23
msgid "Janus is a lightweight WebRTC server."
msgstr ""
#: modules/janus/__init__.py:24
msgid "A simple video conference room is included."
msgstr ""
#: modules/janus/__init__.py:26
#, python-brace-format
msgid "<a href=\"{coturn_url}\">Coturn</a> is required to use Janus."
msgstr ""
#: modules/janus/__init__.py:42
msgid "Janus"
msgstr ""
#: modules/janus/__init__.py:44
msgid "Video Room"
msgstr ""
#: modules/janus/manifest.py:7
msgid "Janus Video Room"
msgstr ""
#: modules/janus/templates/janus_video_room.html:205
#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:252
msgid "JavaScript license information"
msgstr ""
#: modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
#: modules/jsxc/__init__.py:38 modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
#: modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
#: modules/kiwix/__init__.py:21
msgid ""
"Kiwix is an offline reader for web content. It is software intended to make "
"Wikipedia available without using the internet, but it is potentially "
"suitable for all HTML content. Kiwix packages are in the ZIM file format."
msgstr ""
#: modules/kiwix/__init__.py:25
msgid ""
"Kiwix can host various kinds of content:\n"
" <ul>\n"
" <li>Offline versions of websites: Wikimedia projects, Stack Exchange</"
"li>\n"
" <li>Video content: Khan Academy, TED Talks, Crash Course</li>\n"
" <li>Educational materials: PHET, TED Ed, Vikidia</li>\n"
" <li>eBooks: Project Gutenberg</li>\n"
" <li>Magazines: Low-tech Magazine</li>\n"
" </ul>"
msgstr ""
#: modules/kiwix/__init__.py:33
#: modules/kiwix/templates/kiwix-add-package.html:14
msgid ""
"You can <a href=\"https://library.kiwix.org\" target=\"_blank\" "
"rel=\"noopener noreferrer\">download</a> content packages from the Kiwix "
"project or <a href=\"https://openzim.org/wiki/Build_your_ZIM_file\" "
"target=\"_blank\" rel=\"noopener noreferrer\">create</a> your own."
msgstr ""
#: modules/kiwix/__init__.py:53
msgid "Manage Kiwix content server"
msgstr ""
#: modules/kiwix/__init__.py:56 modules/kiwix/manifest.py:8
msgid "Kiwix"
msgstr ""
#: modules/kiwix/__init__.py:57
msgid "Offline Wikipedia"
msgstr ""
#: modules/kiwix/forms.py:23
#, fuzzy
#| msgid "Backup files have to be in .tar.gz format"
msgid "Content packages have to be in .zim format"
msgstr "備份檔已儲存為 .tar.gz 格式"
#: modules/kiwix/forms.py:25
#, python-brace-format
msgid ""
"Uploaded ZIM files will be stored under {kiwix_home}/content on your "
"{box_name}. If Kiwix fails to add the file, it will be deleted immediately "
"to save disk space."
msgstr ""
#: modules/kiwix/templates/kiwix-add-package.html:24
#, python-format
msgid "You have %(max_filesize)s of free disk space available."
msgstr ""
#: modules/kiwix/templates/kiwix-add-package.html:36
#, fuzzy
#| msgid "Upload file"
msgid "Upload ZIM file"
msgstr "上傳檔案"
#: modules/kiwix/templates/kiwix-delete-package.html:11
#, fuzzy, python-format
#| msgid "Delete calibre Library <em>%(name)s</em>"
msgid "Delete content package <em>%(name)s</em>"
msgstr "刪除 calibre 圖書館 <em>%(name)s</em>"
#: modules/kiwix/templates/kiwix-delete-package.html:17
msgid ""
"Delete this package permanently? You may add it back later if you have a "
"copy of the ZIM file."
msgstr ""
#: modules/kiwix/templates/kiwix.html:11
msgid "Manage Content Packages"
msgstr ""
#: modules/kiwix/templates/kiwix.html:15
msgid "Add a content package"
msgstr ""
#: modules/kiwix/templates/kiwix.html:17
msgid "Add Package"
msgstr ""
#: modules/kiwix/templates/kiwix.html:24
#, fuzzy
#| msgid "No libraries available."
msgid "No content packages available."
msgstr "無可用的圖書館。"
#: modules/kiwix/templates/kiwix.html:37
#, fuzzy, python-format
#| msgid "Delete Archive %(name)s"
msgid "Delete package %(title)s"
msgstr "刪除備份檔 %(name)s"
#: modules/kiwix/views.py:49
msgid "Content package added."
msgstr ""
#: modules/kiwix/views.py:54
msgid "Add a new content package"
msgstr ""
#: modules/kiwix/views.py:83
msgid "Failed to add content package."
msgstr ""
#: modules/letsencrypt/__init__.py:27
#, python-brace-format
msgid ""
"A digital certificate allows users of a web service to verify the identity "
"of the service and to securely communicate with it. {box_name} can "
"automatically obtain and setup digital certificates for each available "
"domain. It does so by proving itself to be the owner of a domain to Let's "
"Encrypt, a certificate authority (CA)."
msgstr ""
#: modules/letsencrypt/__init__.py:33
msgid ""
"Let's Encrypt is a free, automated, and open certificate authority, run for "
"the public's benefit by the Internet Security Research Group (ISRG). Please "
"read and agree with the <a href=\"https://letsencrypt.org/repository/"
"\">Let's Encrypt Subscriber Agreement</a> before using this service."
msgstr ""
#: modules/letsencrypt/__init__.py:60
msgid "Let's Encrypt"
msgstr ""
#: modules/letsencrypt/__init__.py:61
msgid "Certificates"
msgstr ""
#: modules/letsencrypt/templates/letsencrypt.html:25
msgid "Certificate Status"
msgstr ""
#: modules/letsencrypt/templates/letsencrypt.html:26
msgid "Website Security"
msgstr ""
#: modules/letsencrypt/templates/letsencrypt.html:27
#: modules/storage/templates/storage.html:28
msgid "Actions"
msgstr ""
#: modules/letsencrypt/templates/letsencrypt.html:37
#, python-format
msgid "Valid, expires on %(expiry_date)s"
msgstr ""
#: modules/letsencrypt/templates/letsencrypt.html:44
msgid "Revoked"
msgstr ""
#: modules/letsencrypt/templates/letsencrypt.html:48
#, python-format
msgid "Expired on %(expiry_date)s"
msgstr ""
#: modules/letsencrypt/templates/letsencrypt.html:52
msgid "Invalid test certificate"
msgstr ""
#: modules/letsencrypt/templates/letsencrypt.html:56
#, python-format
msgid "Invalid (%(reason)s)"
msgstr ""
#: modules/letsencrypt/templates/letsencrypt.html:63
msgid "No certificate"
msgstr ""
#: modules/letsencrypt/templates/letsencrypt.html:80
msgid "Re-obtain"
msgstr ""
#: modules/letsencrypt/templates/letsencrypt.html:93
msgid "Revoke"
msgstr ""
#: modules/letsencrypt/templates/letsencrypt.html:101
msgid "Obtain"
msgstr ""
#: modules/letsencrypt/templates/letsencrypt.html:112
#, python-format
msgid ""
"No domains have been configured. <a href=\"%(config_url)s\">Configure "
"domains</a> to be able to obtain certificates for them."
msgstr ""
#: modules/letsencrypt/views.py:40
#, python-brace-format
msgid ""
"Certificate successfully revoked for domain {domain}.This may take a few "
"moments to take effect."
msgstr ""
#: modules/letsencrypt/views.py:46
#, python-brace-format
msgid "Failed to revoke certificate for domain {domain}"
msgstr ""
#: modules/letsencrypt/views.py:59 modules/letsencrypt/views.py:77
#, python-brace-format
msgid "Certificate successfully obtained for domain {domain}"
msgstr ""
#: modules/letsencrypt/views.py:64 modules/letsencrypt/views.py:82
#, python-brace-format
msgid "Failed to obtain certificate for domain {domain}"
msgstr ""
#: modules/letsencrypt/views.py:95
#, python-brace-format
msgid "Certificate successfully deleted for domain {domain}"
msgstr ""
#: modules/letsencrypt/views.py:100
#, python-brace-format
msgid "Failed to delete certificate for domain {domain}"
msgstr ""
#: modules/matrixsynapse/__init__.py:26
msgid ""
"<a href=\"https://matrix.org/docs/guides/faq.html\">Matrix</a> is an new "
"ecosystem for open, federated instant messaging and VoIP. Synapse is a "
"server implementing the Matrix protocol. It provides chat groups, audio/"
"video calls, end-to-end encryption, multiple device synchronization and does "
"not require phone numbers to work. Users on a given Matrix server can "
"converse with users on all other Matrix servers via federation."
msgstr ""
#: modules/matrixsynapse/__init__.py:34
#, python-brace-format
msgid ""
"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
"<a href={coturn_url}>Coturn</a> app or configure an external server."
msgstr ""
#: modules/matrixsynapse/__init__.py:55
msgid "Matrix Synapse"
msgstr ""
#: modules/matrixsynapse/forms.py:15
msgid ""
"Disabled. This could lead to adversaries registering many spam accounts on "
"your server with automated scripts."
msgstr ""
#: modules/matrixsynapse/forms.py:18
msgid ""
"Require users creating a new account to use a registration token. A token "
"will be created automatically. Pass this token to your potential new users. "
"They will be asked for the token during registration. (recommended)"
msgstr ""
#: modules/matrixsynapse/forms.py:27
msgid "Enable Public Registration"
msgstr ""
#: modules/matrixsynapse/forms.py:28
msgid ""
"Enabling public registration means that anyone on the Internet can register "
"a new account on your Matrix server. Disable this if you only want existing "
"users to be able to use it."
msgstr ""
#: modules/matrixsynapse/forms.py:33
msgid "Verification method for registration"
msgstr ""
#: modules/matrixsynapse/forms.py:40
#, python-brace-format
msgid ""
"Configures the local <a href={coturn_url}>coturn</a> app as the STUN/TURN "
"server for Matrix Synapse. Disable this if you want to use a different STUN/"
"TURN server."
msgstr ""
#: modules/matrixsynapse/manifest.py:14
msgid "Element"
msgstr ""
#: modules/matrixsynapse/manifest.py:48
msgid "FluffyChat"
msgstr ""
#: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
#: modules/snapshot/templates/snapshot.html:13 templates/app.html:46
msgid "Configuration"
msgstr ""
#: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:18
msgid ""
"Matrix service needs to be configured for a domain. Users on other Matrix "
"servers will be able to reach users on this server using this domain name. "
"Matrix user IDs will look like <em>@username:domainname</em>."
msgstr ""
#: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:26
msgid ""
"\n"
" <strong>Warning!</strong> Changing the domain name after this step "
"will\n"
" require uninstalling and reinstalling the app which will wipe app's "
"data.\n"
" "
msgstr ""
#: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:35
#, python-format
msgid ""
"No domain(s) are available. <a href=\"%(config_url)s\">Configure</a> at "
"least one domain to be able to use Matrix Synapse."
msgstr ""
#: modules/matrixsynapse/templates/matrix-synapse.html:15
#, python-format
msgid ""
"The Matrix server domain is set to <em>%(domain_name)s</em>. User IDs will "
"look like <em>@username:%(domain_name)s</em>. Changing the domain name after "
"the initial setup is currently not supported."
msgstr ""
#: modules/matrixsynapse/templates/matrix-synapse.html:22
msgid ""
"New users can be registered from any client if public registration is "
"enabled."
msgstr ""
#: modules/matrixsynapse/templates/matrix-synapse.html:29
msgid ""
"New users must use one of the following tokens for verification during "
"account registration:"
msgstr ""
#: modules/matrixsynapse/templates/matrix-synapse.html:38
msgid "Registration Token"
msgstr ""
#: modules/matrixsynapse/templates/matrix-synapse.html:39
msgid "Uses Allowed"
msgstr ""
#: modules/matrixsynapse/templates/matrix-synapse.html:40
#, fuzzy
#| msgid "Server Administration"
msgid "Pending Registrations"
msgstr "伺服器管理"
#: modules/matrixsynapse/templates/matrix-synapse.html:41
msgid "Completed Registrations"
msgstr ""
#: modules/matrixsynapse/templates/matrix-synapse.html:42
msgid "Expiry Time"
msgstr ""
#: modules/matrixsynapse/templates/matrix-synapse.html:51
msgid "Unlimited"
msgstr ""
#: modules/matrixsynapse/templates/matrix-synapse.html:75
#, python-format
msgid ""
"The configured domain name is using a self-signed certificate. Federation "
"with other Matrix Synapse instances requires a valid TLS certificate. Please "
"go to <a href=\"%(letsencrypt_url)s\">Let's Encrypt</a> to obtain one."
msgstr ""
#: modules/matrixsynapse/views.py:140
msgid "Registration configuration cannot be updated when app is disabled."
msgstr ""
#: modules/mediawiki/__init__.py:21
msgid ""
"MediaWiki is the wiki engine that powers Wikipedia and other WikiMedia "
"projects. A wiki engine is a program for creating a collaboratively edited "
"website. You can use MediaWiki to host a wiki-like website, take notes or "
"collaborate with friends on projects."
msgstr ""
#: modules/mediawiki/__init__.py:25
msgid ""
"This MediaWiki instance comes with a randomly generated administrator "
"password. You can set a new password in the \"Configuration\" section and "
"log in using the \"admin\" account. You can then create more user accounts "
"from MediaWiki itself by going to the <a href=\"/mediawiki/index.php/Special:"
"CreateAccount\">Special:CreateAccount</a> page."
msgstr ""
#: modules/mediawiki/__init__.py:31
msgid ""
"Anyone with a link to this wiki can read it. Only users that are logged in "
"can make changes to the content."
msgstr ""
#: modules/mediawiki/__init__.py:51 modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
#: modules/mediawiki/__init__.py:52 templates/index.html:128
msgid "Wiki"
msgstr ""
#: modules/mediawiki/forms.py:56
msgid "Administrator Password"
msgstr ""
#: modules/mediawiki/forms.py:57
msgid ""
"Set a new password for MediaWiki's administrator account (admin). The "
"password cannot be a common one and the minimum required length is "
"<strong>10 characters</strong>. Leave this field blank to keep the current "
"password."
msgstr ""
#: modules/mediawiki/forms.py:65
msgid ""
"Used by MediaWiki to generate URLs that point to the wiki such as in footer, "
"feeds and emails. Examples: \"myfreedombox.example.org\" or \"example."
"onion\"."
msgstr ""
#: modules/mediawiki/forms.py:71
#, fuzzy
#| msgid "Service Discovery"
msgid "Site Name"
msgstr "發現服務"
#: modules/mediawiki/forms.py:72
msgid "Name of the site as displayed throughout the wiki."
msgstr ""
#: modules/mediawiki/forms.py:76
msgid "Enable public registrations"
msgstr ""
#: modules/mediawiki/forms.py:77
msgid ""
"If enabled, anyone on the internet will be able to create an account on your "
"MediaWiki instance."
msgstr ""
#: modules/mediawiki/forms.py:81
msgid "Enable private mode"
msgstr ""
#: modules/mediawiki/forms.py:82
msgid ""
"If enabled, access will be restricted. Only people who have accounts can "
"read/write to the wiki. Public registrations will also be disabled."
msgstr ""
#: modules/mediawiki/forms.py:87
msgid "Default Skin"
msgstr ""
#: modules/mediawiki/forms.py:88
msgid ""
"Choose a default skin for your MediaWiki installation. Users have the option "
"to select their preferred skin."
msgstr ""
#: modules/mediawiki/forms.py:93
#, fuzzy
#| msgid "Language"
msgid "Default Language"
msgstr "語言"
#: modules/mediawiki/forms.py:94
msgid ""
"Choose a default language for your MediaWiki installation. Users have the "
"option to select their preferred language."
msgstr ""
#: modules/mediawiki/views.py:43
msgid "Password updated"
msgstr ""
#: modules/mediawiki/views.py:48
msgid "Password update failed. Please choose a stronger password"
msgstr ""
#: modules/mediawiki/views.py:57
msgid "Public registrations enabled"
msgstr ""
#: modules/mediawiki/views.py:65
msgid "Public registrations disabled"
msgstr ""
#: modules/mediawiki/views.py:70
msgid "Private mode enabled"
msgstr ""
#: modules/mediawiki/views.py:76
msgid "Private mode disabled"
msgstr ""
#: modules/mediawiki/views.py:84
msgid "Default skin changed"
msgstr ""
#: modules/mediawiki/views.py:88
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "網域名稱設定"
#: modules/mediawiki/views.py:92
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
msgstr "網域名稱設定"
#: modules/mediawiki/views.py:96
msgid "Default language changed"
msgstr ""
#: modules/minetest/__init__.py:33
#, python-brace-format
msgid ""
"Minetest is a multiplayer infinite-world block sandbox. This module enables "
"the Minetest server to be run on this {box_name}, on the default port "
"(30000). To connect to the server, a <a href=\"http://www.minetest.net/"
"downloads/\">Minetest client</a> is needed."
msgstr ""
#: modules/minetest/__init__.py:56 modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
#: modules/minetest/__init__.py:57
msgid "Block Sandbox"
msgstr ""
#: modules/minetest/forms.py:13
msgid "Maximum number of players"
msgstr ""
#: modules/minetest/forms.py:15
msgid ""
"You can change the maximum number of players playing minetest at a single "
"instance of time."
msgstr ""
#: modules/minetest/forms.py:19
msgid "Enable creative mode"
msgstr ""
#: modules/minetest/forms.py:20
msgid ""
"Creative mode changes the rules of the game to make it more suitable for "
"creative gameplay, rather than challenging \"survival\" gameplay."
msgstr ""
#: modules/minetest/forms.py:25
msgid "Enable PVP"
msgstr ""
#: modules/minetest/forms.py:26
msgid "Enabling Player Vs Player will allow players to damage other players."
msgstr ""
#: modules/minetest/forms.py:30
msgid "Enable damage"
msgstr ""
#: modules/minetest/forms.py:31
msgid "When disabled, players cannot die or receive damage of any kind."
msgstr ""
#: modules/minetest/templates/minetest.html:17 modules/networks/forms.py:49
#: modules/networks/forms.py:85
msgid "Address"
msgstr ""
#: modules/minidlna/__init__.py:20
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
"(music, pictures, and video) to clients on a network. DLNA/UPnP is zero "
"configuration protocol and is compliant with any device passing the DLNA "
"Certification like portable media players, Smartphones, Televisions, and "
"gaming systems (such as PS3 and Xbox 360) or applications such as totem and "
"Kodi."
msgstr ""
#: modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
#: modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
#: modules/minidlna/forms.py:20
msgid "Media Files Directory"
msgstr ""
#: modules/minidlna/forms.py:21
msgid ""
"Directory that MiniDLNA Server will read for content. All sub-directories of "
"this will be also scanned for media files."
msgstr ""
#: modules/minidlna/manifest.py:10
msgid "vlc"
msgstr ""
#: modules/minidlna/manifest.py:48
msgid "kodi"
msgstr ""
#: modules/minidlna/manifest.py:81
msgid "yaacc"
msgstr ""
#: modules/minidlna/manifest.py:91
msgid "totem"
msgstr ""
#: modules/minidlna/views.py:33
msgid "Updated media directory"
msgstr ""
#: modules/mumble/__init__.py:25
msgid ""
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
"software."
msgstr ""
#: modules/mumble/__init__.py:27
msgid ""
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
"desktop and mobile devices are available."
msgstr ""
#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
#: modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
#: modules/mumble/forms.py:30
msgid "Set SuperUser Password"
msgstr ""
#: modules/mumble/forms.py:33
msgid ""
"Optional. Leave this field blank to keep the current password. SuperUser "
"password can be used to manage permissions in Mumble."
msgstr ""
#: modules/mumble/forms.py:40
msgid "Set a password to join the server"
msgstr ""
#: modules/mumble/forms.py:42
msgid ""
"Set a password that is required to join the server. Leave empty to use the "
"current password."
msgstr ""
#: modules/mumble/forms.py:48
msgid "Set the name for the root channel"
msgstr ""
#: modules/mumble/forms.py:52
msgid ""
"Set the name of the main channel of your mumble server. If the name was "
"never changed, the channel is named Root."
msgstr ""
#: modules/mumble/manifest.py:34
msgid "Mumblefly"
msgstr ""
#: modules/mumble/manifest.py:43
msgid "Mumla"
msgstr ""
#: modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
#: modules/mumble/views.py:48
#, fuzzy
#| msgid "Password added."
msgid "Join password changed"
msgstr "密碼已新增。"
#: modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
#: modules/names/__init__.py:22
#, python-brace-format
msgid ""
"Name Services provides an overview of the ways {box_name} can be reached "
"from the public Internet: domain name, Tor onion service, and Pagekite. For "
"each type of name, it is shown whether the HTTP, HTTPS, and SSH services are "
"enabled or disabled for incoming connections through the given name."
msgstr ""
#: modules/names/__init__.py:43
msgid "Name Services"
msgstr ""
#: modules/names/components.py:14
msgid "All"
msgstr ""
#: modules/names/components.py:18 modules/names/components.py:22
msgid "All web apps"
msgstr ""
#: modules/names/components.py:26
msgid "Secure Shell"
msgstr ""
#: modules/names/templates/names.html:17
msgid "Services"
msgstr ""
#: modules/networks/__init__.py:36
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
#: modules/networks/__init__.py:38
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
#: modules/networks/__init__.py:59
msgid "Networks"
msgstr ""
#: modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
#: modules/networks/forms.py:23
msgid "Connection Name"
msgstr ""
#: modules/networks/forms.py:25
msgid "Network Interface"
msgstr ""
#: modules/networks/forms.py:26
msgid "The network device that this connection should be bound to."
msgstr ""
#: modules/networks/forms.py:29
msgid "Firewall Zone"
msgstr ""
#: modules/networks/forms.py:30
msgid ""
"The firewall zone will control which services are available over this "
"interfaces. Select Internal only for trusted networks."
msgstr ""
#: modules/networks/forms.py:34
msgid "IPv4 Addressing Method"
msgstr ""
#: modules/networks/forms.py:36
msgid ""
"Automatic (DHCP): Configure automatically, use Internet connection from this "
"network"
msgstr ""
#: modules/networks/forms.py:39
msgid ""
"Shared: Act as a router, provide Internet connection to other devices on "
"this network"
msgstr ""
#: modules/networks/forms.py:42 modules/networks/forms.py:80
msgid ""
"Manual: Use manually specified parameters, use Internet connection from this "
"network"
msgstr ""
#: modules/networks/forms.py:45
msgid "Disabled: Do not configure this addressing method"
msgstr ""
#: modules/networks/forms.py:52
msgid "Netmask"
msgstr ""
#: modules/networks/forms.py:53
msgid ""
"Optional value. If left blank, a default netmask based on the address will "
"be used."
msgstr ""
#: modules/networks/forms.py:57 modules/networks/forms.py:92
#: modules/networks/templates/connection_show.html:193
#: modules/networks/templates/connection_show.html:234
msgid "Gateway"
msgstr ""
#: modules/networks/forms.py:57 modules/networks/forms.py:92
msgid "Optional value."
msgstr ""
#: modules/networks/forms.py:60 modules/networks/forms.py:95
msgid "DNS Server"
msgstr ""
#: modules/networks/forms.py:61
msgid ""
"Optional value. If this value is given and IPv4 addressing method is "
"\"Automatic\", the DNS Servers provided by a DHCP server will be ignored."
msgstr ""
#: modules/networks/forms.py:66 modules/networks/forms.py:101
msgid "Second DNS Server"
msgstr ""
#: modules/networks/forms.py:67
msgid ""
"Optional value. If this value is given and IPv4 Addressing Method is "
"\"Automatic\", the DNS Servers provided by a DHCP server will be ignored."
msgstr ""
#: modules/networks/forms.py:72
msgid "IPv6 Addressing Method"
msgstr ""
#: modules/networks/forms.py:74
msgid ""
"Automatic: Configure automatically, use Internet connection from this network"
msgstr ""
#: modules/networks/forms.py:77
msgid ""
"Automatic (DHCP only): Configure automatically, use Internet connection from "
"this network"
msgstr ""
#: modules/networks/forms.py:82
msgid "Ignore: Ignore this addressing method"
msgstr ""
#: modules/networks/forms.py:87
msgid "Prefix"
msgstr ""
#: modules/networks/forms.py:88
msgid "Value between 1 and 128."
msgstr ""
#: modules/networks/forms.py:96
msgid ""
"Optional value. If this value is given and IPv6 addressing method is "
"\"Automatic\", the DNS Servers provided by a DHCP server will be ignored."
msgstr ""
#: modules/networks/forms.py:102
msgid ""
"Optional value. If this value is given and IPv6 Addressing Method is "
"\"Automatic\", the DNS Servers provided by a DHCP server will be ignored."
msgstr ""
#: modules/networks/forms.py:115
msgid "-- select --"
msgstr ""
#: modules/networks/forms.py:242
#: modules/networks/templates/connection_show.html:135
msgid "SSID"
msgstr ""
#: modules/networks/forms.py:243
msgid "The visible name of the network."
msgstr ""
#: modules/networks/forms.py:245
#: modules/networks/templates/connection_show.html:148
msgid "Mode"
msgstr ""
#: modules/networks/forms.py:245
msgid "Infrastructure"
msgstr ""
#: modules/networks/forms.py:246
msgid "Access Point"
msgstr ""
#: modules/networks/forms.py:247
msgid "Ad-hoc"
msgstr ""
#: modules/networks/forms.py:249
msgid "Frequency Band"
msgstr ""
#: modules/networks/forms.py:249
msgid "Automatic"
msgstr ""
#: modules/networks/forms.py:250
msgid "A (5 GHz)"
msgstr ""
#: modules/networks/forms.py:251
msgid "B/G (2.4 GHz)"
msgstr ""
#: modules/networks/forms.py:253
#: modules/networks/templates/connection_show.html:162
msgid "Channel"
msgstr ""
#: modules/networks/forms.py:254
msgid ""
"Optional value. Wireless channel in the selected frequency band to restrict "
"to. Blank or 0 value means automatic selection."
msgstr ""
#: modules/networks/forms.py:259
msgid "BSSID"
msgstr ""
#: modules/networks/forms.py:260
msgid ""
"Optional value. Unique identifier for the access point. When connecting to "
"an access point, connect only if the BSSID of the access point matches the "
"one provided. Example: 00:11:22:aa:bb:cc."
msgstr ""
#: modules/networks/forms.py:266
msgid "Authentication Mode"
msgstr ""
#: modules/networks/forms.py:267
msgid ""
"Select WPA if the wireless network is secured and requires clients to have "
"the password to connect."
msgstr ""
#: modules/networks/forms.py:269
msgid "WPA"
msgstr ""
#: modules/networks/forms.py:269
msgid "Open"
msgstr ""
#: modules/networks/forms.py:305
#, python-brace-format
msgid "Specify how your {box_name} is connected to your network"
msgstr ""
#: modules/networks/forms.py:312
#, python-brace-format
msgid ""
"Connected to a router <p class=\"help-block\">Your {box_name} gets its "
"Internet connection from your router via Wi-Fi or Ethernet cable. This is a "
"typical home setup.</p>"
msgstr ""
#: modules/networks/forms.py:319
#, python-brace-format
msgid ""
"{box_name} is your router <p class=\"help-block\">Your {box_name} has "
"multiple network interfaces such as multiple Ethernet ports or a Wi-Fi "
"adapter. {box_name} is directly connected to the Internet and all your "
"devices connect to {box_name} for their Internet connectivity.</p>"
msgstr ""
#: modules/networks/forms.py:328
#, python-brace-format
msgid ""
"Directly connected to the Internet <p class=\"help-block\">Your Internet "
"connection is directly attached to your {box_name} and there are no other "
"devices on the network. This can happen on community or cloud setups.</p>"
msgstr ""
#: modules/networks/forms.py:347
msgid "Choose your internet connection type"
msgstr ""
#: modules/networks/forms.py:351
msgid ""
"I have a public IP address that may change over time<p class=\"help-"
"block\">This means that devices on the Internet can reach you when you are "
"connected to the Internet. Every time you connect to the Internet with your "
"Internet Service Provider (ISP), you may get a different IP address, "
"especially after some offline time. Many ISPs offer this type of "
"connectivity. If you have a public IP address but are unsure if it changes "
"over time or not, it is safer to choose this option.</p>"
msgstr ""
#: modules/networks/forms.py:363
#, python-brace-format
msgid ""
"I have a public IP address that does not change over time (recommended)<p "
"class=\"help-block\">This means that devices on the Internet can reach you "
"when you are connected to the Internet. Every time you connect to the "
"Internet with your Internet Service Provider (ISP), you always get the same "
"IP address. This is the most trouble-free setup for many {box_name} services "
"but very few ISPs offer this. You may be able to get this service from your "
"ISP by making an additional payment.</p>"
msgstr ""
#: modules/networks/forms.py:376
#, python-brace-format
msgid ""
"I dont have a public IP address<p class=\"help-block\">This means that "
"devices on the Internet <b>can not</b> reach you when you are connected to "
"the Internet. Every time you connect to the Internet with your Internet "
"Service Provider (ISP), you get an IP address that is only relevant for "
"local networks. Many ISPs offer this type of connectivity. This is the most "
"troublesome situation for hosting services at home. {box_name} provides many "
"workaround solutions but each solution has some limitations.</p>"
msgstr ""
#: modules/networks/forms.py:389
msgid ""
"I do not know the type of connection my ISP provides <p class=\"help-"
"block\">You will be suggested the most conservative actions.</p>"
msgstr ""
#: modules/networks/forms.py:406
msgid "Preferred router configuration"
msgstr ""
#: modules/networks/forms.py:411
#, python-brace-format
msgid ""
"Use DMZ feature to forward all traffic (recommended) <p class=\"help-"
"block\">Most routers provide a configuration setting called DMZ. This will "
"allow the router to forward all incoming traffic from the Internet to a "
"single IP address such as the {box_name}'s IP address. First remember to "
"configure a static local IP address for your {box_name} in your router's "
"configuration.</p>"
msgstr ""
#: modules/networks/forms.py:423
#, python-brace-format
msgid ""
"Forward specific traffic as needed by each application <p class=\"help-"
"block\">You may alternatively choose to forward only specific traffic to "
"your {box_name}. This is ideal if you have other servers like {box_name} in "
"your network or if your router does not support DMZ feature. All "
"applications that provide a web interface need you to forward traffic from "
"ports 80 and 443 to work. Each of the other applications will suggest which "
"port(s) need to be forwarded for that application to work.</p>"
msgstr ""
#: modules/networks/forms.py:437
msgid ""
"Router is currently unconfigured <p class=\"help-block\">Choose this if you "
"have not configured or are unable to configure the router currently and wish "
"to be reminded later. Some of the other configuration steps may fail.</p>"
msgstr ""
#: modules/networks/templates/connection_show.html:24
#, python-format
msgid ""
"This is the primary connection that %(box_name)s relies on for Internet "
"connectivity. Altering it may render your %(box_name)s unreachable. Ensure "
"that you have other means to access %(box_name)s before altering this "
"connection."
msgstr ""
#: modules/networks/templates/connection_show.html:36
msgid "Edit connection"
msgstr ""
#: modules/networks/templates/connection_show.html:36
#: modules/wireguard/templates/wireguard_show_client.html:72
#: modules/wireguard/templates/wireguard_show_server.html:73
#: templates/base.html:159 templates/base.html:160
msgid "Edit"
msgstr ""
#: modules/networks/templates/connection_show.html:43
#: modules/networks/templates/connections_list.html:61
msgid "Deactivate"
msgstr ""
#: modules/networks/templates/connection_show.html:50
#: modules/networks/templates/connections_list.html:69
msgid "Activate"
msgstr ""
#: modules/networks/templates/connection_show.html:56
msgid "Delete connection"
msgstr ""
#: modules/networks/templates/connection_show.html:59
#: modules/networks/templates/connections_diagram.html:19
#: modules/networks/templates/connections_diagram.html:22
#: modules/networks/templates/connections_diagram.html:51
#: modules/networks/templates/connections_diagram.html:73
msgid "Connection"
msgstr ""
#: modules/networks/templates/connection_show.html:64
msgid "Primary connection"
msgstr ""
#: modules/networks/templates/connection_show.html:66
#: modules/networks/templates/connection_show.html:208
#: modules/networks/templates/connection_show.html:249
msgid "yes"
msgstr ""
#: modules/networks/templates/connection_show.html:77
#: modules/storage/templates/storage.html:23
msgid "Device"
msgstr ""
#: modules/networks/templates/connection_show.html:81
msgid "State"
msgstr ""
#: modules/networks/templates/connection_show.html:86
msgid "State reason"
msgstr ""
#: modules/networks/templates/connection_show.html:95
msgid "MAC address"
msgstr ""
#: modules/networks/templates/connection_show.html:99
msgid "Interface"
msgstr ""
#: modules/networks/templates/connection_show.html:103
#: modules/snapshot/templates/snapshot_delete_selected.html:19
#: modules/snapshot/templates/snapshot_manage.html:29
#: modules/snapshot/templates/snapshot_rollback.html:27
msgid "Description"
msgstr ""
#: modules/networks/templates/connection_show.html:109
msgid "Physical Link"
msgstr ""
#: modules/networks/templates/connection_show.html:114
msgid "Link state"
msgstr ""
#: modules/networks/templates/connection_show.html:117
msgid "cable is connected"
msgstr ""
#: modules/networks/templates/connection_show.html:120
msgid "please check cable"
msgstr ""
#: modules/networks/templates/connection_show.html:124
#: modules/networks/templates/connection_show.html:140
msgid "Speed"
msgstr ""
#: modules/networks/templates/connection_show.html:126
#, python-format
msgid "%(ethernet_speed)s Mbit/s"
msgstr ""
#: modules/networks/templates/connection_show.html:142
#, python-format
msgid "%(wireless_bitrate)s Mbit/s"
msgstr ""
#: modules/networks/templates/connection_show.html:154
msgid "Signal strength"
msgstr ""
#: modules/networks/templates/connection_show.html:170
msgid "IPv4"
msgstr ""
#: modules/networks/templates/connection_show.html:175
#: modules/networks/templates/connection_show.html:218
#: modules/shadowsocks/forms.py:36 modules/shadowsocksserver/forms.py:42
msgid "Method"
msgstr ""
#: modules/networks/templates/connection_show.html:184
#: modules/networks/templates/connection_show.html:225
msgid "IP address"
msgstr ""
#: modules/networks/templates/connection_show.html:200
#: modules/networks/templates/connection_show.html:241
msgid "DNS server"
msgstr ""
#: modules/networks/templates/connection_show.html:207
#: modules/networks/templates/connection_show.html:248
#: modules/storage/forms.py:132
msgid "Default"
msgstr ""
#: modules/networks/templates/connection_show.html:213
msgid "IPv6"
msgstr ""
#: modules/networks/templates/connection_show.html:256
msgid "This connection is not active."
msgstr ""
#: modules/networks/templates/connection_show.html:264
#: modules/networks/templates/connection_show.html:284
#: modules/networks/templates/connection_show.html:303
msgid "Firewall zone"
msgstr ""
#: modules/networks/templates/connection_show.html:273
msgid ""
"This interface should be connected to a local network/machine. If you "
"connect this interface to a public network, services meant to be available "
"only internally will become available externally. This is a security risk."
msgstr ""
#: modules/networks/templates/connection_show.html:293
#: modules/networks/templates/connection_show.html:316
msgid ""
"This interface should receive your Internet connection. If you connect it to "
"a local network/machine, many services meant to available only internally "
"will not be available."
msgstr ""
#: modules/networks/templates/connection_show.html:305
#: modules/networks/templates/connections_diagram.html:24 network.py:24
msgid "External"
msgstr ""
#: modules/networks/templates/connection_show.html:312
#, python-format
msgid ""
"This interface is not maintained by %(box_name)s. For security, it is "
"automatically assigned to the external zone."
msgstr ""
#: modules/networks/templates/connections_create.html:19
msgid "Create Connection"
msgstr ""
#: modules/networks/templates/connections_delete.html:11
#: modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
#: modules/networks/templates/connections_delete.html:14
#, python-format
msgid "Delete connection <strong>%(name)s</strong> permanently?"
msgstr ""
#: modules/networks/templates/connections_diagram.html:11
msgid "Internet"
msgstr ""
#: modules/networks/templates/connections_diagram.html:16
#: modules/networks/templates/connections_diagram.html:48
msgid "Spacing"
msgstr ""
#: modules/networks/templates/connections_diagram.html:29
#: modules/networks/templates/connections_diagram.html:59
#: modules/networks/views.py:100 network.py:27
msgid "Ethernet"
msgstr ""
#: modules/networks/templates/connections_diagram.html:32
#: modules/networks/templates/connections_diagram.html:62
#: modules/networks/views.py:101 network.py:28
msgid "Wi-Fi"
msgstr ""
#: modules/networks/templates/connections_diagram.html:35
#: modules/networks/templates/connections_diagram.html:65
#: modules/networks/templates/connections_list.html:43
#, python-format
msgid "Show connection %(name)s"
msgstr ""
#: modules/networks/templates/connections_diagram.html:53 network.py:24
msgid "Internal"
msgstr ""
#: modules/networks/templates/connections_diagram.html:77
msgid "Computer"
msgstr ""
#: modules/networks/templates/connections_edit.html:20
#: modules/networks/views.py:239 modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
#: modules/networks/templates/connections_list.html:8
msgid "Connections"
msgstr ""
#: modules/networks/templates/connections_list.html:12
#: modules/networks/templates/connections_list.html:14
#: modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: modules/networks/templates/connections_list.html:17
#: modules/networks/templates/connections_list.html:19
#: modules/networks/views.py:396
#: modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
#: modules/networks/templates/connections_list.html:31
msgid "Active"
msgstr ""
#: modules/networks/templates/connections_list.html:35
msgid "Inactive"
msgstr ""
#: modules/networks/templates/connections_list.html:77
#, python-format
msgid "Delete connection %(name)s"
msgstr ""
#: modules/networks/templates/connections_type_select.html:19
msgid "Create..."
msgstr ""
#: modules/networks/templates/internet_connectivity_content.html:10
msgid "What Type Of Internet Connection Do You Have?"
msgstr ""
#: modules/networks/templates/internet_connectivity_content.html:16
msgid ""
"Select an option that best describes the type of Internet connection. This "
"information is used only to guide you with further setup."
msgstr ""
#: modules/networks/templates/internet_connectivity_firstboot.html:19
#: modules/networks/templates/network_topology_firstboot.html:19
#: modules/networks/templates/router_configuration_firstboot.html:19
#: modules/users/templates/users_firstboot.html:63
msgid "Skip this step"
msgstr ""
#: modules/networks/templates/internet_connectivity_firstboot.html:21
#: modules/networks/templates/network_topology_firstboot.html:21
#: modules/networks/templates/router_configuration_firstboot.html:21
#: modules/upgrades/templates/backports-firstboot.html:45
#: modules/upgrades/templates/update-firstboot-progress.html:35
#: modules/upgrades/templates/update-firstboot-progress.html:38
#: modules/upgrades/templates/update-firstboot.html:33
msgid "Next"
msgstr ""
#: modules/networks/templates/internet_connectivity_main.html:9
msgid "Your Internet Connection Type"
msgstr ""
#: modules/networks/templates/internet_connectivity_main.html:14
msgid ""
"The following best describes the type of Internet connection provided by "
"your ISP. This information is only used to suggest you necessary "
"configuration actions."
msgstr ""
#: modules/networks/templates/internet_connectivity_main.html:23
msgid "My ISP provides a public IP address that does not change over time."
msgstr ""
#: modules/networks/templates/internet_connectivity_main.html:27
msgid "My ISP provides a public IP address that may change over time."
msgstr ""
#: modules/networks/templates/internet_connectivity_main.html:31
msgid "My ISP does not provide a public IP address."
msgstr ""
#: modules/networks/templates/internet_connectivity_main.html:35
msgid "I do not know the type of connection my ISP provides."
msgstr ""
#: modules/networks/templates/internet_connectivity_main.html:41
#: modules/networks/templates/network_topology_main.html:41
msgid "Update..."
msgstr ""
#: modules/networks/templates/internet_connectivity_type.html:18
#: modules/networks/templates/network_topology_update.html:18
#: modules/networks/templates/router_configuration_update.html:19
#: modules/pagekite/templates/pagekite_custom_services.html:28
#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19
msgid "Submit"
msgstr "送出"
#: modules/networks/templates/network_topology_content.html:10
#, python-format
msgid "How is Your %(box_name)s Connected to the Internet?"
msgstr ""
#: modules/networks/templates/network_topology_content.html:16
#, python-format
msgid ""
"Select an option that best describes how your %(box_name)s is connected in "
"your network. This information is used to guide you with further setup. It "
"can be changed later."
msgstr ""
#: modules/networks/templates/network_topology_main.html:9
#, python-format
msgid "%(box_name)s Internet Connectivity"
msgstr ""
#: modules/networks/templates/network_topology_main.html:15
#, python-format
msgid ""
"The following best describes how your %(box_name)s is connected in your "
"network. This information is used only to suggest necessary configuration "
"actions."
msgstr ""
#: modules/networks/templates/network_topology_main.html:24
#, python-format
msgid ""
"Your %(box_name)s gets its Internet connection from your router via Wi-Fi or "
"Ethernet cable. This is a typical home setup."
msgstr ""
#: modules/networks/templates/network_topology_main.html:29
#, python-format
msgid ""
"Your %(box_name)s is directly connected to the Internet and all your devices "
"connect to %(box_name)s for their Internet connectivity."
msgstr ""
#: modules/networks/templates/network_topology_main.html:34
#, python-format
msgid ""
"Your Internet connection is directly attached to your %(box_name)s and there "
"are no other devices on the network."
msgstr ""
#: modules/networks/templates/networks_configuration.html:24
msgid ""
"Advanced networking operations such as bonding, bridging and VLAN management "
"are provided by the <a href=\"/_cockpit/network\">Cockpit</a> app."
msgstr ""
#: modules/networks/templates/router_configuration_content.html:10
#, python-format
msgid "Setup %(box_name)s Behind a Router"
msgstr ""
#: modules/networks/templates/router_configuration_content.html:16
#, python-format
msgid ""
"Your %(box_name)s gets its internet connection from your router via Wi-Fi or "
"Ethernet cable. This is a typical home setup."
msgstr ""
#: modules/networks/templates/router_configuration_content.html:23
#, python-format
msgid ""
"With this setup, any device on the internet trying to reach your "
"%(box_name)s will have to go through your router. The router will need to be "
"configured to forward all traffic it receives so that %(box_name)s provides "
"the services."
msgstr ""
#: modules/networks/templates/router_configuration_content.html:32
msgid ""
"If you don't have control over your router, choose not to configure it. To "
"see options to overcome this limitation, choose 'I dont have a public IP "
"address' option in <a href=\"/plinth/sys/networks/internet-connection-type/"
"\">Internet connection type selection</a>."
msgstr ""
#: modules/networks/templates/router_configuration_content.html:39
msgid "Choose How You Wish to Configure Your Router"
msgstr ""
#: modules/networks/templates/router_configuration_content.html:42
msgid ""
"You will need to login to your router's administration console provided by "
"the router. This may look like one of the following:"
msgstr ""
#: modules/networks/templates/router_configuration_content.html:54
msgid ""
"The username and password is configured by you when you first setup the "
"router. For many routers, this information is printed at the back of the "
"router. If you don't remember the credentials or the IP address of the "
"router, you may decide to reset it and set it up freshly. Lookup your router "
"model number and search online for the router's manual. This will provide "
"full instructions on how to perform this task."
msgstr ""
#: modules/networks/views.py:28
msgid "disabled"
msgstr ""
#: modules/networks/views.py:29
msgid "automatic"
msgstr ""
#: modules/networks/views.py:30
msgid "manual"
msgstr ""
#: modules/networks/views.py:31
msgid "shared"
msgstr ""
#: modules/networks/views.py:32
msgid "link-local"
msgstr ""
#: modules/networks/views.py:38 modules/networks/views.py:99
#: modules/networks/views.py:110
msgid "unknown"
msgstr ""
#: modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
#: modules/networks/views.py:40
msgid "unavailable"
msgstr ""
#: modules/networks/views.py:41
msgid "disconnected"
msgstr ""
#: modules/networks/views.py:42
msgid "preparing"
msgstr ""
#: modules/networks/views.py:43
msgid "connecting"
msgstr ""
#: modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
#: modules/networks/views.py:45
msgid "requesting address"
msgstr ""
#: modules/networks/views.py:46
msgid "checking"
msgstr ""
#: modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
#: modules/networks/views.py:48
msgid "activated"
msgstr ""
#: modules/networks/views.py:49
msgid "deactivating"
msgstr ""
#: modules/networks/views.py:57
msgid "no reason"
msgstr ""
#: modules/networks/views.py:59
msgid "unknown error"
msgstr ""
#: modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
#: modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
#: modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
#: modules/networks/views.py:67
msgid "secrets required"
msgstr ""
#: modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
#: modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
#: modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
#: modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
#: modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
#: modules/networks/views.py:79
msgid "device was removed"
msgstr ""
#: modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
#: modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
#: modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
#: modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
#: modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
#: modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
#: modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
#: modules/networks/views.py:102
msgid "generic"
msgstr ""
#: modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
#: modules/networks/views.py:104 modules/wireguard/__init__.py:47
#: modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
#: modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
#: modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
#: modules/networks/views.py:113
msgid "access point"
msgstr ""
#: modules/networks/views.py:114
msgid "mesh point"
msgstr ""
#: modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
#: modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
#: modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
#: modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
#: modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
#: modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
#: modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
#: modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
#: modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
#: modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
#: modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
#: modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
#: modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
#: modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
#: modules/networks/views.py:504 modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
#: modules/nextcloud/__init__.py:25
msgid ""
"Nextcloud is a self-hosted productivity platform which provides private and "
"secure functions for file sharing, collaborative work, and more. Nextcloud "
"includes the Nextcloud server, client applications for desktop computers, "
"and mobile clients. The Nextcloud server provides a well integrated web "
"interface."
msgstr ""
#: modules/nextcloud/__init__.py:30
msgid "All users of FreedomBox can use Nextcloud. To perform administrative "
msgstr ""
#: modules/nextcloud/__init__.py:34
#, python-brace-format
msgid ""
"Please note that Nextcloud is installed and run inside a container provided "
"by the Nextcloud community. Security, quality, privacy and legal reviews are "
"done by the upstream project and not by Debian/{box_name}. Updates are "
"performed following an independent cycle."
msgstr ""
#: modules/nextcloud/__init__.py:40
msgid "This app is experimental."
msgstr ""
#: modules/nextcloud/__init__.py:58 modules/nextcloud/manifest.py:11
#: modules/nextcloud/manifest.py:18
msgid "Nextcloud"
msgstr ""
#: modules/nextcloud/__init__.py:60
msgid "File Storage & Collaboration"
msgstr ""
#: modules/nextcloud/forms.py:19
#, fuzzy
#| msgid "Hostname set"
msgid "Not set"
msgstr "主機名稱設定"
#: modules/nextcloud/forms.py:26
#, fuzzy
#| msgid "Invalid domain name"
msgid "Override domain"
msgstr "無效的網域名稱"
#: modules/nextcloud/forms.py:27
msgid ""
"Set to the domain or IP address that Nextcloud should be forced to generate "
"URLs with. Should not be needed if a valid domain is used to access "
"Nextcloud. Examples: \"myfreedombox.example.org\" or \"example.onion\"."
msgstr ""
#: modules/nextcloud/forms.py:33
#, fuzzy
#| msgid "Server Administration"
msgid "Administrator password"
msgstr "伺服器管理"
#: modules/nextcloud/forms.py:34
msgid ""
"Optional. Set a new password for Nextcloud's administrator account "
"(nextcloud-admin). The password cannot be a common one and the minimum "
"required length is <strong>10 characters</strong>. Leave this field blank to "
"keep the current password."
msgstr ""
#: modules/nextcloud/forms.py:41
msgid "Default phone region"
msgstr ""
#: modules/nextcloud/forms.py:42
msgid ""
"The default phone region is required to validate phone numbers in the "
"profile settings without a country code."
msgstr ""
#: modules/nextcloud/views.py:53
msgid "Password update failed. Please choose a stronger password."
msgstr ""
#: modules/openvpn/__init__.py:20
#, python-brace-format
msgid ""
"Virtual Private Network (VPN) is a technique for securely connecting two "
"devices in order to access resources of a private network. While you are "
"away from home, you can connect to your {box_name} in order to join your "
"home network and access private/internal services provided by {box_name}. "
"You can also access the rest of the Internet via {box_name} for added "
"security and anonymity."
msgstr ""
#: modules/openvpn/__init__.py:43
msgid "Connect to VPN services"
msgstr ""
#: modules/openvpn/__init__.py:46 modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
#: modules/openvpn/__init__.py:47 modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
#: modules/openvpn/__init__.py:58
#, python-brace-format
msgid ""
"<a class=\"btn btn-primary btn-sm\" href=\"{link}\">Download Profile</a>"
msgstr ""
#: modules/openvpn/manifest.py:52
msgid "Tunnelblick"
msgstr ""
#: modules/openvpn/templates/openvpn.html:12
msgid "Profile"
msgstr ""
#: modules/openvpn/templates/openvpn.html:15
#, python-format
msgid ""
"To connect to %(box_name)s's VPN, you need to download a profile and feed it "
"to an OpenVPN client on your mobile or desktop machine. OpenVPN Clients are "
"available for most platforms. Click \"Learn more...\" above for recommended "
"clients and instructions on how to configure them."
msgstr ""
#: modules/openvpn/templates/openvpn.html:24
#, python-format
msgid "Profile is specific to each user of %(box_name)s. Keep it a secret."
msgstr ""
#: modules/openvpn/templates/openvpn.html:34
msgid "Download my profile"
msgstr ""
#: modules/pagekite/__init__.py:19
#, python-brace-format
msgid ""
"PageKite is a system for exposing {box_name} services when you don't have a "
"direct connection to the Internet. You only need this if your {box_name} "
"services are unreachable from the rest of the Internet. This includes the "
"following situations:"
msgstr ""
#: modules/pagekite/__init__.py:24
#, python-brace-format
msgid "{box_name} is behind a restricted firewall."
msgstr ""
#: modules/pagekite/__init__.py:27
#, python-brace-format
msgid "{box_name} is connected to a (wireless) router which you don't control."
msgstr ""
#: modules/pagekite/__init__.py:29
msgid ""
"Your ISP does not provide you an external IP address and instead provides "
"Internet connection through NAT."
msgstr ""
#: modules/pagekite/__init__.py:31
msgid ""
"Your ISP does not provide you a static IP address and your IP address "
"changes every time you connect to Internet."
msgstr ""
#: modules/pagekite/__init__.py:33
msgid "Your ISP limits incoming connections."
msgstr ""
#: modules/pagekite/__init__.py:35
#, python-brace-format
msgid ""
"PageKite works around NAT, firewalls and IP address limitations by using a "
"combination of tunnels and reverse proxies. You can use any pagekite service "
"provider, for example <a href=\"https://pagekite.net\">pagekite.net</a>. In "
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
#: modules/pagekite/__init__.py:59
msgid "PageKite"
msgstr ""
#: modules/pagekite/__init__.py:60
msgid "Public Visibility"
msgstr ""
#: modules/pagekite/__init__.py:74
msgid "PageKite Domain"
msgstr ""
#: modules/pagekite/forms.py:30
msgid "Server domain"
msgstr ""
#: modules/pagekite/forms.py:32
msgid ""
"Select your pagekite server. Set \"pagekite.net\" to use the default "
"pagekite.net server."
msgstr ""
#: modules/pagekite/forms.py:35 modules/shadowsocks/forms.py:27
msgid "Server port"
msgstr ""
#: modules/pagekite/forms.py:36
msgid "Port of your pagekite server (default: 80)"
msgstr ""
#: modules/pagekite/forms.py:38
msgid "Kite name"
msgstr ""
#: modules/pagekite/forms.py:39
msgid "Example: mybox.pagekite.me"
msgstr ""
#: modules/pagekite/forms.py:41
msgid "Invalid kite name"
msgstr ""
#: modules/pagekite/forms.py:45
msgid "Kite secret"
msgstr ""
#: modules/pagekite/forms.py:46
msgid ""
"A secret associated with the kite or the default secret for your account if "
"no secret is set on the kite."
msgstr ""
#: modules/pagekite/forms.py:85
msgid "protocol"
msgstr ""
#: modules/pagekite/forms.py:88
msgid "external (frontend) port"
msgstr ""
#: modules/pagekite/forms.py:91
msgid "internal (freedombox) port"
msgstr ""
#: modules/pagekite/forms.py:92
msgid "Enable Subdomains"
msgstr ""
#: modules/pagekite/forms.py:127
msgid "Deleted custom service"
msgstr ""
#: modules/pagekite/forms.py:161
msgid "This service is already available as a standard service."
msgstr ""
#: modules/pagekite/forms.py:169
msgid "Added custom service"
msgstr ""
#: modules/pagekite/forms.py:172
msgid "This service already exists"
msgstr ""
#: modules/pagekite/templates/pagekite_configure.html:13
msgid "Custom Services"
msgstr ""
#: modules/pagekite/templates/pagekite_configure.html:17
#: modules/pagekite/templates/pagekite_configure.html:19
msgid "Add Custom Service"
msgstr ""
#: modules/pagekite/templates/pagekite_configure.html:35
#, python-format
msgid "connected to %(backend_host)s:%(backend_port)s"
msgstr ""
#: modules/pagekite/templates/pagekite_configure.html:47
msgid "Delete this service"
msgstr ""
#: modules/pagekite/templates/pagekite_custom_services.html:11
#: modules/pagekite/views.py:34
msgid "Add custom PageKite service"
msgstr ""
#: modules/pagekite/templates/pagekite_custom_services.html:14
msgid ""
"<b>Warning:</b><br>Your PageKite frontend server may not support all the "
"protocol/port combinations that you are able to define here. For example, "
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
#: modules/pagekite/utils.py:45
msgid "Web Server (HTTP)"
msgstr ""
#: modules/pagekite/utils.py:47
#, python-brace-format
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
msgstr ""
#: modules/pagekite/utils.py:59
msgid "Web Server (HTTPS)"
msgstr ""
#: modules/pagekite/utils.py:61
#, python-brace-format
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
msgstr ""
#: modules/pagekite/utils.py:73
msgid "Secure Shell (SSH)"
msgstr ""
#: modules/pagekite/utils.py:75
msgid ""
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
"SshOverPageKite/\">instructions</a>"
msgstr ""
#: modules/performance/__init__.py:16 modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
#: modules/performance/__init__.py:19
msgid ""
"Performance app allows you to collect, store and view information about "
"utilization of the hardware. This can give you basic insights into usage "
"patterns and whether the hardware is overloaded by users and services."
msgstr ""
#: modules/performance/__init__.py:23
msgid ""
"Performance metrics are collected by Performance Co-Pilot and can be viewed "
"using the Cockpit app."
msgstr ""
#: modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
#: modules/power/__init__.py:14
msgid "Restart or shut down the system."
msgstr ""
#: modules/power/__init__.py:31
msgid "Power"
msgstr ""
#: modules/power/templates/power.html:13
msgid ""
"Currently an installation or upgrade is running. Consider waiting until it's "
"finished before shutting down or restarting."
msgstr ""
#: modules/power/templates/power.html:22 templates/base.html:174
#: templates/base.html:175
msgid "Restart"
msgstr ""
#: modules/power/templates/power.html:25
msgid "Shut Down"
msgstr ""
#: modules/power/templates/power_restart.html:17
msgid ""
"Are you sure you want to restart? You will not be able to access this web "
"interface for a few minutes until the system is restarted."
msgstr ""
#: modules/power/templates/power_restart.html:34
msgid ""
"Currently an installation or upgrade is running. Consider waiting until it's "
"finished before restarting."
msgstr ""
#: modules/power/templates/power_restart.html:48
#: modules/power/templates/power_restart.html:51
msgid "Restart Now"
msgstr ""
#: modules/power/templates/power_shutdown.html:17
msgid ""
"Are you sure you want to shut down? You will not be able to access this web "
"interface after shut down."
msgstr ""
#: modules/power/templates/power_shutdown.html:33
msgid ""
"Currently an installation or upgrade is running. Consider waiting until it's "
"finished before shutting down."
msgstr ""
#: modules/power/templates/power_shutdown.html:47
#: modules/power/templates/power_shutdown.html:50
msgid "Shut Down Now"
msgstr ""
#: modules/privacy/__init__.py:15
msgid "Manage system-wide privacy settings."
msgstr ""
#: modules/privacy/__init__.py:32 modules/privacy/__init__.py:70
msgid "Privacy"
msgstr ""
#: modules/privacy/__init__.py:68
msgid "Please update privacy settings to match your preferences."
msgstr ""
#: modules/privacy/__init__.py:73
msgid "Review privacy setting"
msgstr ""
#: modules/privacy/forms.py:15
msgid "Periodically submit a list of apps used (suggested)"
msgstr ""
#: modules/privacy/forms.py:17
#, python-brace-format
msgid ""
"Help Debian/{box_name} developers by participating in the Popularity Contest "
"package survey program. When enabled, a list of apps used on this system "
"will be anonymously submitted to Debian every week. Statistics for the data "
"collected are publicly available at <a href=\"https://popcon.debian.org/\" "
"target=\"_blank\">popcon.debian.org</a>. Submission happens over the Tor "
"network for additional anonymity if Tor app is enabled."
msgstr ""
#: modules/privoxy/__init__.py:25
msgid ""
"Privoxy is a non-caching web proxy with advanced filtering capabilities for "
"enhancing privacy, modifying web page data and HTTP headers, controlling "
"access, and removing ads and other obnoxious Internet junk. "
msgstr ""
#: modules/privoxy/__init__.py:30
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
"{box_name} hostname (or IP address) with port 8118. Only connections from "
"local network IP addresses are permitted. While using Privoxy, you can see "
"its configuration details and documentation at <a href=\"http://config."
"privoxy.org\">http://config.privoxy.org/</a> or <a href=\"http://p."
"p\">http://p.p</a>."
msgstr ""
#: modules/privoxy/__init__.py:53
msgid "Privoxy"
msgstr ""
#: modules/privoxy/__init__.py:54
msgid "Web Proxy"
msgstr ""
#: modules/privoxy/__init__.py:118
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
#: modules/quassel/__init__.py:24
#, python-brace-format
msgid ""
"Quassel is an IRC application that is split into two parts, a \"core\" and a "
"\"client\". This allows the core to remain connected to IRC servers, and to "
"continue receiving messages, even when the client is disconnected. "
"{box_name} can run the Quassel core service keeping you always online and "
"one or more Quassel clients from a desktop or a mobile can be used to "
"connect and disconnect from it."
msgstr ""
#: modules/quassel/__init__.py:31
msgid ""
"You can connect to your Quassel core on the default Quassel port 4242. "
"Clients to connect to Quassel from your <a href=\"http://quassel-irc.org/"
"downloads\">desktop</a> and <a href=\"http://quasseldroid.iskrembilen.com/"
"\">mobile</a> devices are available."
msgstr ""
#: modules/quassel/__init__.py:51 modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
#: modules/quassel/__init__.py:52
msgid "IRC Client"
msgstr ""
#: modules/quassel/manifest.py:33
msgid "Quasseldroid"
msgstr ""
#: modules/radicale/__init__.py:25
#, python-brace-format
msgid ""
"Radicale is a CalDAV and CardDAV server. It allows synchronization and "
"sharing of scheduling and contact data. To use Radicale, a <a href=\"https://"
"radicale.org/master.html#documentation/supported-clients\">supported client "
"application</a> is needed. Radicale can be accessed by any user with a "
"{box_name} login."
msgstr ""
#: modules/radicale/__init__.py:31
msgid ""
"Radicale provides a basic web interface, which only supports creating new "
"calendars and addressbooks. It does not support adding events or contacts, "
"which must be done using a separate client."
msgstr ""
#: modules/radicale/__init__.py:53 modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
#: modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
#: modules/radicale/forms.py:14
msgid "Only the owner of a calendar/addressbook can view or make changes."
msgstr ""
#: modules/radicale/forms.py:18
#, python-brace-format
msgid ""
"Any user with a {box_name} login can view any calendar/addressbook, but only "
"the owner can make changes."
msgstr ""
#: modules/radicale/forms.py:23
#, python-brace-format
msgid ""
"Any user with a {box_name} login can view or make changes to any calendar/"
"addressbook."
msgstr ""
#: modules/radicale/forms.py:30
msgid "Access rights"
msgstr ""
#: modules/radicale/manifest.py:9
msgid "DAVx5"
msgstr ""
#: modules/radicale/manifest.py:11
msgid ""
"Enter the URL of the Radicale server (e.g. https://<your.freedombox."
"address>) and your user name. DAVx5 will show all existing calendars and "
"address books and you can create new."
msgstr ""
#: modules/radicale/manifest.py:28
msgid "GNOME Calendar"
msgstr ""
#: modules/radicale/manifest.py:56
msgid "Evolution"
msgstr ""
#: modules/radicale/manifest.py:58
msgid ""
"Evolution is a personal information management application that provides "
"integrated mail, calendaring and address book functionality."
msgstr ""
#: modules/radicale/manifest.py:62
msgid ""
"In Evolution add a new calendar and address book respectively with WebDAV. "
"Enter the URL of the Radicale server (e.g. https://<your.freedombox."
"address>) and your user name. Clicking on the search button will list the "
"existing calendars and address books."
msgstr ""
#: modules/radicale/views.py:32
msgid "Access rights configuration updated"
msgstr ""
#: modules/roundcube/__init__.py:19
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
"from an email client, including MIME support, address book, folder "
"manipulation, message searching and spell checking."
msgstr ""
#: modules/roundcube/__init__.py:24
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
"email provider, like <code>imap.example.com</code>. For IMAP over SSL "
"(recommended), fill the server field like <code>imaps://imap.example.com</"
"code>."
msgstr ""
#: modules/roundcube/__init__.py:29
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be <code>imaps://imap.gmail.com</code>. "
"Note that you will also need to enable \"Less secure apps\" in your Google "
"account settings (<a href=\"https://www.google.com/settings/security/"
"lesssecureapps\">https://www.google.com/settings/security/lesssecureapps</"
"a>)."
msgstr ""
#: modules/roundcube/__init__.py:51
msgid "Email Client"
msgstr ""
#: modules/roundcube/forms.py:16
msgid "Use only the local mail server"
msgstr ""
#: modules/roundcube/forms.py:17
#, python-brace-format
msgid ""
"When enabled, users can only read and send mails via this {box_name}. If you "
"wish to use Roundcube with an external mail account, such as Gmail, you must "
"uncheck this option. When unchecked, a text entry field is added to the "
"login page so the user can specify to which account they wish to connect."
msgstr ""
#: modules/rssbridge/__init__.py:21
msgid ""
"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
"Generated feeds can be consumed by any feed reader."
msgstr ""
#: modules/rssbridge/__init__.py:24
#, fuzzy, python-brace-format
#| msgid ""
#| "It can be accessed by <a href=\"{users_url}\">any user</a> on {box_name} "
#| "belonging to the admin group."
msgid ""
"When enabled, RSS-Bridge can be accessed by <a href=\"{users_url}\">any "
"user</a> belonging to the feed-reader group."
msgstr ""
"它可以由 {box_name} 上屬於 admin 群組的 <a href=\"{users_url}\">任何使用者</"
"a>存取。"
#: modules/rssbridge/__init__.py:28
#, python-brace-format
msgid ""
"You can use RSS-Bridge with <a href=\"{ttrss_url}\">Tiny Tiny RSS</a> to "
"follow various websites. When adding a feed, enable authentication and use "
"your {box_name} credentials."
msgstr ""
#: modules/rssbridge/__init__.py:46 modules/ttrss/__init__.py:47
msgid "Read and subscribe to news feeds"
msgstr ""
#: modules/rssbridge/__init__.py:49 modules/rssbridge/manifest.py:10
msgid "RSS-Bridge"
msgstr ""
#: modules/rssbridge/__init__.py:50
msgid "RSS Feed Generator"
msgstr ""
#: modules/rssbridge/forms.py:12 modules/searx/forms.py:17
msgid "Allow Public Access"
msgstr ""
#: modules/rssbridge/forms.py:13 modules/searx/forms.py:18
msgid "Allow this application to be used by anyone who can reach it."
msgstr ""
#: modules/samba/__init__.py:23
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
"computers in your local network."
msgstr ""
#: modules/samba/__init__.py:26
#, python-brace-format
msgid ""
"After installation, you can choose which disks to use for sharing. Enabled "
"shares are accessible in the file manager on your computer at location \\"
"\\{hostname} (on Windows) or smb://{hostname}.local (on Linux and Mac). "
"There are three types of shares you can choose from: "
msgstr ""
#: modules/samba/__init__.py:31
msgid "Open share - accessible to everyone in your local network."
msgstr ""
#: modules/samba/__init__.py:32
msgid ""
"Group share - accessible only to FreedomBox users who are in the freedombox-"
"share group."
msgstr ""
#: modules/samba/__init__.py:34
msgid ""
"Home share - every user in the freedombox-share group can have their own "
"private space."
msgstr ""
#: modules/samba/__init__.py:50
msgid "Access to the private shares"
msgstr ""
#: modules/samba/__init__.py:53
msgid "Samba"
msgstr ""
#: modules/samba/__init__.py:54
msgid "Network File Storage"
msgstr ""
#: modules/samba/manifest.py:14
msgid "Android Samba Client"
msgstr ""
#: modules/samba/manifest.py:27
msgid "Ghost Commander"
msgstr ""
#: modules/samba/manifest.py:36
msgid "Ghost Commander - Samba plugin"
msgstr ""
#: modules/samba/manifest.py:45
msgid "VLC media player"
msgstr ""
#: modules/samba/manifest.py:64
msgid "GNOME Files"
msgstr ""
#: modules/samba/manifest.py:76
msgid "Dolphin"
msgstr ""
#: modules/samba/templates/samba.html:20
msgid "Shares"
msgstr ""
#: modules/samba/templates/samba.html:22
msgid ""
"Note: Only specially created directories will be shared on selected disks, "
"not the whole disk."
msgstr ""
#: modules/samba/templates/samba.html:84
msgid "VFAT partitions are not supported"
msgstr ""
#: modules/samba/templates/samba.html:112
#, python-format
msgid ""
"You can find additional information about disks on the <a "
"href=\"%(storage_url)s\">storage</a> module page and configure access to the "
"shares on the <a href=\"%(users_url)s\">users</a> module page."
msgstr ""
#: modules/samba/templates/samba.html:120
msgid "Users who can currently access group and home shares"
msgstr ""
#: modules/samba/templates/samba.html:124
msgid ""
"Users needing to re-enter their password on the password change page to "
"access group and home shares"
msgstr ""
#: modules/samba/templates/samba.html:129
msgid "Unavailable Shares"
msgstr ""
#: modules/samba/templates/samba.html:131
msgid ""
"Shares that are configured but the disk is not available. If the disk is "
"plugged back in, sharing will be automatically enabled."
msgstr ""
#: modules/samba/templates/samba.html:140
msgid "Share name"
msgstr ""
#: modules/samba/templates/samba.html:141
msgid "Action"
msgstr ""
#: modules/samba/views.py:33
msgid "FreedomBox OS disk"
msgstr ""
#: modules/samba/views.py:60 modules/storage/forms.py:140
msgid "Open Share"
msgstr ""
#: modules/samba/views.py:64 modules/storage/forms.py:138
msgid "Group Share"
msgstr ""
#: modules/samba/views.py:68
msgid "Home Share"
msgstr ""
#: modules/samba/views.py:103
msgid "Share enabled."
msgstr ""
#: modules/samba/views.py:108
#, python-brace-format
msgid "Error enabling share: {error_message}"
msgstr ""
#: modules/samba/views.py:113
msgid "Share disabled."
msgstr ""
#: modules/samba/views.py:118
#, python-brace-format
msgid "Error disabling share: {error_message}"
msgstr ""
#: modules/searx/__init__.py:20
msgid ""
"Searx is a privacy-respecting Internet metasearch engine. It aggregrates and "
"displays results from multiple search engines."
msgstr ""
#: modules/searx/__init__.py:22
msgid ""
"Searx can be used to avoid tracking and profiling by search engines. It "
"stores no cookies by default."
msgstr ""
#: modules/searx/__init__.py:38
msgid "Search the web"
msgstr ""
#: modules/searx/__init__.py:41 modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
#: modules/searx/__init__.py:42
msgid "Web Search"
msgstr ""
#: modules/searx/forms.py:12
msgid "Safe Search"
msgstr ""
#: modules/searx/forms.py:13
msgid "Select the default family filter to apply to your search results."
msgstr ""
#: modules/searx/forms.py:14
msgid "Moderate"
msgstr ""
#: modules/searx/forms.py:14
msgid "Strict"
msgstr ""
#: modules/security/forms.py:13
msgid "Fail2Ban (recommended)"
msgstr ""
#: modules/security/forms.py:14
msgid ""
"When this option is enabled, Fail2Ban will limit brute force break-in "
"attempts to the SSH server and other enabled password protected internet-"
"services."
msgstr ""
#: modules/security/templates/security.html:12
#: modules/security/templates/security.html:14
msgid "Show security report"
msgstr ""
#: modules/security/templates/security.html:19
#: modules/upgrades/templates/backports-firstboot.html:11
#: modules/upgrades/templates/upgrades_configure.html:44
msgid "Frequent Feature Updates"
msgstr ""
#: modules/security/templates/security.html:21
#: modules/upgrades/templates/upgrades_configure.html:52
msgid "Frequent feature updates are activated."
msgstr ""
#: modules/security/templates/security.html:26
#: modules/upgrades/templates/backports-firstboot.html:14
#: modules/upgrades/templates/upgrades_configure.html:64
#, python-format
msgid ""
"Frequent feature updates allow the %(box_name)s Service, plus a very limited "
"set of software, to receive new features more frequently (from the backports "
"repository). This results in receiving some new features within weeks, "
"instead of only once every 2 years or so. Note that software with frequent "
"feature updates does not have support from the Debian Security Team. "
"Instead, they are maintained by contributors to Debian and the %(box_name)s "
"community."
msgstr ""
#: modules/security/templates/security_report.html:10
#: modules/security/views.py:65
msgid "Security Report"
msgstr ""
#: modules/security/templates/security_report.html:12
#, python-format
msgid ""
"There are %(count)s reported security vulnerabilities in the FreedomBox app, "
"which provides the core services and user interface for a FreedomBox server."
msgstr ""
#: modules/security/templates/security_report.html:19
msgid ""
"The following table lists the current reported number of security "
"vulnerabilities for each installed app. More information on the "
"vulnerabilities can be found on the <a href=\"https://security-tracker."
"debian.org/tracker/\">Debian Security Bug Tracker</a>."
msgstr ""
#: modules/security/templates/security_report.html:28
msgid ""
"For apps that provide services, the \"Sandboxed\" column shows whether "
"sandboxing features are in use. Sandboxing mitigates the impact of a "
"potentially compromised app to the rest of the system."
msgstr ""
#: modules/security/templates/security_report.html:35
msgid ""
"\"Sandbox Coverage\" is a score of how effectively the service is isolated "
"from the rest of the system. It is only displayed while the service is "
"running."
msgstr ""
#: modules/security/templates/security_report.html:45
msgid "App Name"
msgstr ""
#: modules/security/templates/security_report.html:46
msgid "Current Vulnerabilities"
msgstr ""
#: modules/security/templates/security_report.html:47
msgid "Sandboxed"
msgstr ""
#: modules/security/templates/security_report.html:48
msgid "Sandbox Coverage"
msgstr ""
#: modules/security/templates/security_report.html:58
msgid "N/A"
msgstr ""
#: modules/security/templates/security_report.html:60
msgid "Yes"
msgstr ""
#: modules/security/templates/security_report.html:62
msgid "No"
msgstr ""
#: modules/security/templates/security_report.html:69
msgid "Not running"
msgstr ""
#: modules/shaarli/__init__.py:18
msgid "Shaarli allows you to save and share bookmarks."
msgstr ""
#: modules/shaarli/__init__.py:19
msgid ""
"Note that Shaarli only supports a single user account, which you will need "
"to setup on the initial visit."
msgstr ""
#: modules/shaarli/__init__.py:36 modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
#: modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
#: modules/shaarli/manifest.py:12
msgid "Shaarlier"
msgstr ""
#: modules/shadowsocks/__init__.py:18 modules/shadowsocksserver/__init__.py:18
msgid ""
"Shadowsocks is a tool for securely forwarding network requests to a remote "
"server. It consists of two parts: (1) a Shadowsocks server, and (2) a "
"Shadowsocks client with a SOCKS5 proxy."
msgstr ""
#: modules/shadowsocks/__init__.py:21 modules/shadowsocksserver/__init__.py:21
msgid ""
"Shadowsocks can be used to bypass Internet filtering and censorship. This "
"requires that the Shadowsocks server is in a location where it can freely "
"access the Internet, without filtering."
msgstr ""
#: modules/shadowsocks/__init__.py:26
#, python-brace-format
msgid ""
"Your {box_name} can run a Shadowsocks client, that can connect to a "
"Shadowsocks server. It will also run a SOCKS5 proxy. Local devices can "
"connect to this proxy, and their data will be encrypted and proxied through "
"the Shadowsocks server."
msgstr ""
#: modules/shadowsocks/__init__.py:31
msgid ""
"To use Shadowsocks after setup, set the SOCKS5 proxy URL in your device, "
"browser or application to http://freedombox_address:1080/"
msgstr ""
#: modules/shadowsocks/__init__.py:50
msgid "Shadowsocks Client"
msgstr ""
#: modules/shadowsocks/__init__.py:52
msgid "Bypass Censorship"
msgstr ""
#: modules/shadowsocks/forms.py:24
msgid "Server"
msgstr ""
#: modules/shadowsocks/forms.py:25
msgid "Server hostname or IP address"
msgstr ""
#: modules/shadowsocks/forms.py:29
msgid "Server port number"
msgstr ""
#: modules/shadowsocks/forms.py:32
msgid "Password used to encrypt data. Must match server password."
msgstr ""
#: modules/shadowsocks/forms.py:37
msgid "Encryption method. Must match setting on server."
msgstr ""
#: modules/shadowsocksserver/__init__.py:26
#, python-brace-format
msgid ""
"Your {box_name} can run a Shadowsocks server, that allows Shadowsocks "
"clients to connect to it. Clients' data will be encrypted and proxied "
"through this server."
msgstr ""
#: modules/shadowsocksserver/__init__.py:48
msgid "Shadowsocks Server"
msgstr ""
#: modules/shadowsocksserver/__init__.py:49
msgid "Help Others Bypass Censorship"
msgstr ""
#: modules/shadowsocksserver/forms.py:10 modules/shadowsocksserver/forms.py:11
msgid "Recommended"
msgstr ""
#: modules/shadowsocksserver/forms.py:38
msgid "Password used to encrypt data. Clients must use the same password."
msgstr ""
#: modules/shadowsocksserver/forms.py:43
msgid "Encryption method. Clients must use the same setting."
msgstr ""
#: modules/sharing/__init__.py:17
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
#: modules/sharing/__init__.py:34
msgid "Sharing"
msgstr ""
#: modules/sharing/forms.py:17
msgid "Name of the share"
msgstr ""
#: modules/sharing/forms.py:19
msgid ""
"A lowercase alpha-numeric string that uniquely identifies a share. Example: "
"<em>media</em>."
msgstr ""
#: modules/sharing/forms.py:23
msgid "Path to share"
msgstr ""
#: modules/sharing/forms.py:24
msgid "Disk path to a folder on this server that you intend to share."
msgstr ""
#: modules/sharing/forms.py:27
msgid "Public share"
msgstr ""
#: modules/sharing/forms.py:28
msgid "Make files in this folder available to anyone with the link."
msgstr ""
#: modules/sharing/forms.py:33
msgid "User groups that can read the files in the share:"
msgstr ""
#: modules/sharing/forms.py:35
msgid ""
"Users of the selected user groups will be able to read the files in the "
"share."
msgstr ""
#: modules/sharing/forms.py:51
msgid "A share with this name already exists."
msgstr ""
#: modules/sharing/forms.py:62
msgid "Shares should be either public or shared with at least one group"
msgstr ""
#: modules/sharing/templates/sharing.html:18
#: modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
#: modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
#: modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
#: modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
#: modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
#: modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
#: modules/sharing/views.py:39
msgid "Share added."
msgstr ""
#: modules/sharing/views.py:44
msgid "Add Share"
msgstr ""
#: modules/sharing/views.py:60
msgid "Share edited."
msgstr ""
#: modules/sharing/views.py:65
msgid "Edit Share"
msgstr ""
#: modules/sharing/views.py:96
msgid "Share deleted."
msgstr ""
#: modules/snapshot/__init__.py:18
msgid ""
"Snapshots allows creating and managing btrfs file system snapshots. These "
"can be used to roll back the system to a previously known good state in case "
"of unwanted changes to the system."
msgstr ""
#: modules/snapshot/__init__.py:22
#, no-python-format
msgid ""
"Snapshots are taken periodically (called timeline snapshots) and also before "
"and after a software installation. Older snapshots will be automatically "
"cleaned up according to the settings below."
msgstr ""
#: modules/snapshot/__init__.py:25
msgid ""
"Snapshots currently work on btrfs file systems only and on the root "
"partition only. Snapshots are not a replacement for <a href=\"/plinth/sys/"
"backups\">backups</a> since they can only be stored on the same partition. "
msgstr ""
#: modules/snapshot/__init__.py:50
msgid "Storage Snapshots"
msgstr ""
#: modules/snapshot/forms.py:12
msgid "Free Disk Space to Maintain"
msgstr ""
#: modules/snapshot/forms.py:13
msgid ""
"Maintain this percentage of free space on the disk. If free space falls "
"below this value, older snapshots are removed until this much free space is "
"regained. The default value is 30%."
msgstr ""
#: modules/snapshot/forms.py:20
msgid "Timeline Snapshots"
msgstr ""
#: modules/snapshot/forms.py:21
msgid ""
"Enable or disable timeline snapshots (hourly, daily, monthly and yearly)."
msgstr ""
#: modules/snapshot/forms.py:26
msgid "Software Installation Snapshots"
msgstr ""
#: modules/snapshot/forms.py:27
msgid ""
"Enable or disable snapshots before and after each software installation and "
"update."
msgstr ""
#: modules/snapshot/forms.py:32
msgid "Hourly Snapshots Limit"
msgstr ""
#: modules/snapshot/forms.py:33
msgid "Keep a maximum of this many hourly snapshots."
msgstr ""
#: modules/snapshot/forms.py:36
msgid "Daily Snapshots Limit"
msgstr ""
#: modules/snapshot/forms.py:37
msgid "Keep a maximum of this many daily snapshots."
msgstr ""
#: modules/snapshot/forms.py:40
msgid "Weekly Snapshots Limit"
msgstr ""
#: modules/snapshot/forms.py:41
msgid "Keep a maximum of this many weekly snapshots."
msgstr ""
#: modules/snapshot/forms.py:44
msgid "Monthly Snapshots Limit"
msgstr ""
#: modules/snapshot/forms.py:45
msgid "Keep a maximum of this many monthly snapshots."
msgstr ""
#: modules/snapshot/forms.py:48
msgid "Yearly Snapshots Limit"
msgstr ""
#: modules/snapshot/forms.py:49
msgid ""
"Keep a maximum of this many yearly snapshots. The default value is 0 (keep "
"no yearly snapshot)."
msgstr ""
#: modules/snapshot/templates/snapshot_delete_selected.html:12
msgid "Delete the following snapshots permanently?"
msgstr ""
#: modules/snapshot/templates/snapshot_delete_selected.html:17
#: modules/snapshot/templates/snapshot_manage.html:27
#: modules/snapshot/templates/snapshot_rollback.html:25
msgid "Number"
msgstr ""
#: modules/snapshot/templates/snapshot_delete_selected.html:18
#: modules/snapshot/templates/snapshot_manage.html:28
#: modules/snapshot/templates/snapshot_rollback.html:26
msgid "Date"
msgstr ""
#: modules/snapshot/templates/snapshot_delete_selected.html:42
#: modules/snapshot/templates/snapshot_manage.html:20
#: modules/snapshot/views.py:197
msgid "Delete Snapshots"
msgstr ""
#: modules/snapshot/templates/snapshot_manage.html:17
msgid "Create Snapshot"
msgstr ""
#: modules/snapshot/templates/snapshot_manage.html:30
msgid "Rollback"
msgstr ""
#: modules/snapshot/templates/snapshot_manage.html:40
msgid "will be used at next boot"
msgstr ""
#: modules/snapshot/templates/snapshot_manage.html:45
msgid "in use"
msgstr ""
#: modules/snapshot/templates/snapshot_manage.html:54
#, python-format
msgid "Rollback to snapshot #%(number)s"
msgstr ""
#: modules/snapshot/templates/snapshot_not_supported.html:11
#, python-format
msgid ""
"You have a filesystem of type <strong>%(fs_type)s</strong>. Snapshots are "
"currently only available on <strong>%(types_supported)s</strong> filesystems."
msgstr ""
#: modules/snapshot/templates/snapshot_rollback.html:12
msgid "Roll back the system to this snapshot?"
msgstr ""
#: modules/snapshot/templates/snapshot_rollback.html:15
msgid ""
"A new snapshot with the current state of the file system will be "
"automatically created. You will be able to undo a rollback by reverting to "
"the newly created snapshot."
msgstr ""
#: modules/snapshot/templates/snapshot_rollback.html:44
#, python-format
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
#: modules/snapshot/views.py:24
msgid "manually created"
msgstr ""
#: modules/snapshot/views.py:25
msgid "timeline"
msgstr ""
#: modules/snapshot/views.py:26
msgid "apt"
msgstr ""
#: modules/snapshot/views.py:36
msgid "Manage Snapshots"
msgstr ""
#: modules/snapshot/views.py:96
msgid "Created snapshot."
msgstr ""
#: modules/snapshot/views.py:160
#, fuzzy
#| msgid "Configuration updated."
msgid "Configuration update failed."
msgstr "配置已更新。"
#: modules/snapshot/views.py:184
msgid "Deleted selected snapshots"
msgstr ""
#: modules/snapshot/views.py:186
msgid "Deleting snapshot failed."
msgstr ""
#: modules/snapshot/views.py:189
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
#: modules/snapshot/views.py:208
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
#: modules/snapshot/views.py:211
msgid "The system must be restarted to complete the rollback."
msgstr ""
#: modules/snapshot/views.py:221
msgid "Rollback to Snapshot"
msgstr ""
#: modules/ssh/__init__.py:22
msgid ""
"A Secure Shell server uses the secure shell protocol to accept connections "
"from remote computers. An authorized remote computer can perform "
"administration tasks, copy files or run other services using such "
"connections."
msgstr ""
#: modules/ssh/__init__.py:42
msgid "Secure Shell (SSH) Server"
msgstr ""
#: modules/ssh/__init__.py:75
msgid "Remotely login using Secure Shell (SSH)"
msgstr ""
#: modules/ssh/forms.py:13
msgid "Disable password authentication"
msgstr ""
#: modules/ssh/forms.py:14
msgid ""
"Improves security by preventing password guessing. Ensure that you have "
"setup SSH keys in your administrator user account before enabling this "
"option."
msgstr ""
#: modules/ssh/forms.py:21
msgid "Allow all users to login remotely"
msgstr ""
#: modules/ssh/forms.py:22
msgid ""
"Allow all users who have a valid account to login remotely via SSH. When "
"disabled, only users of groups root, admin and freedombox-ssh can login via "
"SSH."
msgstr ""
#: modules/ssh/templates/ssh.html:11
msgid "Server Fingerprints"
msgstr ""
#: modules/ssh/templates/ssh.html:14
msgid ""
"When connecting to the server, ensure that the fingerprint shown by the SSH "
"client matches one of these fingerprints."
msgstr ""
#: modules/ssh/templates/ssh.html:24
msgid "Algorithm"
msgstr ""
#: modules/ssh/templates/ssh.html:25
msgid "Fingerprint"
msgstr ""
#: modules/sso/__init__.py:27
msgid "Single Sign On"
msgstr ""
#: modules/sso/forms.py:28
msgid "Enter the letters in the image to proceed to the login page"
msgstr ""
#: modules/sso/templates/captcha.html:20
msgid "Proceed to Login"
msgstr ""
#: modules/sso/templates/login.html:20
msgid "Login"
msgstr ""
#: modules/sso/views.py:86
msgid "Logged out successfully."
msgstr ""
#: modules/storage/__init__.py:22
#, python-brace-format
msgid ""
"This module allows you to manage storage media attached to your {box_name}. "
"You can view the storage media currently in use, mount and unmount removable "
"media, expand the root partition etc."
msgstr ""
#: modules/storage/__init__.py:45 modules/storage/__init__.py:308
#: modules/storage/__init__.py:339 modules/storage/__init__.py:385
msgid "Storage"
msgstr ""
#: modules/storage/__init__.py:216
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
#: modules/storage/__init__.py:220
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
#: modules/storage/__init__.py:224
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
#: modules/storage/__init__.py:228
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
#: modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
#: modules/storage/__init__.py:243
msgid "The operation failed."
msgstr ""
#: modules/storage/__init__.py:245
msgid "The operation was cancelled."
msgstr ""
#: modules/storage/__init__.py:247
msgid "The device is already unmounting."
msgstr ""
#: modules/storage/__init__.py:249
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
#: modules/storage/__init__.py:252
msgid "The operation timed out."
msgstr ""
#: modules/storage/__init__.py:254
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
#: modules/storage/__init__.py:257
msgid "Attempting to unmount a device that is busy."
msgstr ""
#: modules/storage/__init__.py:259
msgid "The operation has already been cancelled."
msgstr ""
#: modules/storage/__init__.py:261 modules/storage/__init__.py:263
#: modules/storage/__init__.py:265
msgid "Not authorized to perform the requested operation."
msgstr ""
#: modules/storage/__init__.py:267
msgid "The device is already mounted."
msgstr ""
#: modules/storage/__init__.py:269
msgid "The device is not mounted."
msgstr ""
#: modules/storage/__init__.py:271
msgid "Not permitted to use the requested option."
msgstr ""
#: modules/storage/__init__.py:273
msgid "The device is mounted by another user."
msgstr ""
#: modules/storage/__init__.py:303
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
#: modules/storage/__init__.py:305
msgid "Low disk space"
msgstr ""
#: modules/storage/__init__.py:333
msgid "Disk failure imminent"
msgstr ""
#: modules/storage/__init__.py:335
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
"any data while you still can and replace the drive."
msgstr ""
#: modules/storage/__init__.py:379
#, no-python-format
msgid ""
"You cannot save configuration changes. Try rebooting the system. If the "
"problem persists after a reboot, check the storage device for errors."
msgstr ""
#: modules/storage/__init__.py:382
msgid "Read-only root filesystem"
msgstr ""
#: modules/storage/__init__.py:392
msgid "Go to Power"
msgstr ""
#: modules/storage/forms.py:63
msgid "Invalid directory name."
msgstr ""
#: modules/storage/forms.py:73
msgid "Directory does not exist."
msgstr ""
#: modules/storage/forms.py:75
msgid "Path is not a directory."
msgstr ""
#: modules/storage/forms.py:79
msgid "Directory is not readable by the user."
msgstr ""
#: modules/storage/forms.py:82
msgid "Directory is not writable by the user."
msgstr ""
#: modules/storage/forms.py:87
msgid "Directory"
msgstr ""
#: modules/storage/forms.py:89
msgid "Subdirectory (optional)"
msgstr ""
#: modules/storage/forms.py:136
msgid "Share"
msgstr ""
#: modules/storage/forms.py:144
msgid "Other directory (specify below)"
msgstr ""
#: modules/storage/templates/storage.html:17
msgid "The following storage devices are in use:"
msgstr ""
#: modules/storage/templates/storage.html:24
msgid "Label"
msgstr ""
#: modules/storage/templates/storage.html:25
msgid "Mount Point"
msgstr ""
#: modules/storage/templates/storage.html:27
msgid "Used"
msgstr ""
#: modules/storage/templates/storage.html:77
msgid "Partition Expansion"
msgstr ""
#: modules/storage/templates/storage.html:79
#, python-format
msgid ""
"There is %(expandable_root_size)s of unallocated space available after your "
"root partition. Root partition can be expanded to use this space. This "
"will provide you additional free space to store your files."
msgstr ""
#: modules/storage/templates/storage.html:89
#: modules/storage/templates/storage_expand.html:24 modules/storage/views.py:55
msgid "Expand Root Partition"
msgstr ""
#: modules/storage/templates/storage.html:95
msgid ""
"Advanced storage operations such as disk partitioning and RAID management "
"are provided by the <a href=\"/_cockpit/storage\">Cockpit</a> app."
msgstr ""
#: modules/storage/templates/storage_expand.html:14
#, python-format
msgid ""
"Please backup your data before proceeding. After this operation, "
"%(expandable_root_size)s of additional free space will be available in your "
"root partition."
msgstr ""
#: modules/storage/views.py:67
#, python-brace-format
msgid "Error expanding partition: {exception}"
msgstr ""
#: modules/storage/views.py:70
msgid "Partition expanded successfully."
msgstr ""
#: modules/storage/views.py:87
#, python-brace-format
msgid "{drive_vendor} {drive_model} can be safely unplugged."
msgstr ""
#: modules/storage/views.py:91
msgid "Device can be safely unplugged."
msgstr ""
#: modules/storage/views.py:93
msgid "Error ejecting device."
msgstr ""
#: modules/syncthing/__init__.py:23
msgid ""
"Syncthing is an application to synchronize files across multiple devices, e."
"g. your desktop computer and mobile phone. Creation, modification, or "
"deletion of files on one device will be automatically replicated on all "
"other devices that also run Syncthing."
msgstr ""
#: modules/syncthing/__init__.py:28
#, python-brace-format
msgid ""
"Running Syncthing on {box_name} provides an extra synchronization point for "
"your data that is available most of the time, allowing your devices to "
"synchronize more often. {box_name} runs a single instance of Syncthing that "
"may be used by multiple users. Each user's set of devices may be "
"synchronized with a distinct set of folders. The web interface on "
"{box_name} is only available for users belonging to the \"admin\" or "
"\"syncthing-access\" group."
msgstr ""
#: modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
#: modules/syncthing/__init__.py:59 modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
#: modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
#: modules/tor/__init__.py:33 modules/torproxy/__init__.py:29
msgid ""
"Tor is an anonymous communication system. You can learn more about it from "
"the <a href=\"https://www.torproject.org/\">Tor Project</a> website. For "
"best protection when web surfing, the Tor Project recommends that you use "
"the <a href=\"https://www.torproject.org/download/download-easy.html."
"en\">Tor Browser</a>."
msgstr ""
#: modules/tor/__init__.py:39
msgid ""
"This app provides relay services to contribute to Tor network and help "
"others overcome censorship."
msgstr ""
#: modules/tor/__init__.py:42
#, python-brace-format
msgid ""
"This app provides an onion domain to expose {box_name} services via the Tor "
"network. Using Tor browser, one can access {box_name} from the internet even "
"when using an ISP that limits servers at home."
msgstr ""
#: modules/tor/__init__.py:62
msgid "Tor"
msgstr ""
#: modules/tor/__init__.py:78
msgid "Tor Onion Service"
msgstr ""
#: modules/tor/__init__.py:82
msgid "Tor Bridge Relay"
msgstr ""
#: modules/tor/__init__.py:138
msgid "Tor relay port available"
msgstr ""
#: modules/tor/__init__.py:150
msgid "Obfs3 transport registered"
msgstr ""
#: modules/tor/__init__.py:161
msgid "Obfs4 transport registered"
msgstr ""
#: modules/tor/__init__.py:174
msgid "Onion service is version 3"
msgstr ""
#: modules/tor/forms.py:33
msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
#: modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
#: modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
#: modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
#: modules/tor/forms.py:85
msgid ""
"You can get some bridges from <a href=\"https://bridges.torproject.org/"
"\">https://bridges.torproject.org/</a> and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
#: modules/tor/forms.py:95
msgid "Enable Tor relay"
msgstr ""
#: modules/tor/forms.py:96
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
"the Tor network. Do this if you have more than 2 megabits/s of upload and "
"download bandwidth."
msgstr ""
#: modules/tor/forms.py:101
msgid "Enable Tor bridge relay"
msgstr ""
#: modules/tor/forms.py:103
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
#: modules/tor/forms.py:108
msgid "Enable Tor Onion Service"
msgstr ""
#: modules/tor/forms.py:110
#, python-brace-format
msgid ""
"An onion service will allow {box_name} to provide selected services (such as "
"wiki or chat) without revealing its location. Do not use this for strong "
"anonymity yet."
msgstr ""
#: modules/tor/forms.py:125
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
#: modules/tor/manifest.py:15 modules/torproxy/manifest.py:14
msgid "Tor Browser"
msgstr ""
#: modules/tor/manifest.py:31 modules/torproxy/manifest.py:30
msgid "Orbot: Proxy with Tor"
msgstr ""
#: modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
#: modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
#: modules/tor/views.py:53 modules/torproxy/views.py:51
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "Updating configuration"
msgstr "設置過程中發生錯誤。"
#: modules/tor/views.py:70 modules/torproxy/views.py:68
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error configuring app: {error}"
msgstr "安裝應用遇到錯誤:{error}"
#: modules/torproxy/__init__.py:36
#, python-brace-format
msgid ""
"This app provides a web proxy on your {box_name} for internal networks on "
"TCP port 9050 using the SOCKS protocol. This can be used by various apps to "
"access the internet via the Tor network. ISP censorship can be circumvented "
"using upstream bridges."
msgstr ""
#: modules/torproxy/__init__.py:56
msgid "Tor Proxy"
msgstr ""
#: modules/torproxy/__init__.py:81
msgid "Tor Socks Proxy"
msgstr ""
#: modules/torproxy/__init__.py:142
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
#: modules/torproxy/__init__.py:154
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
#: modules/torproxy/forms.py:15
msgid "Download software packages over Tor"
msgstr ""
#: modules/torproxy/forms.py:16
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
#: modules/transmission/__init__.py:25
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
#: modules/transmission/__init__.py:26
msgid ""
"BitTorrent is a peer-to-peer file sharing protocol. Note that BitTorrent is "
"not anonymous."
msgstr ""
#: modules/transmission/__init__.py:28
msgid "Please do not change the default port of the Transmission daemon."
msgstr ""
#: modules/transmission/__init__.py:30
#, python-brace-format
msgid ""
"Compared to <a href=\"{deluge_url}\">Deluge</a>, Transmission is simpler and "
"lightweight but is less customizable."
msgstr ""
#: modules/transmission/__init__.py:34
#, fuzzy, python-brace-format
#| msgid ""
#| "It can be accessed by <a href=\"{users_url}\">any user</a> on {box_name} "
#| "belonging to the admin group."
msgid ""
"It can be accessed by <a href=\"{users_url}\">any user</a> on {box_name} "
"belonging to the bit-torrent group."
msgstr ""
"它可以由 {box_name} 上屬於 admin 群組的 <a href=\"{users_url}\">任何使用者</"
"a>存取。"
#: modules/transmission/__init__.py:38
#, python-brace-format
msgid ""
"In addition to the web interface, mobile and desktop apps can also be used "
"to remotely control Transmission on {box_name}. To configure remote control "
"apps, use the URL <a href=\"/transmission-remote/rpc\">/transmission-remote/"
"rpc</a>."
msgstr ""
#: modules/transmission/__init__.py:44
#, python-brace-format
msgid ""
"<a href=\"{samba_url}\">Samba</a> shares can be set as the default download "
"directory from the dropdown menu below."
msgstr ""
#: modules/transmission/__init__.py:48
#, python-brace-format
msgid ""
"After a download has completed, you can also access your files using the <a "
"href=\"{sharing_url}\">Sharing</a> app."
msgstr ""
#: modules/transmission/__init__.py:74 modules/transmission/manifest.py:8
msgid "Transmission"
msgstr ""
#: modules/transmission/manifest.py:15
msgid "Tremotesf"
msgstr ""
#: modules/ttrss/__init__.py:21
msgid ""
"Tiny Tiny RSS is a news feed (RSS/Atom) reader and aggregator, designed to "
"allow reading news from any location, while feeling as close to a real "
"desktop application as possible."
msgstr ""
#: modules/ttrss/__init__.py:25
#, fuzzy, python-brace-format
#| msgid ""
#| "It can be accessed by <a href=\"{users_url}\">any user</a> on {box_name} "
#| "belonging to the admin group."
msgid ""
"When enabled, Tiny Tiny RSS can be accessed by <a href=\"{users_url}\">any "
"user</a> belonging to the feed-reader group."
msgstr ""
"它可以由 {box_name} 上屬於 admin 群組的 <a href=\"{users_url}\">任何使用者</"
"a>存取。"
#: modules/ttrss/__init__.py:30
msgid ""
"When using a mobile or desktop application for Tiny Tiny RSS, use the URL <a "
"href=\"/tt-rss/\">/tt-rss</a> or <a href=\"/tt-rss-app/\">/tt-rss-app</a> "
"for connecting."
msgstr ""
#: modules/ttrss/__init__.py:50 modules/ttrss/manifest.py:44
msgid "Tiny Tiny RSS"
msgstr ""
#: modules/ttrss/__init__.py:51
msgid "News Feed Reader"
msgstr ""
#: modules/ttrss/manifest.py:10
msgid "Tiny Tiny RSS (TTTRSS)"
msgstr ""
#: modules/ttrss/manifest.py:20
msgid "TTRSS-Reader"
msgstr ""
#: modules/ttrss/manifest.py:35
msgid "Geekttrss"
msgstr ""
#: modules/upgrades/__init__.py:36
#: modules/upgrades/templates/update-firstboot.html:14
msgid "Check for and apply the latest software and security updates."
msgstr ""
#: modules/upgrades/__init__.py:37
msgid ""
"Updates are run at 06:00 everyday according to local time zone. Set your "
"time zone in Date & Time app. Apps are restarted after update causing them "
"to be unavailable briefly. If system reboot is deemed necessary, it is done "
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
#: modules/upgrades/__init__.py:65 modules/upgrades/__init__.py:126
#: modules/upgrades/templates/update-firstboot-progress.html:11
#: modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
#: modules/upgrades/__init__.py:129
msgid "FreedomBox Updated"
msgstr ""
#: modules/upgrades/__init__.py:197
msgid "Could not start distribution update"
msgstr ""
#: modules/upgrades/__init__.py:199
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
#: modules/upgrades/__init__.py:210
msgid "Distribution update started"
msgstr ""
#: modules/upgrades/__init__.py:212
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
#: modules/upgrades/forms.py:15
msgid "Enable auto-update"
msgstr ""
#: modules/upgrades/forms.py:16
msgid "When enabled, FreedomBox automatically updates once a day."
msgstr ""
#: modules/upgrades/forms.py:19
msgid "Enable auto-update to next stable release"
msgstr ""
#: modules/upgrades/forms.py:20
msgid ""
"When enabled, FreedomBox will update to the next stable distribution release "
"when it is available."
msgstr ""
#: modules/upgrades/forms.py:34
#: modules/upgrades/templates/upgrades_configure.html:89
msgid "Activate frequent feature updates (recommended)"
msgstr ""
#: modules/upgrades/forms.py:40
msgid "Update now (recommended)"
msgstr ""
#: modules/upgrades/templates/backports-firstboot.html:26
msgid ""
"It is strongly recommended to activate frequent feature updates. If not "
"activated now, they can be activated later."
msgstr ""
#: modules/upgrades/templates/backports-firstboot.html:33
msgid ""
"<strong>Note:</strong> Once frequent feature updates are activated, they "
"cannot be deactivated."
msgstr ""
#: modules/upgrades/templates/update-firstboot-progress.html:19
msgid "Updating, please wait..."
msgstr ""
#: modules/upgrades/templates/update-firstboot-progress.html:22
#: modules/upgrades/templates/update-firstboot.html:20
msgid ""
"<strong>This may take a long time to complete.</strong> During an update, "
"this web interface may be temporarily unavailable and show an error. In that "
"case, refresh the page to continue."
msgstr ""
#: modules/upgrades/templates/update-firstboot-progress.html:31
#, python-format
msgid ""
"\n"
"\t%(box_name)s is up to date. Press Next to continue.\n"
" "
msgstr ""
#: modules/upgrades/templates/upgrades-new-release.html:9
#, python-format
msgid "%(box_name)s updated"
msgstr ""
#: modules/upgrades/templates/upgrades-new-release.html:13
#, python-format
msgid ""
"%(box_name)s has been updated to version %(version)s. See the <a "
"href=\"%(url)s\">release announcement</a>."
msgstr ""
#: modules/upgrades/templates/upgrades-new-release.html:22
#: templates/notifications.html:50 templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
#: modules/upgrades/templates/upgrades_configure.html:30
#: modules/upgrades/templates/upgrades_configure.html:100
msgid "Updating..."
msgstr ""
#: modules/upgrades/templates/upgrades_configure.html:32
#, python-format
msgid "There is a new %(box_name)s version available."
msgstr ""
#: modules/upgrades/templates/upgrades_configure.html:35
msgid "Your Freedombox needs an update!"
msgstr ""
#: modules/upgrades/templates/upgrades_configure.html:47
msgid ""
"Frequent feature updates can be activated. Activating them is recommended."
msgstr ""
#: modules/upgrades/templates/upgrades_configure.html:56
msgid ""
"Frequent feature updates cannot be activated. They may not be necessary on "
"your distribution."
msgstr ""
#: modules/upgrades/templates/upgrades_configure.html:78
#, python-format
msgid ""
"<strong>Warning!</strong> Once frequent feature updates are activated, they "
"cannot be deactivated. You may wish to take a snapshot using <a "
"href=\"%(snapshot_url)s\">Storage Snapshots</a> before continuing."
msgstr ""
#: modules/upgrades/templates/upgrades_configure.html:94
msgid "Manual Update"
msgstr ""
#: modules/upgrades/templates/upgrades_configure.html:108
msgid "Update now"
msgstr ""
#: modules/upgrades/templates/upgrades_configure.html:114
msgid ""
"<strong>This may take a long time to complete.</strong> During an update, "
"you cannot install apps. Also, this web interface may be temporarily "
"unavailable and show an error. In that case, refresh the page to continue."
msgstr ""
#: modules/upgrades/templates/upgrades_configure.html:128
msgid "Show recent update logs"
msgstr ""
#: modules/upgrades/templates/upgrades_configure.html:138
msgid "Test Distribution Upgrade"
msgstr ""
#: modules/upgrades/templates/upgrades_configure.html:140
msgid ""
"This will attempt to upgrade the system from stable to testing. <strong>It "
"is meant only for development use.</strong>"
msgstr ""
#: modules/upgrades/templates/upgrades_configure.html:150
msgid "Test distribution upgrade now"
msgstr ""
#: modules/upgrades/views.py:73
msgid "Error when configuring unattended-upgrades"
msgstr ""
#: modules/upgrades/views.py:120
msgid "Upgrade process started."
msgstr ""
#: modules/upgrades/views.py:122
msgid "Starting upgrade failed."
msgstr ""
#: modules/upgrades/views.py:132
msgid "Frequent feature updates activated."
msgstr ""
#: modules/upgrades/views.py:218
msgid "Starting distribution upgrade test."
msgstr ""
#: modules/users/__init__.py:33
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
"account to be part of a group to authorize the user to access the app."
msgstr ""
#: modules/users/__init__.py:38
#, python-brace-format
msgid ""
"Any user may login to {box_name} web interface to see a list of apps "
"relevant to them in the home page. However, only users of the <em>admin</em> "
"group may alter apps or system settings."
msgstr ""
#: modules/users/__init__.py:59
msgid "Users and Groups"
msgstr ""
#: modules/users/__init__.py:85
msgid "Access to all services and system settings"
msgstr ""
#: modules/users/__init__.py:129
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
#: modules/users/__init__.py:144
#, python-brace-format
msgid "Check nslcd config \"{key} {value}\""
msgstr ""
#: modules/users/__init__.py:174
#, python-brace-format
msgid "Check nsswitch config \"{database}\""
msgstr ""
#: modules/users/forms.py:35
msgid "Username is taken or is reserved."
msgstr ""
#: modules/users/forms.py:70
msgid ""
"Optional. Used to send emails to reset password and important notifications."
msgstr ""
#: modules/users/forms.py:106
msgid ""
"Select which services should be available to the new user. The user will be "
"able to log in to services that support single sign-on through LDAP, if they "
"are in the appropriate group.<br /><br />Users in the admin group will be "
"able to log in to all services. They can also log in to the system through "
"SSH and have administrative privileges (sudo)."
msgstr ""
#: modules/users/forms.py:124
msgid "Enter a valid username."
msgstr ""
#: modules/users/forms.py:131
msgid ""
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
msgstr ""
#: modules/users/forms.py:140
msgid "Authorization Password"
msgstr ""
#: modules/users/forms.py:147
#, python-brace-format
msgid ""
"Enter the password for user \"{user}\" to authorize account modifications."
msgstr ""
#: modules/users/forms.py:156
msgid "Invalid password."
msgstr ""
#: modules/users/forms.py:212 modules/users/forms.py:417
#, python-brace-format
msgid "Creating LDAP user failed: {error}"
msgstr ""
#: modules/users/forms.py:224
#, python-brace-format
msgid "Failed to add new user to {group} group: {error}"
msgstr ""
#: modules/users/forms.py:240
msgid "Authorized SSH Keys"
msgstr ""
#: modules/users/forms.py:242
msgid ""
"Setting an SSH public key will allow this user to securely log in to the "
"system without using a password. You may enter multiple keys, one on each "
"line. Blank lines and lines starting with # will be ignored."
msgstr ""
#: modules/users/forms.py:298
msgid "Renaming LDAP user failed."
msgstr ""
#: modules/users/forms.py:309
msgid "Failed to remove user from group."
msgstr ""
#: modules/users/forms.py:319
msgid "Failed to add user to group."
msgstr ""
#: modules/users/forms.py:326
msgid "Unable to set SSH keys."
msgstr ""
#: modules/users/forms.py:339
msgid "Failed to change user status."
msgstr ""
#: modules/users/forms.py:380
msgid "Changing LDAP user password failed."
msgstr ""
#: modules/users/forms.py:425
#, python-brace-format
msgid "Failed to add new user to admin group: {error}"
msgstr ""
#: modules/users/forms.py:448
msgid "User account created, you are now logged in"
msgstr ""
#: modules/users/templates/users_change_password.html:11
#, python-format
msgid "Change Password for <em>%(username)s</em>"
msgstr ""
#: modules/users/templates/users_change_password.html:21
msgid "Save Password"
msgstr ""
#: modules/users/templates/users_create.html:11
#: modules/users/templates/users_create.html:19
#: modules/users/templates/users_list.html:15
#: modules/users/templates/users_list.html:17 modules/users/views.py:46
msgid "Create User"
msgstr ""
#: modules/users/templates/users_delete.html:11 modules/users/views.py:138
msgid "Delete User"
msgstr ""
#: modules/users/templates/users_delete.html:14
#, python-format
msgid "Delete user <strong>%(username)s</strong> permanently?"
msgstr ""
#: modules/users/templates/users_delete.html:23
#, python-format
msgid "Delete %(username)s"
msgstr ""
#: modules/users/templates/users_firstboot.html:11
msgid "Administrator Account"
msgstr ""
#: modules/users/templates/users_firstboot.html:15
msgid ""
"Choose a username and password to access this web interface. The password "
"can be changed later. This user will be granted administrative privileges. "
"Other users can be added later."
msgstr ""
#: modules/users/templates/users_firstboot.html:28
msgid "Create Account"
msgstr ""
#: modules/users/templates/users_firstboot.html:32
msgid "An administrator account already exists."
msgstr ""
#: modules/users/templates/users_firstboot.html:38
msgid "The following administrator accounts exist in the system."
msgstr ""
#: modules/users/templates/users_firstboot.html:50
#, python-format
msgid ""
"Delete these accounts from command line and refresh the page to create an "
"account that is usable with %(box_name)s. On the command line run the "
"command \"echo '{\"args\": [\"USERNAME\", \"PASSWORD\"], \"kwargs\": {}}' | "
"sudo /usr/share/plinth/actions/actions users remove_user\". If an account is "
"already usable with %(box_name)s, skip this step."
msgstr ""
#: modules/users/templates/users_list.html:11 modules/users/views.py:64
msgid "Users"
msgstr ""
#: modules/users/templates/users_list.html:28
#, python-format
msgid "Edit user %(username)s"
msgstr ""
#: modules/users/templates/users_list.html:41
#, python-format
msgid "Delete user %(username)s"
msgstr ""
#: modules/users/templates/users_update.html:11
#, python-format
msgid "Edit User <em>%(username)s</em>"
msgstr ""
#: modules/users/templates/users_update.html:19
#, python-format
msgid ""
"Use the <a href='%(change_password_url)s'>change password form </a> to "
"change the password."
msgstr ""
#: modules/users/templates/users_update.html:31
#: templates/language-selection.html:17
msgid "Save Changes"
msgstr ""
#: modules/users/views.py:44
#, python-format
msgid "User %(username)s created."
msgstr ""
#: modules/users/views.py:80
#, python-format
msgid "User %(username)s updated."
msgstr ""
#: modules/users/views.py:81
msgid "Edit User"
msgstr ""
#: modules/users/views.py:151
#, python-brace-format
msgid "User {user} deleted."
msgstr ""
#: modules/users/views.py:157
msgid "Deleting LDAP user failed."
msgstr ""
#: modules/users/views.py:185
msgid "Change Password"
msgstr ""
#: modules/users/views.py:186
msgid "Password changed successfully."
msgstr ""
#: modules/wireguard/__init__.py:20
msgid "WireGuard is a fast, modern, secure VPN tunnel."
msgstr ""
#: modules/wireguard/__init__.py:22
#, python-brace-format
msgid ""
"It can be used to connect to a VPN provider which supports WireGuard, and to "
"route all outgoing traffic from {box_name} through the VPN."
msgstr ""
#: modules/wireguard/__init__.py:26
#, python-brace-format
msgid ""
"A second use case is to connect a mobile device to {box_name} while "
"travelling. While connected to a public Wi-Fi network, all traffic can be "
"securely relayed through {box_name}."
msgstr ""
#: modules/wireguard/forms.py:32
msgid "Invalid key."
msgstr ""
#: modules/wireguard/forms.py:61 modules/wireguard/templates/wireguard.html:17
#: modules/wireguard/templates/wireguard.html:77
#: modules/wireguard/templates/wireguard_delete_server.html:24
msgid "Public Key"
msgstr ""
#: modules/wireguard/forms.py:62
msgid ""
"Public key of the peer. Example: "
"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ."
msgstr ""
#: modules/wireguard/forms.py:70
msgid "Endpoint of the server"
msgstr ""
#: modules/wireguard/forms.py:71
msgid ""
"Domain name and port in the form \"ip:port\". Example: demo.wireguard."
"com:12912 ."
msgstr ""
#: modules/wireguard/forms.py:76
msgid "Public key of the server"
msgstr ""
#: modules/wireguard/forms.py:77
msgid ""
"Provided by the server operator, a long string of characters. Example: "
"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ."
msgstr ""
#: modules/wireguard/forms.py:82
msgid "Client IP address provided by server"
msgstr ""
#: modules/wireguard/forms.py:83
msgid ""
"IP address assigned to this machine on the VPN after connecting to the "
"endpoint. This value is usually provided by the server operator. Example: "
"192.168.0.10."
msgstr ""
#: modules/wireguard/forms.py:89
msgid "Private key of this machine"
msgstr ""
#: modules/wireguard/forms.py:90
msgid ""
"Optional. New public/private keys are generated if left blank. Public key "
"can then be provided to the server. This is the recommended way. However, "
"some server operators insist on providing this. Example: "
"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ."
msgstr ""
#: modules/wireguard/forms.py:98
msgid "Pre-shared key"
msgstr ""
#: modules/wireguard/forms.py:99
msgid ""
"Optional. A shared secret key provided by the server to add an additional "
"layer of security. Fill in only if provided. Example: "
"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs=."
msgstr ""
#: modules/wireguard/forms.py:105
msgid "Use this connection to send all outgoing traffic"
msgstr ""
#: modules/wireguard/forms.py:107
msgid "Typically checked for a VPN service through which all traffic is sent."
msgstr ""
#: modules/wireguard/templates/wireguard.html:10
msgid "As a Server"
msgstr ""
#: modules/wireguard/templates/wireguard.html:12
msgid "Peers allowed to connect to this server:"
msgstr ""
#: modules/wireguard/templates/wireguard.html:18
msgid "Allowed IPs"
msgstr ""
#: modules/wireguard/templates/wireguard.html:19
#: modules/wireguard/templates/wireguard.html:78
msgid "Last Connected Time"
msgstr ""
#: modules/wireguard/templates/wireguard.html:38
#, python-format
msgid "No peers configured to connect to this %(box_name)s yet."
msgstr ""
#: modules/wireguard/templates/wireguard.html:48
#, python-format
msgid "Public key for this %(box_name)s:"
msgstr ""
#: modules/wireguard/templates/wireguard.html:54
msgid "Not configured yet."
msgstr ""
#: modules/wireguard/templates/wireguard.html:59
msgid "Add a new peer"
msgstr ""
#: modules/wireguard/templates/wireguard.html:63 modules/wireguard/views.py:48
msgid "Add Allowed Client"
msgstr ""
#: modules/wireguard/templates/wireguard.html:67
msgid "As a Client"
msgstr ""
#: modules/wireguard/templates/wireguard.html:69
#, python-format
msgid "Servers that %(box_name)s will connect to:"
msgstr ""
#: modules/wireguard/templates/wireguard.html:76
#: modules/wireguard/templates/wireguard_delete_server.html:20
msgid "Endpoint"
msgstr ""
#: modules/wireguard/templates/wireguard.html:100
msgid "No connections to remote servers are configured yet."
msgstr ""
#: modules/wireguard/templates/wireguard.html:110
msgid "Add a new server"
msgstr ""
#: modules/wireguard/templates/wireguard.html:114
#: modules/wireguard/views.py:157
msgid "Add Connection to Server"
msgstr ""
#: modules/wireguard/templates/wireguard_add_client.html:19
msgid "Add Client"
msgstr ""
#: modules/wireguard/templates/wireguard_delete_client.html:14
msgid "Are you sure that you want to delete this client?"
msgstr ""
#: modules/wireguard/templates/wireguard_delete_server.html:14
msgid "Are you sure that you want to delete this server?"
msgstr ""
#: modules/wireguard/templates/wireguard_edit_client.html:19
msgid "Update Client"
msgstr ""
#: modules/wireguard/templates/wireguard_edit_server.html:19
msgid "Update Connection"
msgstr ""
#: modules/wireguard/templates/wireguard_show_client.html:12
#, python-format
msgid ""
"%(box_name)s will allow this client to connect to it. Ensure that the client "
"is configured with the following information."
msgstr ""
#: modules/wireguard/templates/wireguard_show_client.html:21
msgid "Client public key:"
msgstr ""
#: modules/wireguard/templates/wireguard_show_client.html:25
msgid "IP address to use for client:"
msgstr ""
#: modules/wireguard/templates/wireguard_show_client.html:29
#: modules/wireguard/templates/wireguard_show_server.html:32
msgid "Pre-shared key:"
msgstr ""
#: modules/wireguard/templates/wireguard_show_client.html:33
msgid "Server endpoints:"
msgstr ""
#: modules/wireguard/templates/wireguard_show_client.html:41
#: modules/wireguard/templates/wireguard_show_server.html:28
msgid "Server public key:"
msgstr ""
#: modules/wireguard/templates/wireguard_show_client.html:53
#: modules/wireguard/templates/wireguard_show_server.html:52
msgid "Data transmitted:"
msgstr ""
#: modules/wireguard/templates/wireguard_show_client.html:57
#: modules/wireguard/templates/wireguard_show_server.html:56
msgid "Data received:"
msgstr ""
#: modules/wireguard/templates/wireguard_show_client.html:61
#: modules/wireguard/templates/wireguard_show_server.html:60
msgid "Latest handshake:"
msgstr ""
#: modules/wireguard/templates/wireguard_show_server.html:14
#, python-format
msgid ""
"%(box_name)s will attempt to reach a WireGuard server with the following "
"information. Ensure that the server is configured to allow %(box_name)s's "
"public key and IP address."
msgstr ""
#: modules/wireguard/templates/wireguard_show_server.html:24
msgid "Server endpoint:"
msgstr ""
#: modules/wireguard/templates/wireguard_show_server.html:36
msgid "Public key of this machine:"
msgstr ""
#: modules/wireguard/templates/wireguard_show_server.html:40
msgid "IP address of this machine:"
msgstr ""
#: modules/wireguard/views.py:43
msgid "Added new client."
msgstr ""
#: modules/wireguard/views.py:58 modules/wireguard/views.py:117
msgid "Client with public key already exists"
msgstr ""
#: modules/wireguard/views.py:71
msgid "Allowed Client"
msgstr ""
#: modules/wireguard/views.py:93
msgid "Updated client."
msgstr ""
#: modules/wireguard/views.py:98
msgid "Modify Client"
msgstr ""
#: modules/wireguard/views.py:131
msgid "Delete Allowed Client"
msgstr ""
#: modules/wireguard/views.py:140
msgid "Client deleted."
msgstr ""
#: modules/wireguard/views.py:142
msgid "Client not found"
msgstr ""
#: modules/wireguard/views.py:152
msgid "Added new server."
msgstr ""
#: modules/wireguard/views.py:173
msgid "Connection to Server"
msgstr ""
#: modules/wireguard/views.py:191
msgid "Updated server."
msgstr ""
#: modules/wireguard/views.py:196
msgid "Modify Connection to Server"
msgstr ""
#: modules/wireguard/views.py:233
msgid "Delete Connection to Server"
msgstr ""
#: modules/wireguard/views.py:253
msgid "Server deleted."
msgstr ""
#: modules/wordpress/__init__.py:20
msgid ""
"WordPress is a popular way to create and manage websites and blogs. Content "
"can be managed using a visual interface. Layout and functionality of the web "
"pages can be customized. Appearance can be chosen using themes. "
"Administration interface and produced web pages are suitable for mobile "
"devices."
msgstr ""
#: modules/wordpress/__init__.py:26
#, python-brace-format
msgid ""
"You need to run WordPress setup by visiting the app before making the site "
"publicly available below. Setup must be run when accessing {box_name} with "
"the correct domain name. Enable permalinks in administrator interface for "
"better URLs to your pages and posts."
msgstr ""
#: modules/wordpress/__init__.py:31
msgid ""
"WordPress has its own user accounts. First administrator account is created "
"during setup. Bookmark the <a href=\"/wordpress/wp-admin/\">admin page</a> "
"to reach administration interface in the future."
msgstr ""
#: modules/wordpress/__init__.py:35
msgid ""
"After a major version upgrade, you need to manually run database upgrade "
"from administrator interface. Additional plugins or themes may be installed "
"and upgraded at your own risk."
msgstr ""
#: modules/wordpress/__init__.py:53 modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
#: modules/wordpress/__init__.py:54
msgid "Website and Blog"
msgstr ""
#: modules/wordpress/forms.py:14
msgid "Public access"
msgstr ""
#: modules/wordpress/forms.py:15
msgid ""
"Allow all visitors. Disabling allows only administrators to view the "
"WordPress site or blog. Enable only after performing initial WordPress setup."
msgstr ""
#: modules/zoph/__init__.py:24
#, python-brace-format
msgid ""
"Zoph manages your photo collection. Photos are stored on your {box_name}, "
"under your control. Instead of focusing on galleries for public display, "
"Zoph focuses on managing them for your own use, organizing them by who took "
"them, where they were taken, and who is in them. Photos can be linked to "
"multiple hierarchical albums and categories. It is easy to find all photos "
"containing a person, or photos taken on a date, or photos taken at a "
"location using search, map and calendar views. Individual photos can be "
"shared with others by sending a direct link."
msgstr ""
#: modules/zoph/__init__.py:35
#, python-brace-format
msgid ""
"The {box_name} user who setup Zoph will also become the administrator in "
"Zoph. For additional users, accounts must be created both in {box_name} and "
"in Zoph with the same user name."
msgstr ""
#: modules/zoph/__init__.py:56 modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
#: modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
#: modules/zoph/forms.py:14
msgid "Enable OpenStreetMap for maps"
msgstr ""
#: modules/zoph/forms.py:15
msgid ""
"When enabled, requests will be made to OpenStreetMap servers from user's "
"browser. This impacts privacy."
msgstr ""
#: modules/zoph/templates/zoph-pre-setup.html:15
#: modules/zoph/templates/zoph-pre-setup.html:28
msgid "Setup"
msgstr ""
#: modules/zoph/templates/zoph-pre-setup.html:18
#, python-format
msgid ""
"User account <strong>%(username)s</strong> will become the administrator "
"account for Zoph."
msgstr ""
#: network.py:29
msgid "PPPoE"
msgstr ""
#: network.py:30
msgid "Generic"
msgstr ""
#: operation.py:118
#, fuzzy, python-brace-format
#| msgid "Error setting hostname: {exception}"
msgid "Error: {name}: {exception_message}"
msgstr "設定主機名稱時發生錯誤︰{exception}"
#: operation.py:121
#, python-brace-format
msgid "Waiting to start: {name}"
msgstr ""
#: operation.py:127
#, python-brace-format
msgid "Finished: {name}"
msgstr ""
#: package.py:206
#, python-brace-format
msgid "Package {package_expression} is not available for install"
msgstr ""
#: package.py:226
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
#: package.py:420
msgid "installing"
msgstr ""
#: package.py:422
msgid "downloading"
msgstr ""
#: package.py:424
msgid "media change"
msgstr ""
#: package.py:426
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
#: package.py:454 package.py:479
msgid "Timeout waiting for package manager"
msgstr ""
#: setup.py:42
msgid "Installing app"
msgstr ""
#: setup.py:44
msgid "Updating app"
msgstr ""
#: setup.py:78
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error installing app: {error}"
msgstr "安裝應用遇到錯誤:{error}"
#: setup.py:81 setup.py:151
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error repairing app: {error}"
msgstr "安裝應用遇到錯誤:{error}"
#: setup.py:84
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error updating app: {error}"
msgstr "安裝應用遇到錯誤:{error}"
#: setup.py:88
#, fuzzy
#| msgid "Application installed."
msgid "App installed."
msgstr "應用已完成安裝。"
#: setup.py:92
msgid "App updated"
msgstr ""
#: setup.py:110
msgid "Repairing app"
msgstr ""
#: setup.py:130
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error running diagnostics: {error}"
msgstr "安裝應用遇到錯誤:{error}"
#: setup.py:143
msgid "Skipping repair, no failed checks"
msgstr ""
#: setup.py:157
msgid "Re-running setup to complete repairs"
msgstr ""
#: setup.py:165
msgid "App repaired."
msgstr ""
#: setup.py:169
msgid "App repair completed with errors:\n"
msgstr ""
#: setup.py:189
#, fuzzy
#| msgid "Error installing application: {error}"
msgid "Uninstalling app"
msgstr "安裝應用遇到錯誤:{error}"
#: setup.py:205
#, fuzzy, python-brace-format
#| msgid "Error installing application: {error}"
msgid "Error uninstalling app: {error}"
msgstr "安裝應用遇到錯誤:{error}"
#: setup.py:208
#, fuzzy
#| msgid "Application installed."
msgid "App uninstalled."
msgstr "應用已完成安裝。"
#: setup.py:581
msgid "Updating app packages"
msgstr ""
#: templates/403.html:10
msgid "403 Forbidden"
msgstr ""
#: templates/403.html:14
#, python-format
msgid "You don't have permission to access %(request_path)s on this server."
msgstr ""
#: templates/404.html:10
#, python-format
msgid "Page not found - %(box_name)s"
msgstr ""
#: templates/404.html:18
msgid "404"
msgstr ""
#: templates/404.html:21
#, python-format
msgid "Requested page %(request_path)s was not found."
msgstr ""
#: templates/404.html:27
msgid ""
"If you believe this missing page should exist, please file a bug at the "
"FreedomBox Service (Plinth) project <a href=\"https://salsa.debian.org/"
"freedombox-team/freedombox/issues\">issue tracker</a>."
msgstr ""
#: templates/500.html:10
msgid "500"
msgstr ""
#: templates/500.html:14
#, python-format
msgid ""
"This is an internal error and not something you caused or can fix. Please "
"report the error on the <a href=\"https://salsa.debian.org/freedombox-team/"
"freedombox/issues\">bug tracker</a> so we can fix it. Also, please attach "
"the <a href=\"%(status_log_url)s\">status log</a> to the bug report."
msgstr ""
#: templates/app-header.html:26
msgid "Installation"
msgstr ""
#: templates/app.html:29
#, python-format
msgid "Service <em>%(service_name)s</em> is not running."
msgstr ""
#: templates/base.html:31
msgid ""
"FreedomBox is a personal server designed for privacy and data ownership. It "
"is free software that lets you install and manage server apps with ease."
msgstr ""
#: templates/base.html:110
msgid " Home"
msgstr ""
#: templates/base.html:113
msgid "Home"
msgstr ""
#: templates/base.html:118
msgid " Apps"
msgstr ""
#: templates/base.html:122
msgid "Apps"
msgstr ""
#: templates/base.html:127
msgid " System"
msgstr ""
#: templates/base.html:166 templates/base.html:167
msgid "Change password"
msgstr ""
#: templates/base.html:180 templates/base.html:181
msgid "Shut down"
msgstr ""
#: templates/base.html:191 templates/base.html:220
msgid "Log out"
msgstr ""
#: templates/base.html:200 templates/base.html:203
msgid "Select language"
msgstr ""
#: templates/base.html:209 templates/base.html:211
msgid "Log in"
msgstr ""
#: templates/clients-button.html:16
msgid "Launch web client"
msgstr ""
#: templates/clients-button.html:25
msgid "Client Apps"
msgstr ""
#: templates/clients.html:17
msgid "Web"
msgstr ""
#: templates/clients.html:42
msgid "Desktop"
msgstr ""
#: templates/clients.html:53
msgid "GNU/Linux"
msgstr ""
#: templates/clients.html:55
msgid "Windows"
msgstr ""
#: templates/clients.html:57
msgid "macOS"
msgstr ""
#: templates/clients.html:73
msgid "Mobile"
msgstr ""
#: templates/clients.html:84
msgid "Play Store"
msgstr ""
#: templates/clients.html:86
msgid "F-Droid"
msgstr ""
#: templates/clients.html:88
msgid "App Store"
msgstr ""
#: templates/clients.html:104
msgid "Package"
msgstr ""
#: templates/clients.html:111
msgid "Debian:"
msgstr ""
#: templates/clients.html:114
msgid "Homebrew:"
msgstr ""
#: templates/clients.html:117
msgid "RPM:"
msgstr ""
#: templates/error.html:10
msgid "Error"
msgstr ""
#: templates/first_setup.html:18
#, python-format
msgid ""
"Please wait for %(box_name)s to finish installation. You can start using "
"your %(box_name)s once it is done."
msgstr ""
#: templates/index.html:22
#, python-format
msgid ""
"Enable some <a href=\"%(apps_url)s\">applications</a> to add shortcuts to "
"this page."
msgstr ""
#: templates/index.html:104
#, python-format
msgid ""
"%(box_name)s, a Debian pure blend, is a 100%% free software self-hosting web "
"server to deploy social applications on small machines. It provides online "
"communication tools respecting your privacy and data ownership."
msgstr ""
#: templates/index.html:113
#, python-format
msgid ""
"This portal is a part of the %(box_name)s web interface. %(box_name)s is "
"free software, distributed under the GNU Affero General Public License, "
"Version 3 or later."
msgstr ""
#: templates/index.html:131
msgid "Source Code"
msgstr ""
#: templates/index.html:136
msgid "Homepage"
msgstr ""
#: templates/index.html:139 templates/toolbar.html:19
msgid "Donate"
msgstr ""
#: templates/index.html:143
msgid "FreedomBox Foundation"
msgstr ""
#: templates/index.html:150
msgid "Forum"
msgstr ""
#: templates/index.html:155
msgid "IRC Chatroom"
msgstr ""
#: templates/index.html:160
msgid "Mailing list"
msgstr ""
#: templates/internal-zone.html:11
#, python-format
msgid ""
"<em>%(service_name)s</em> is available only on internal networks or when the "
"client is connected to %(box_name)s through VPN."
msgstr ""
#: templates/internal-zone.html:17
msgid "Currently there are no network interfaces configured as internal."
msgstr ""
#: templates/internal-zone.html:19
#, python-format
msgid ""
"Currently the following network interfaces are configured as internal: "
"%(interface_list)s"
msgstr ""
#: templates/messages.html:11
msgid "Close"
msgstr ""
#: templates/notifications-dropdown.html:11
msgid "Notifications"
msgstr ""
#: templates/port-forwarding-info.html:8
msgid "Port Forwarding"
msgstr ""
#: templates/port-forwarding-info.html:13
#, python-format
msgid ""
"Your FreedomBox is <a href=\"%(networks_url)s\">not behind a router</a>. No "
"action is necessary."
msgstr ""
#: templates/port-forwarding-info.html:19
#, python-format
msgid ""
"Your FreedomBox is <a href=\"%(networks_url)s\"> behind a router</a> and you "
"are using the DMZ feature to forward all ports. No further router "
"configuration is necessary."
msgstr ""
#: templates/port-forwarding-info.html:26
#, python-format
msgid ""
"Your FreedomBox is <a href=\"%(networks_url)s\">behind a router</a> and you "
"are not using the DMZ feature. You will need to set up port forwarding on "
"your router. You should forward the following ports for %(service_name)s:"
msgstr ""
#: templates/port-forwarding-info.html:37
#, fuzzy
#| msgid "Service Discovery"
msgid "Service Name"
msgstr "發現服務"
#: templates/port-forwarding-info.html:38
msgid "Protocol"
msgstr ""
#: templates/port-forwarding-info.html:39
msgid "From Router/WAN Ports"
msgstr ""
#: templates/port-forwarding-info.html:40
#, python-format
msgid "To %(box_name)s Ports"
msgstr ""
#: templates/setup.html:19
msgid "Application installed."
msgstr "應用已完成安裝。"
#: templates/setup.html:26
msgid "Install this application?"
msgstr ""
#: templates/setup.html:30
msgid "This application needs an update. Update now?"
msgstr ""
#: templates/setup.html:41
msgid "This application is currently not available in your distribution."
msgstr ""
#: templates/setup.html:45
msgid "Check again"
msgstr ""
#: templates/setup.html:50
msgid ""
"<strong>Conflicting Packages:</strong> Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
#: templates/setup.html:66
msgid "Install"
msgstr ""
#: templates/setup.html:68
msgid "Update"
msgstr ""
#: templates/toolbar.html:39 templates/toolbar.html:40
#, fuzzy
#| msgid "Backups"
msgid "Backup"
msgstr "Backups 模組"
#: templates/toolbar.html:53
msgid "Re-run setup"
msgstr ""
#: templates/toolbar.html:59 templates/toolbar.html:60
#: templates/uninstall.html:30
#, fuzzy
#| msgid "Application installed."
msgid "Uninstall"
msgstr "應用已完成安裝。"
#: templates/uninstall.html:11
#, python-format
msgid "Uninstall App <em>%(app_name)s</em>?"
msgstr ""
#: templates/uninstall.html:17
msgid ""
"All app data and configuration will be permanently lost. App may be "
"installed freshly again."
msgstr ""
#: views.py:268
msgid "Setting unchanged"
msgstr ""
#: views.py:502
#, python-brace-format
msgid "before uninstall of {app_id}"
msgstr ""
#: web_framework.py:114
msgid "Gujarati"
msgstr ""
#, fuzzy, python-brace-format
#~| msgid "Error installing application: {string} {details}"
#~ msgid "Error installing app: {string} {details}"
#~ msgstr "安裝過程中遇到錯誤:{string}{details}"
#, fuzzy, python-brace-format
#~| msgid "Error installing application: {string} {details}"
#~ msgid "Error updating app: {string} {details}"
#~ msgstr "安裝過程中遇到錯誤:{string}{details}"
#, fuzzy, python-brace-format
#~| msgid "Error installing application: {string} {details}"
#~ msgid "Error uninstalling app: {string} {details}"
#~ msgstr "安裝過程中遇到錯誤:{string}{details}"
#~ msgid "Page source"
#~ msgstr "來源頁面"
#~ msgid "Enable DNSSEC"
#~ msgstr "啟用域名系統安全擴充 DNSSEC"
#~ msgid "Enable Domain Name System Security Extensions"
#~ msgstr "啟用網域名稱系統安全擴充功能"
#, fuzzy
#~| msgid "Error During Backup"
#~ msgid "Error running apt-get"
#~ msgstr "備份時發生錯誤"
#~ msgid ""
#~ "Cockpit requires that you access it through a domain name. It will not "
#~ "work when accessed using an IP address as part of the URL."
#~ msgstr ""
#~ "Cockpit 需要您透過網域名稱存取它。當 URL 使用 IP 位址為其中一部分時會無法"
#~ "使用。"
#~ msgid "Access"
#~ msgstr "存取"
#~ msgid "Cockpit will only work when accessed using the following URLs."
#~ msgstr "Cockpit 只有在使用下列 URL 存取時才能存取。"
#, fuzzy
#~| msgid "Web Server"
#~ msgid "WebRTC server"
#~ msgstr "網頁伺服器"
#, fuzzy
#~| msgid "Enable DNSSEC"
#~ msgid "Enable"
#~ msgstr "啟用域名系統安全擴充 DNSSEC"
#, fuzzy
#~| msgid "Delete files"
#~ msgid "Delete selected"
#~ msgstr "刪除檔案"
#, fuzzy
#~| msgid "Create Repository"
#~ msgid "Create home directory"
#~ msgstr "建立儲存庫"