/*
 * Locale definitions for Persian
 *
 * 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_PERSIAN, SUBLANG_DEFAULT
{
  LOCALE_FONTSIGNATURE L"\x60af\x8000\x3848\x1000\x0008\x0000\x0000\x0800\x0040\x0000\x0000\x2000\x0040\x0000\x0000\x2008"
  LOCALE_ICALENDARTYPE "2"
  LOCALE_ICENTURY "1"
  LOCALE_ICOUNTRY "981"
  LOCALE_ICURRDIGITS "2"
  LOCALE_ICURRENCY "2"
  LOCALE_IDATE "2"
  LOCALE_IDAYLZERO "1"
  LOCALE_IDEFAULTANSICODEPAGE "1256"
  LOCALE_IDEFAULTCODEPAGE "720"
  LOCALE_IDEFAULTCOUNTRY "981"
  LOCALE_IDEFAULTEBCDICCODEPAGE "20420"
  LOCALE_IDEFAULTLANGUAGE "0429"
  LOCALE_IDEFAULTMACCODEPAGE "10004"
  LOCALE_IDEFAULTUNIXCODEPAGE "65001"
  LOCALE_IDIGITS "2"
  LOCALE_IDIGITSUBSTITUTION "0"
  LOCALE_IFIRSTDAYOFWEEK "5"
  LOCALE_IFIRSTWEEKOFYEAR "0"
  LOCALE_IINTLCURRDIGITS "2"
  LOCALE_ILANGUAGE "0429"
  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 "2"
  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 "IRN"
  LOCALE_SABBREVDAYNAME1 "دوشنبه"
  LOCALE_SABBREVDAYNAME2 "سه‌شنبه"
  LOCALE_SABBREVDAYNAME3 "چهارشنبه"
  LOCALE_SABBREVDAYNAME4 "پنج‌شنبه"
  LOCALE_SABBREVDAYNAME5 "جمعه"
  LOCALE_SABBREVDAYNAME6 "شنبه"
  LOCALE_SABBREVDAYNAME7 "یک‌شنبه"
  LOCALE_SABBREVLANGNAME "FAR"
  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 "Iran"
  LOCALE_SCURRENCY "ریال"
  LOCALE_SDATE "/"
  LOCALE_SDAYNAME1 "دوشنبه"
  LOCALE_SDAYNAME2 "سه‌شنبه"
  LOCALE_SDAYNAME3 "چهارشنبه"
  LOCALE_SDAYNAME4 "پنج‌شنبه"
  LOCALE_SDAYNAME5 "جمعه"
  LOCALE_SDAYNAME6 "شنبه"
  LOCALE_SDAYNAME7 "یک‌شنبه"
  LOCALE_SDECIMAL "٫"
  LOCALE_SENGCOUNTRY "Iran"
  LOCALE_SENGCURRNAME "Iranian Rial"
  LOCALE_SENGLANGUAGE "Persian"
  LOCALE_SGROUPING "3;0"
  LOCALE_SINTLSYMBOL "IRR"
  LOCALE_SISO3166CTRYNAME "IR"
  LOCALE_SISO639LANGNAME "fa"
  LOCALE_SLANGUAGE "Persian (Iran)"
  LOCALE_SLIST "؛"
  LOCALE_SLONGDATE "yyyy/MM/dd"
  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 "fa-IR"
  LOCALE_SNATIVECTRYNAME "ایران"
  LOCALE_SNATIVECURRNAME "ریال"
  LOCALE_SNATIVEDIGITS "۰۱۲۳۴۵۶۷۸۹"
  LOCALE_SNATIVEDISPLAYNAME "فارسی (ایران)"
  LOCALE_SNATIVELANGNAME "فارسی"
  LOCALE_SNEGATIVESIGN "-"
  LOCALE_SOPENTYPELANGUAGETAG "FAR "
  LOCALE_SPOSITIVESIGN ""
  LOCALE_SSCRIPTS "Arab;"
  LOCALE_SSHORTDATE "yyyy/MM/dd"
  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 "yyyy/MM"

  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"
}
