<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2008 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="5439897702697364618">"Съхранение на DRM защитено съдържание"</string>
    <string name="permlab_accessDrm" msgid="1806974558208719656">"Достъп до DRM съдържание."</string>
    <string name="permdesc_accessDrm" msgid="3376257809694293454">"Разрешава достъп на приложението до DRM защитено съдържание."</string>
    <string name="permlab_installDrm" msgid="4716871004736576753">"Инсталиране на DRM съдържание."</string>
    <string name="permdesc_installDrm" msgid="8352431922295326348">"Разрешава на приложението да инсталира DRM защитено съдържание."</string>
</resources>
