<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2010 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_name" msgid="5128188288358721369">"Lebo"</string>
    <string name="title_scanned_tag" msgid="4347835407095551450">"Lebo mpya imekusanywa"</string>
    <string name="title_existing_tag" msgid="5656560272594190244">"Lebo"</string>
    <string name="tab_tags" msgid="3254131516215269385">"Lebo"</string>
    <string name="tab_starred" msgid="3892615665321783044">"Yenye Nyota"</string>
    <string name="tab_my_tag" msgid="4194581094362833242">"Lebo yangu"</string>
    <string name="tag_unknown" msgid="2897956823877728783">"Aina ya lebo isiyojulikana"</string>
    <string name="tag_empty" msgid="3726529819932095782">"Lebo tupu"</string>
    <string name="button_delete" msgid="8636971153075546776">"Futa"</string>
    <string name="button_done" msgid="7048822758098308158">"Kwisha"</string>
    <string name="button_save" msgid="1396693475082322626">"Hifadhi"</string>
    <string name="button_cancel" msgid="8094182910311905776">"Ghairi"</string>
    <string name="cancel_help_text" msgid="2582335582642459522">"Ili kuruka kuongeza lebo hii kwenye mkusanyiko wako, gusa Kwisha"</string>
    <string name="action_text" msgid="577417996159152923">"Maandishi <xliff:g id="PHONE_NUMBER">%s</xliff:g>"</string>
    <string name="action_call" msgid="6226253647953184035">"Piga simu <xliff:g id="PHONE_NUMBER">%s</xliff:g>"</string>
    <string name="turn_on_my_tag" msgid="6584695906051991524">"Shiriki lebo yangu"</string>
    <!-- no translation found for edit_tag (3708659122033447892) -->
    <skip />
    <string name="turn_on_my_tag_subtitle" msgid="4174686056239752759">"Ruhusu wengine kusoma lebo yangu"</string>
    <string name="add_content" msgid="6592975981339055673">"Zaidi…"</string>
    <string name="tag_title" msgid="4734199420853998617">"Kichwa"</string>
    <string name="tag_text" msgid="522896767632155048">"Maandishi"</string>
    <string name="select_type" msgid="1845302736320827995">"Chagua aina ili kuongeza"</string>
    <string name="photo" msgid="986413518082114481">"Picha"</string>
    <string name="bad_photo" msgid="1601260684495341633">"Haiwezi kufungua taswira."</string>
    <string name="url" msgid="5939765162489949437">"URL"</string>
    <string name="contact" msgid="8810195884019228695">"Anwani"</string>
    <string name="location" msgid="2476366526591580807">"Mahali"</string>
    <string name="empty_tag_prompt" msgid="4206394383309956030">"Lebo hii iko tupu."</string>
    <string name="empty_tag_instructions" msgid="9156733538909958916">"Gusa "<b>" Andika lebo"</b>" ili kuongeza maudhui."</string>
    <string name="write" msgid="4957259770248890625">"Andika lebo"</string>
    <string name="cancel" msgid="2168193471147260328">"Ghairi"</string>
    <string name="menu_help" msgid="2340550693525288105">"Msaada"</string>
    <string name="import_vcard" msgid="5104299047930666528">"Ingiza ^1"</string>
    <string name="mime_display_name" msgid="5926357152623764485">"Data kutoka kwa lebo ya NFC"</string>
    <string name="dialog_title_nfc_off" msgid="6945643404976801203">"NFC imezimwa"</string>
    <string name="dialog_text_nfc_off" msgid="6323019332983777990">"Lazima uwashe NFC ili kuchanganua lebo."</string>
    <string name="button_settings" msgid="6909066985958159920">"Mipangilio"</string>
    <string name="empty_list" msgid="1306390399412856676">"Hujachanganua lebo zozote."</string>
    <string name="empty_list_starred" msgid="7185947321271594216">"Huna lebo zozote zenye nyota."</string>
    <string name="button_more_info" msgid="574247138099633767">"Maelezo zaidi"</string>
    <string name="vcard_title" msgid="7122634780732426007">"Maelezo ya anwani ya  ^1"</string>
    <string name="next" msgid="8672447228208567606">"Ifuatayo"</string>
    <string name="back" msgid="7389918385345281227">"Nyuma"</string>
    <string name="close" msgid="5521003720382005075">"Funga"</string>
    <string name="intro_title" msgid="2798106838231744219">"Kuhusu Lebo"</string>
    <string name="intro_text_about" msgid="1366913102380816468">"Lebo ni za kupanga na kushiriki lebo za Mawasiliano ya Karibu na Uga (NFC)."</string>
    <string name="intro_text_usage" msgid="2343260114638598627">"Unachanganua lebo kwa kuwasha simu yako na kuiweka kando ya lebo."</string>
    <string name="intro_text_contents" msgid="1973327615218723220">"Lebo za NFC zinawezakuwa na maandishi, URL, picha, na aina zingine za maelezo."</string>
    <string name="intro_text_more" msgid="4127006088499721149">"Ili kuchanganua au kushiriki lebo, lazima uwashe NFC (katika Mipangilio, chini ya Mitandao isiyotumia waya)."</string>
    <string name="intro_text_more2" msgid="28835616891750572">"Kwa maelezo zaidi, bonyeza Menyu na uguse Msaada kwenye skrini yoyote ya Lebo."</string>
    <string name="tag_deleted" msgid="5411251725532471624">"Lebo imefutwa"</string>
    <string name="add_tag" msgid="703494598879855113">"Ongeza lebo mpya"</string>
    <string name="choose_my_tag" msgid="4208730132705026130">"Chagua lebo ili kushiriki"</string>
    <string name="active_tag" msgid="7417732109196094058">"Amilisha lebo"</string>
    <string name="manage_my_tags" msgid="3616349610711109286">"Dhibiti lebo zangu"</string>
    <string name="menu_delete" msgid="8834253717174232653">"Futa lebo"</string>
    <string name="menu_edit" msgid="2163829689000692138">"Hariri lebo"</string>
    <string name="menu_set_as_active" msgid="6637492981297642733">"Weka kama lebo amilifu"</string>
    <!-- no translation found for no_tag_selected (127078607162539962) -->
    <skip />
    <!-- no translation found for no_tags_created (5963013948308289234) -->
    <skip />
</resources>
