#
# Copyright 2017-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#

# Text that appears in the navigation panel
nav_item_app=應用程式

# View title
title_apps=應用程式

# Control button tooltips
tt_ctl_upload=上傳應用程式 (.oar 檔案)
tt_ctl_activate=啟動選定的應用程式
tt_ctl_deactivate=停用選定的應用程式
tt_ctl_uninstall=移除選定的應用程式
tt_ctl_download=下載選定的應用程式 (.oar 檔案)

# Quick-Help panel
qh_hint_esc=取消選定的應用程式
qh_hint_click_row=選取/取消選定的應用程式
qh_hint_scroll_down=查看更多應用程式

# App details panel
dp_features=特性
dp_required_apps=依賴的應用程式
dp_permissions=權限

# App dialog panel
dlg_confirm_action=確認操作

dlg_warn_deactivate=停用或移除這個元件可能造成負面的影響
dlg_warn_own_risk=**自行承擔風險**
