<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2013 The Android Open Source Project

     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.
 -->

<resources xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="app_label" msgid="3701846017049540910">"Guaska"</string>
    <string name="bugreport_notification_channel" msgid="2574150205913861141">"Raportet e gabimeve"</string>
    <string name="bugreport_in_progress_title" msgid="4311705936714972757">"Raporti i defekteve në kod <xliff:g id="ID">#%d</xliff:g> po krijohet"</string>
    <string name="bugreport_finished_title" msgid="4429132808670114081">"Raporti i defekteve në kod <xliff:g id="ID">#%d</xliff:g> u regjistrua"</string>
    <string name="bugreport_updating_title" msgid="4423539949559634214">"Po shtohen detajet te raporti i defekteve në kod"</string>
    <string name="bugreport_updating_wait" msgid="3322151947853929470">"Qëndro në pritje..."</string>
    <string name="bugreport_finished_text" product="watch" msgid="1223616207145252689">"Raporti i defektit nëkod do të shfaqet së shpejti në telefon"</string>
    <string name="bugreport_finished_text" product="default" msgid="8353769438382138847">"Trokit për të ndarë raportin e defekteve në kod"</string>
    <string name="bugreport_finished_pending_screenshot_text" product="watch" msgid="1474435374470177193">"Trokit për të ndarë raportin e defekteve në kod pa një pamje çasti ose prit që pamja e çastit të përfundojë"</string>
    <string name="bugreport_finished_pending_screenshot_text" product="default" msgid="1474435374470177193">"Trokit për të ndarë raportin e defekteve në kod pa një pamje çasti ose prit që pamja e çastit të përfundojë"</string>
    <string name="bugreport_confirm" msgid="5917407234515812495">"Raportet e gabimeve përmbajnë të dhëna nga skedarë të ndryshëm ditarësh sistemi, që mund të përfshijnë të dhëna që ti i konsideron delikate (të tilla si përdorimi i aplikacioneve dhe të dhënat e vendndodhjes). Ndaji raportet e gabimeve vetëm me aplikacionet dhe personat te të cilët ke besim."</string>
    <string name="bugreport_confirm_dont_repeat" msgid="6179945398364357318">"Mos e shfaq përsëri"</string>
    <string name="bugreport_storage_title" msgid="5332488144740527109">"Raportet e gabimeve"</string>
    <string name="bugreport_unreadable_text" msgid="586517851044535486">"Skedari i raportimit të defektit në kod nuk mund të lexohej."</string>
    <string name="bugreport_add_details_to_zip_failed" msgid="1302931926486712371">"Nuk mund të shtoheshin detajet e raportimit të gabimeve në kod në skedarin .zip"</string>
    <string name="bugreport_unnamed" msgid="2800582406842092709">"e paemërtuar"</string>
    <string name="bugreport_info_action" msgid="2158204228510576227">"Detajet"</string>
    <string name="bugreport_screenshot_action" msgid="8677781721940614995">"Pamja e ekranit"</string>
    <string name="bugreport_screenshot_taken" msgid="5684211273096253120">"Pamja e ekranit u regjistrua me sukses."</string>
    <string name="bugreport_screenshot_failed" msgid="5853049140806834601">"Pamja e ekranit nuk mund të realizohej."</string>
    <string name="bugreport_info_dialog_title" msgid="1355948594292983332">"Detajet e raportit të defekteve në kod <xliff:g id="ID">#%d</xliff:g>"</string>
    <string name="bugreport_info_name" msgid="4414036021935139527">"Emri i skedarit"</string>
    <string name="bugreport_info_title" msgid="2306030793918239804">"Titulli i defektit në kod"</string>
    <string name="bugreport_info_description" msgid="5072835127481627722">"Përmbledhja e defekteve në kod"</string>
    <string name="save" msgid="4781509040564835759">"Ruaj"</string>
    <string name="bugreport_intent_chooser_title" msgid="7605709494790894076">"Ndaj raportin e defektit në kod"</string>
</resources>
