#
# Copyright 2008 Google Inc.
# 
# 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.
#

firstName = <b>الاسم الأول:</b>
lastName = <b>الاسم الأخير:</b>
favoriteColor = <b>اللون المفضل:</b>

red = الاحمر
green = الخضراء
yellow = الاصفر
blue = زرقاء
black = أسود
white = أبيض
grey = الرمادية
lightGrey = ضوء الرمادية

colorMap = red, white, yellow, black, blue, green, grey, lightGrey
