#
# Copyright 2017-present Open Networking Laboratory
#
# 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.
#
#

# ==========================================
# |  WIP -- Not Yet Ready For Translation  |
# ==========================================
#
# !!!* Sincere apologies to Andrea, for the pseudo-italian :) *!!!
# (I had to use *something* for testing....)

# Text that appears in the navigation panel
nav_item_app=Applicazeone

# View title
title_apps=Applicazeone

# Control button tooltips
tt_ctl_upload=Uploada da applicazoni (.oar file)
tt_ctl_activate=Activata choosi applicazoni
tt_ctl_deactivate=Deactivata choosi applicazoni
tt_ctl_uninstall=Remova choosi applicazoni

# Quick-Help panel
qh_hint_esc=Deselecta da applicz
qh_hint_click_row=Selecta da row to viziliz applicz deetz
qh_hint_scroll_down=Viewa moreoso applicz

# App details panel
dp_features=Featz
dp_required_apps=Requireda Appz
dp_permissions=Permizzionz

# App dialog panel
dlg_confirm_action=Confirma da Actiona

dlg_warn_deactivate=Deactivating or uninstalling this component \
  can have serious negative consequences (biga bada boom)!
dlg_warn_own_risk=** DO SO AT YOUR OWN RISK (We tolda ya so!) **
