<?xml version="1.0" encoding="UTF-8"?>
<!-- 
  ~ Copyright (C) 2022 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="rainbow_color_name_red" msgid="7452506008058561006">"Червено"</string>
    <string name="rainbow_color_name_orange" msgid="2921298510262609543">"Оранжево"</string>
    <string name="rainbow_color_name_yellow" msgid="8675574652757989201">"Жълто"</string>
    <string name="rainbow_color_name_green" msgid="1932895389710184112">"Зелено"</string>
    <string name="rainbow_color_name_blue" msgid="3473176664458856892">"Синьо"</string>
    <string name="rainbow_color_name_purple" msgid="2704722524588084868">"Лилаво"</string>
    <string name="rainbow_color_name_magenta" msgid="7248703626077785569">"Пурпурно"</string>
    <string name="monochromatic_name" msgid="2554823570460886176">"Монохроматично"</string>
</resources>
