/*
 * Locale definitions for Arabic (Kuwait)
 *
 * Copyright 2002 Alexandre Julliard for CodeWeavers
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#pragma code_page(65001) /* UTF-8 */

STRINGTABLE LANGUAGE LANG_ARABIC, SUBLANG_ARABIC_KUWAIT
{
  LOCALE_FONTSIGNATURE L"\x60af\x8000\x3848\x1000\x0008\x0000\x0000\x0800\x0040\x0000\x0000\x2000\x0040\x0000\x0000\x2008"
  LOCALE_ICALENDARTYPE "1"
  LOCALE_ICENTURY "1"
  LOCALE_ICOUNTRY "965"
  LOCALE_ICURRDIGITS "3"
  LOCALE_ICURRENCY "2"
  LOCALE_IDATE "1"
  LOCALE_IDAYLZERO "1"
  LOCALE_IDEFAULTANSICODEPAGE "1256"
  LOCALE_IDEFAULTCODEPAGE "720"
  LOCALE_IDEFAULTCOUNTRY "965"
  LOCALE_IDEFAULTEBCDICCODEPAGE "20420"
  LOCALE_IDEFAULTLANGUAGE "3401"
  LOCALE_IDEFAULTMACCODEPAGE "10004"
  LOCALE_IDEFAULTUNIXCODEPAGE "28596"
  LOCALE_IDIGITS "3"
  LOCALE_IDIGITSUBSTITUTION "0"
  LOCALE_IFIRSTDAYOFWEEK "5"
  LOCALE_IFIRSTWEEKOFYEAR "0"
  LOCALE_IINTLCURRDIGITS "3"
  LOCALE_ILANGUAGE "3401"
  LOCALE_ILDATE "1"
  LOCALE_ILZERO "1"
  LOCALE_IMEASURE "0"
  LOCALE_IMONLZERO "1"
  LOCALE_INEGCURR "3"
  LOCALE_INEGNUMBER "3"
  LOCALE_INEGSEPBYSPACE "0"
  LOCALE_INEGSIGNPOSN "2"
  LOCALE_INEGSYMPRECEDES "1"
  LOCALE_INEUTRAL "0"
  LOCALE_IOPTIONALCALENDAR "6"
  LOCALE_IPAPERSIZE "9"
  LOCALE_IPOSSEPBYSPACE "1"
  LOCALE_IPOSSIGNPOSN "2"
  LOCALE_IPOSSYMPRECEDES "1"
  LOCALE_IREADINGLAYOUT "1"
  LOCALE_ITIME "0"
  LOCALE_ITIMEMARKPOSN "0"
  LOCALE_ITLZERO "1"
  LOCALE_S1159 "ص"
  LOCALE_S2359 "م"
  LOCALE_SABBREVCTRYNAME "KWT"
  LOCALE_SABBREVDAYNAME1 "الاثنين"
  LOCALE_SABBREVDAYNAME2 "الثلاثاء"
  LOCALE_SABBREVDAYNAME3 "الاربعاء"
  LOCALE_SABBREVDAYNAME4 "الخميس"
  LOCALE_SABBREVDAYNAME5 "الجمعة"
  LOCALE_SABBREVDAYNAME6 "السبت"
  LOCALE_SABBREVDAYNAME7 "الاحد"
  LOCALE_SABBREVLANGNAME "ARK"
  LOCALE_SABBREVMONTHNAME1 "يناير"
  LOCALE_SABBREVMONTHNAME2 "فبراير"
  LOCALE_SABBREVMONTHNAME3 "مارس"
  LOCALE_SABBREVMONTHNAME4 "ابريل"
  LOCALE_SABBREVMONTHNAME5 "مايو"
  LOCALE_SABBREVMONTHNAME6 "يونيو"
  LOCALE_SABBREVMONTHNAME7 "يوليو"
  LOCALE_SABBREVMONTHNAME8 "اغسطس"
  LOCALE_SABBREVMONTHNAME9 "سبتمبر"
  LOCALE_SABBREVMONTHNAME10 "اكتوبر"
  LOCALE_SABBREVMONTHNAME11 "نوفمبر"
  LOCALE_SABBREVMONTHNAME12 "ديسمبر"
  LOCALE_SABBREVMONTHNAME13 ""
  LOCALE_SCOUNTRY "Kuwait"
  LOCALE_SCURRENCY "د.ك.‏"
  LOCALE_SDATE "/"
  LOCALE_SDAYNAME1 "الاثنين"
  LOCALE_SDAYNAME2 "الثلاثاء"
  LOCALE_SDAYNAME3 "الاربعاء"
  LOCALE_SDAYNAME4 "الخميس"
  LOCALE_SDAYNAME5 "الجمعة"
  LOCALE_SDAYNAME6 "السبت"
  LOCALE_SDAYNAME7 "الاحد"
  LOCALE_SDECIMAL "."
  LOCALE_SENGCOUNTRY "Kuwait"
  LOCALE_SENGCURRNAME "Kuwaiti Dinar"
  LOCALE_SENGLANGUAGE "Arabic"
  LOCALE_SGROUPING "3;0"
  LOCALE_SINTLSYMBOL "KWD"
  LOCALE_SISO3166CTRYNAME "KW"
  LOCALE_SISO639LANGNAME "ar"
  LOCALE_SLANGUAGE "Arabic (Kuwait)"
  LOCALE_SLIST ";"
  LOCALE_SLONGDATE "dd MMMM, yyyy"
  LOCALE_SMONDECIMALSEP "."
  LOCALE_SMONGROUPING "3;0"
  LOCALE_SMONTHNAME1 "يناير"
  LOCALE_SMONTHNAME2 "فبراير"
  LOCALE_SMONTHNAME3 "مارس"
  LOCALE_SMONTHNAME4 "ابريل"
  LOCALE_SMONTHNAME5 "مايو"
  LOCALE_SMONTHNAME6 "يونيو"
  LOCALE_SMONTHNAME7 "يوليو"
  LOCALE_SMONTHNAME8 "اغسطس"
  LOCALE_SMONTHNAME9 "سبتمبر"
  LOCALE_SMONTHNAME10 "اكتوبر"
  LOCALE_SMONTHNAME11 "نوفمبر"
  LOCALE_SMONTHNAME12 "ديسمبر"
  LOCALE_SMONTHNAME13 ""
  LOCALE_SMONTHOUSANDSEP ","
  LOCALE_SNAME "ar-KW"
  LOCALE_SNATIVECTRYNAME "الكويت"
  LOCALE_SNATIVECURRNAME "دينار كويتي"
  LOCALE_SNATIVEDIGITS L"\x0660\x0661\x0662\x0663\x0664\x0665\x0666\x0667\x0668\x0669"
  LOCALE_SNATIVEDISPLAYNAME "العربية (الكويت)"
  LOCALE_SNATIVELANGNAME "العربية"
  LOCALE_SNEGATIVESIGN "-"
  LOCALE_SOPENTYPELANGUAGETAG "ARA "
  LOCALE_SPOSITIVESIGN ""
  LOCALE_SSCRIPTS "Arab;"
  LOCALE_SSHORTDATE "dd/MM/yyyy"
  LOCALE_SSHORTESTDAYNAME1 "ن"
  LOCALE_SSHORTESTDAYNAME2 "ث"
  LOCALE_SSHORTESTDAYNAME3 "ر"
  LOCALE_SSHORTESTDAYNAME4 "خ"
  LOCALE_SSHORTESTDAYNAME5 "ج"
  LOCALE_SSHORTESTDAYNAME6 "س"
  LOCALE_SSHORTESTDAYNAME7 "ح"
  LOCALE_SSHORTTIME "hh:mm tt"
  LOCALE_SSORTNAME "Default"
  LOCALE_STHOUSAND ","
  LOCALE_STIME ":"
  LOCALE_STIMEFORMAT "hh:mm:ss tt"
  LOCALE_SYEARMONTH "MMMM, yyyy"

  LGRPID_WESTERN_EUROPE+LGRPID_RES_BASE "Western Europe and United States"
  LGRPID_CENTRAL_EUROPE+LGRPID_RES_BASE "Central Europe"
  LGRPID_BALTIC+LGRPID_RES_BASE "Baltic"
  LGRPID_GREEK+LGRPID_RES_BASE "Greek"
  LGRPID_CYRILLIC+LGRPID_RES_BASE "Cyrillic"
  LGRPID_TURKISH+LGRPID_RES_BASE "Turkic"
  LGRPID_JAPANESE+LGRPID_RES_BASE "Japanese"
  LGRPID_KOREAN+LGRPID_RES_BASE "Korean"
  LGRPID_TRADITIONAL_CHINESE+LGRPID_RES_BASE "Traditional Chinese"
  LGRPID_SIMPLIFIED_CHINESE+LGRPID_RES_BASE "Simplified Chinese"
  LGRPID_THAI+LGRPID_RES_BASE "Thai"
  LGRPID_HEBREW+LGRPID_RES_BASE "Hebrew"
  LGRPID_ARABIC+LGRPID_RES_BASE "Arabic"
  LGRPID_VIETNAMESE+LGRPID_RES_BASE "Vietnamese"
  LGRPID_INDIC+LGRPID_RES_BASE "Indic"
  LGRPID_GEORGIAN+LGRPID_RES_BASE "Georgian"
  LGRPID_ARMENIAN+LGRPID_RES_BASE "Armenian"
}
