diff --git a/Core.Tests/Core.Tests.csproj b/Core.Tests/Core.Tests.csproj index 93a6dc2..c2a80a5 100644 --- a/Core.Tests/Core.Tests.csproj +++ b/Core.Tests/Core.Tests.csproj @@ -30,8 +30,8 @@ 4 - - ..\packages\NUnit.3.0.1\lib\net45\nunit.framework.dll + + ..\packages\NUnit.3.2.1\lib\net45\nunit.framework.dll True @@ -66,10 +66,10 @@ PreserveNewest - PreserveNewest + PreserveNewest diff --git a/Core.Tests/packages.config b/Core.Tests/packages.config index b183023..1ff5a2d 100644 --- a/Core.Tests/packages.config +++ b/Core.Tests/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Core/Core.csproj b/Core/Core.csproj index b257d4c..ca5b09b 100644 --- a/Core/Core.csproj +++ b/Core/Core.csproj @@ -30,12 +30,12 @@ 4 - - ..\packages\AutoMapper.4.2.0\lib\net45\AutoMapper.dll + + ..\packages\AutoMapper.4.2.1\lib\net45\AutoMapper.dll True - ..\packages\CsvHelper.2.13.2.0\lib\net40-client\CsvHelper.dll + ..\packages\CsvHelper.2.14.2\lib\net45\CsvHelper.dll True @@ -55,7 +55,7 @@ True - ..\packages\NLog.4.2.3\lib\net45\NLog.dll + ..\packages\NLog.4.3.3\lib\net45\NLog.dll True diff --git a/Core/packages.config b/Core/packages.config index 527df52..506c342 100644 --- a/Core/packages.config +++ b/Core/packages.config @@ -1,10 +1,10 @@  - - + + - + \ No newline at end of file diff --git a/Web.Tests/Web.Tests.csproj b/Web.Tests/Web.Tests.csproj index 6a8cebf..979ee30 100644 --- a/Web.Tests/Web.Tests.csproj +++ b/Web.Tests/Web.Tests.csproj @@ -30,8 +30,8 @@ 4 - - ..\packages\NUnit.3.0.0\lib\net45\nunit.framework.dll + + ..\packages\NUnit.3.2.1\lib\net45\nunit.framework.dll True diff --git a/Web.Tests/app.config b/Web.Tests/app.config index 3a4dafb..df675d5 100644 --- a/Web.Tests/app.config +++ b/Web.Tests/app.config @@ -10,6 +10,10 @@ + + + + \ No newline at end of file diff --git a/Web.Tests/packages.config b/Web.Tests/packages.config index 653bfb7..1ff5a2d 100644 --- a/Web.Tests/packages.config +++ b/Web.Tests/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Web/App_Start/BundleConfig.cs b/Web/App_Start/BundleConfig.cs index ca89069..2a6b3cf 100644 --- a/Web/App_Start/BundleConfig.cs +++ b/Web/App_Start/BundleConfig.cs @@ -1,4 +1,5 @@ -using Backload.Bundles;using System.Web.Optimization; +using System.Web.Optimization; +using Backload.Bundles; namespace LeafWeb.Web.App_Start { diff --git a/Web/Backload/Config/Web.Backload.xsd b/Web/Backload/Config/Web.Backload.xsd index fd13164..46e93e9 100644 --- a/Web/Backload/Config/Web.Backload.xsd +++ b/Web/Backload/Config/Web.Backload.xsd @@ -2,22 +2,48 @@ - + - Basic settings for the Backload. component library. TIP: You do not need to include any of these setting in your web.config or external config file, if these default settings suit your needs. + Basic settings for the Backload component library. TIP: You do not need to include any of these setting in your web.config or external config file, if these default settings suit your needs. - Sets the attributes for Filesystem storage + Sets the attributes for filesystem storage - Root upload folder. If the value starts with '~/' (e.g. ~/files) the path is relative to the web root, otherwise set an absolute local path (e.g. d:/files) [Default: "~/Files"] - Special subfolder within the filesRoot to store user related files like photos etc. Set it to usersRoot="" if you do not need this subfolder [Default: ""] + Root upload folder. If the value starts with '~/' (e.g. ~/files) the path is relative to the web application root, otherwise set an absolute local path (e.g. d:\files) and also set a the virtual path name in the "virtualDirectory" attribute [Default: "~/Files"] + Name of virtual directory in your IIS application to an external storage location (unc or full file system path). If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the external path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] Subfolder within the filesRoot. Set it to objectsRoot="" if you do not need a subfolder [Default: ""] Root of a folder where Backload stores a copy of an uploaded file, if set to a none empty string. If the value is empty ("") not copies are stored. If the value starts with '~/' (e.g. ~/copies) the path is relative to the web root. if the value not starts with '~/' and it isn't an absolute local path, the value will be treated as a subfolder to filesRoot ('copies' -> ~/files/copies). Otherwise set an absolute local path (e.g. d:/backup) [Default: ""] - Temporäry folder prefix if file chunks are uploaded into the upload folder before they are merged [Default: "_____"]. + Temporäry folder prefix if file chunks are uploaded into the upload folder before they are merged [Default: "$$"]. + Subfolder for supporting files (previews, mappings, etc). If "auxFilesFolder" is not empty (e.g. auxFilesFolder="_aux") supporting files will be stored in an external path ([filesRoot]\[auxFilesFolder]\). In this case the main upload directories only contain the uploaded files. [Default: ""]. + + + + + Provides setting for database configuration. Supports codeless storage (no application code needed), Entity Framework, Sql FileStreams, Sql FileTables and external file storage (filesystem). + + + Name of the database connection (see Web.config). Can also be a connection string. [Default: "FilesContext"] + Name of the underlying database table [Default: "Files"] + Name of the SqlFileTable if a SqlFileTable is running on Sql Server. In a SqlFileTable, files will be stored outside of the database file in a filesystem directory, but managed by the database engine. This allows to store very large files. In contrast to SqlFileStreams, SqlFileTable files can be accessed, created and deleted directly within the file system as normal files. This allows us for example to copy a file with the explorer to the FileTable's directory in the file system where Sql Server catches the file and manages it. When you create a virtual path in IIS to the FileTable directory in the filesystem, A client can download the files in the SqlFileTable directly from the browser. FileTables (SQL Server). [Default: "FileTable"]. + Defines if files are stored within the database file or as SqlFiieStream. SqlFIleStreams are stored outside of the database file as blob within the file system, but they are managed by the database engine. When using SqlFileStreams, SQL Server and the database must enable the SqlFileStream feature. More info: FILESTREAM (SQL Server). [Default: "Internal"] + + + Files will be stored within the database (default). + Files will be stored as SqlFileStream outside of the database file in a filesystem directory, but managed by the database engine. This allows us to store very large files. More info: FILESTREAM (SQL Server). Unlike SqlFileTable, files (blobs) cannot be accessed directly on the file system. + Like SqlFileStreams, files will be stored in a SqlFileTable outside of the database file in a filesystem directory, but managed by the database engine. This allows us to store very large files. More info: FileTables (SQL Server). Unlike SqlFileStreams FileTable files can be accessed, created and deleted within the file system as normal file. This allows us for example to copy a file with the explorer to the FileTable's directory in the file system where Sql Server catches the file and manages it. You can also enable a client to directory download the file if you create a virtual path from IIS to the FileTable directory. + Files will be stored on the filesystem. A virtual path in the database points to the file. + + + + Storage mode "SqlFileTable" or "FileSystem" only. This setting is only needed if direct download of files is enabled in the configuration with the setting filesUrlPattern="{url}" (default: {backload}). Note: Direct download of files is only available in the storage modes "SqlFileTable" and "FileSystem", because in these modes files are stored as regular files on the file system. As in standard filesystem storage, VirtualDirectory needs to be set as the name of a virtual directory in IIS or an absolute url //if the file system to download files is outside the web application (e.g. UNC shares). VirtualDirectory represents the name of virtual path in your IIS application to an external storage location. If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the absolute path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] + Root path of the file directory when using external file storage (storageMode: SqlFileTable or FileSystem) (SqlFileTable example: "\\Server\SQLEXPRESS\FILES\Uploads\" where "FILES" is the database and "Uploads" is the name of the SqlFileTable.) (FilePath example: z:\Uploads). NOTE: If rootPath is not configured in storageMode "SqlFileTable", rootPath will be automatically retrieved from Sql Server. [Default: "~/Files"] + If set to a none empty string, this setting is used to store file chunks, before the full uploaded file will be stored into the database. If you use chunked file uploads, it is recommend to store the chunks in a temporary directory to get best performance. (Examples: "~/Files/Temp/" (app relative), "z:\dbstorage\temp\" (absolute), "\\server\dbstorage\temp\" (unc)) [Default: ""] + If the data model has different column names than the defaults (e.g. FileId instead of the default Id), a column mapping for column names can be set. Example: columnMapping="{Id=FileId,Name=FileName,Original=OriginalName}". See also the database demo package. [Default: ""] + Name of the plugin file, e.g. extension="Backload.Plugin.Database.dll". If this is an empty string the extension name will be automatically set to: "Backload.Plugin.Database.dll [Default: "Backload.Plugin.Database.dll"] @@ -25,8 +51,23 @@ Sets the attributes for cloud storage - - + + + + Microsoft Azure File storage settings + + + Root upload folder. If the value starts with '~/' (e.g. ~/files) the path is relative to the web application root, otherwise set an absolute local path (e.g. d:\files) and also set a the virtual path name in the "virtualDirectory" attribute [Default: "~/Files"] + Name of virtual path in your IIS application to an external storage location (unc or full file system path). If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the external path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] + Special subfolder within the filesRoot to store user related files like photos etc. Set it to usersRoot="" if you do not need this subfolder [Default: ""] + Subfolder within the filesRoot. Set it to objectsRoot="" if you do not need a subfolder [Default: ""] + Root of a folder where Backload stores a copy of an uploaded file, if set to a none empty string. If the value is empty ("") not copies are stored. If the value starts with '~/' (e.g. ~/copies) the path is relative to the web root. If the value not starts with '~/' and it isn't an absolute local path, the value will be treated as a subfolder to filesRoot ('copies' -> ~/files/copies). Otherwise set an absolute local path (e.g. d:/backup) [Default: ""] + Temporary folder prefix if file chunks are uploaded into the upload folder before they are merged [Default: "$$"]. + Subfolder for supporting files (previews, mappings, etc). If "auxFilesFolder" is not empty (e.g. auxFilesFolder="_aux") supporing files will be stored in an external path ([filesRoot]\[auxFilesFolder]\). In this case the main upload directories only contain the uploaded files. [Default: ""]. + Name of the plugin file, e.g. extension="Backload.Plugin.AzureFileStorage.dll". If this is an empty string the extension name will be automatically set to: "Backload.Plugin.AzureFileStorage.dll [Default: "Backload.Plugin.AzureFileStorage.dll"] + + + Microsoft Azure Blob storage settings @@ -41,12 +82,47 @@ No public access. Anyone with the url can get or list, but not store or delete files. - Ad-hoc shared access signature (SAS). Storage access requires a valid access token. + Ad-hoc shared access signature (SAS). Storage access requires a valid access token [Default]. A shared (stored) access policy will be used. Define a name of the stored policy within the storedPolicyName attribute. Note: Note: Your code is responsable to renew the policy before it expires! + Sets the container existence checking and auto creation behavior [Default: "auto"] + + + Container existence is verified on first access, created it if neccessary, after that assumed that the container exists (Default). + Verify container exsistence on every request and try to create it if it not exists. + No checks for container exsistence. The containers (files, previews, [archives]) must be available (pre-created) on a request. + + + If accessType is set to "storedPolicy", this is the name of the shared access policy. Note: Your code is responsable to renew the policy before it expires! [Default: "backload"] + Name of the plugin file, e.g. extension="Backload.Plugin.AzureBlobStorage.dll". If this is an empty string the extension name will be automatically set to: "Backload.Plugin.AzureBlobStorage.dll [Default: "Backload.Plugin.AzureBlobStorage.dll"] + + + + + + Google Drive storage settings + + Azure Storage Service connection string name, usually located in the .cscfg file or Web.config. If this is an empty string, the local storage emulator will be used [Default: "StorageConnectionString"] + Name of the files upload container. Example: uploadContainer="files". Must start with a lowercase letter. Automatically created if it doesn't exist [Default: "files"] + Azure Storage Service connection string name, usually located in the .cscfg file or Web.config. If this is an empty string, the local storage emulator will be used [Default: "StorageConnectionString"] + Virtual subfolder within the uploadContainer. Set it to objectsRoot="" if you do not need a subfolder [Default: ""] + Sas access type only. Time period (in minutes) before the shared access token expires. [Default: "60"] + Sas access type only. Time period (in minutes) before the shared access token expires. [Default: "60"] + Root upload folder. [Default: "Files"] + Subfolder within the filesRoot. Set it to objectsRoot="" if you do not need a subfolder [Default: ""] + Public access type to the uploaded files [Default: "token"] + + + All files are stored on a central Google Drive accout in the same upload folder. All users have access to all uploaded files. + All files are stored on a central Google Drive accout into an user individual folder. User only has access to his uploaded files. + Files are stored in the users Google Drive account. The user must have a Google Drive account. + + + + Name of the plugin file, e.g. extension="Backload.Plugin.GoogleDrive.dll". If this is an empty string the extension name will be automatically set to: "Backload.Plugin.GoogleDrive.dll [Default: "Backload.Plugin.GoogleDrive.dll"] @@ -54,10 +130,11 @@ Microsoft Azure Blob storage provider + Microsoft Azure File storage provider + Google Drive storage provider - Name of the extension file, e.g. extension="Backload.Plugin.AzureBlobStorage.dll". If this is an empty string the extension name will be automatically set to: "Backload.Plugin.[serviceProvider].dll [Default: ""] @@ -74,10 +151,10 @@ Setting for the handling of uploaded images. - Width or max width (depends on resizeMode) of the resulting image [Range: 20-5000, Default: "1024"] - Height or max height (depends on resizeMode) of the resulting image [Range: 20-5000, Default: "768"] - Resolution of the resulting image (dots per inch) [Range: 72-600, Default: "96"] - Background color of the canvas. Only used when resize mode is fit and the image ratio of the source and target image differ. You can also use argb (rgb with alpha channel, e.g. background: #00ffffff (transparent), #80ffffff (white, 50% transparency), #ffffffff (white, opaque)) [Default: #ffffff] + Width or max width (depends on resizeMode) of the resulting image [Range: 1-100000, Default: "1024"] + Height or max height (depends on resizeMode) of the resulting image [Range: 1-100000, Default: "768"] + Resolution of the resulting image (dots per inch). If set to -1 resolution of the original image is used. [Range: 1-2400, Default: "96"] + Background color of the canvas. Only used when resize mode is fit and the image ratio of the source and target image differ. You can also use argb (rgb with alpha channel, e.g. background: #00ffffff (transparent), #80ffffff (white, 50% transparency), #ffffffff (white, opaque)) [Default: #ffffff] Sets the resize mode if the image should be resized into a max width or height canvas [Default: "none"] @@ -99,6 +176,7 @@ Files with .tif or .tiff extension Files with .gif extension Microsoft bitmap format. + JPEG extended range (MS Photo) format @@ -121,10 +199,11 @@ Setting for the handling of thumbnails. + If set to "true" (default), preview images are stored physically. If this attribute is set to false and you request preview images (e.g. in a plugin ui) thumbnails have to be created on every request. If you usually use preview images it is recommed to set this attribute to "true". [Default: "true"] Location of the thumbnail subfolder within the folder where the main file is stored (thumbnails only). Set to an empty string (path="") to avoid physical storage. [Default: "_thumbs"] - Width or max width (depends on resizeMode) of the resulting thumbnail [Range: 20-500, Default: "80"] - Height or max height (depends on resizeMode) of the resulting thumbnail [Range: 20-500, Default: "60"] - Resolution of the resulting thumbnail (dots per inch) [Range: 72-600, Default: "96"] + Width or max width (depends on resizeMode) of the resulting thumbnail [Range: 16-10000, Default: "80"] + Height or max height (depends on resizeMode) of the resulting thumbnail [Range: 16-10000, Default: "60"] + Resolution of the resulting thumbnail (dots per inch) If set to -1 resolution of the original image is used. If set to -1 resolution of the original image is used. [Range: 72-2400, Default: "96"] Background color of the canvas. Only used when resize mode is fit and the image ratio of the source and target image differ. You can also use argb (rgb with alpha channel, e.g. background: #00ffffff (transparent), #80ffffff (white, 50% transparency), #ffffffff (white, opaque)) [Default: #ffffff] Sets the resize mode if the thumbnail should be resized into a max width or height of a thumbnail canvas [Default: "place"] @@ -241,9 +320,10 @@ Name of an external config file [Default: "Web.Backload.config"] - In your custom code you can bind a handler to events. If set to true (default), events will be fired [Default="false"]. + In your custom code you can bind a handler to events. If set to true (default), events will be fired [Default: false]. + Enables tracing support. Note that tracing consumes some system resources and should only be enabled during development or to find errors in production. [Default: false]. Max length of a base64 encoded embedded data url. Only required if a url pattern is set to return a base64 string (e.g. thumbsUrlPattern="{base64}") [Default="1000"]. - This attribute sets the pattern of the url for the DELETE request returned back to the client in order to delete the file. You can use the shortcuts described in the config file. If you do not set this attribute, a link to the Backload component is returned by default. If you do not want to return a url, set this to an empty string or use the shortcut {none} (e.g. deleteUrlPattern="{none}" [Default="{Backload}"]. + This attribute sets the pattern of the url for the DELETE request returned back to the client in order to delete the file. You can use the shortcuts described in the config file. If you do not set this attribute, a link to the Backload component is returned by default. If you do not want to return a url, set this to an empty string or use the shortcut {none} (e.g. deleteUrlPattern="{none}" [Default="{backload}"]. By default the internal file upload handler is running and ready to receive incoming files or requests. This enables us zero configuration. If you want to set up your own controller in order to do some business logic, set this to "false". [Default: "true"] This setting determines the behaviour, if a file in a GET or DELETE request is not found [Default: "auto"] @@ -257,14 +337,14 @@ This attribute sets the pattern of the url (File) returned back to the client in order to download the file. You can use the shortcuts described in the config file. If you do not set this attribute, a direct link is returned by default. If you do not want to return a url, set this to an empty string or use the shortcut {none} (e.g. thumbsUrlPattern="{none}" [Default="{url}"]. On a GET request (return links to uploaded files) only the upload root folder (default filesRoot) is searched for uploaded files. Set to true in order to include subfolders. (Example: A content-type specific subfolder is set to "pdffiles" the search will find files within this subfolder. There are several ways set up subfolders, e.g. uploadContext and objectContext) [Default: "false"] Only applies if you use the uniqueFileNames option. If set to true, the original file name will be stored (subfolder: _mappings) [Default: "false"] - Defines the default Json output format. You can overwrite the Json output within your OutgoingResponse extension. See examples [Default: "JQueryFileUpload"] + Defines the default Json output format. You can overwrite the Json output in your code or within the OutgoingResponseCreated event. See examples [Default: "JQueryFileUpload"] Generates Json for the jQuery FileUpload plugin from blueimp [Default] Generates Json for the PlUpload plugin from Moxiecode Generates Json for the Fine Uploader from Widen Enterprises - Send a (not case sensitive) plugin=[JQueryFileUpload|PlUpload|Custom] querystring with your request (Example: plugin=plupload). This the same as the extensions by convetion based approach to select extensions (See example 09) - Does not generate an output before calling the OutgoingResponse extension manager. You have to generate your own output in an OutgoingResponse extension. Otherwise Backload returns a Json null string to the client. + Send a (not case sensitive) plugin=[JQueryFileUpload|PlUpload|Custom] querystring with your request (Example: plugin=plupload). Because this is request based you can change the JSON output with every ajax request. + Does not generate an output before calling the OutgoingResponseCreated event and you have to generate your own output in this event. @@ -277,17 +357,26 @@ - Files may be stored in the file system or in a cloud storage [Default: "Filesystem"] + Files may be stored in the file system or in a cloud storage [Default: "Filesystem"] - Saves uploaded files in the file system (or SMB/unc shared folder) [Default] + Saves uploaded files in the file system (or SMB/unc shared folder) [Default] + Saves uploaded files to a database and enables the database configuration element. Supports codeless storage (no application code needed), Entity Framework, Sql FileStreams, Sql FileTables and external file storage (filesystem). Saves uploaded files to a cloud storage. This attribute sets the pattern of the url (Thumbnail) returned back to the client in order to download the thumbnail. You can use the shortcuts described in the config file. If you do not set this attribute, a direct link is returned by default. If you do not want to return a url, set this to an empty string or use the shortcut {none} (e.g. thumbsUrlPattern="{none}" [Default="{url}"]. Generates unique file names based on guids [Default: "false"] - Leave this an empty string, if filesRoot is relative to the web root (starts with '~/', see filesRoot). If filesRoot is an absolute local path (see filesRoot), the Backload handler cannot calculate a web path. Only in this case you must set an absolute web url to the files root, in order a correct filestpath can returned (e. g. "http://myfiles.filestore.com/files/" [Default: ""] + Obsolete. Use "virtualDirectory" in the FileSystem element instead. This attribute will be removed in a future release. + If set to "global" (default) the IWebConfig configuration instance in IFile_config is static, so if a property is changed in code (e.g. event handler), all subsequent requests use the new setting. If set to "request" a property change in code is only available in this single request. Other concurrent or subsequest requests use the original (global) setting. + + + IFile_config returns the global settings used in all reuqests + IFile_config returns a request based configuration instance. Note: The GlobalConfig property in IFile_config has a reference to the global configuration. + + + \ No newline at end of file diff --git a/Web/Backload/Config/_Defaults/Defaults.txt b/Web/Backload/Config/_Defaults/Defaults.txt index 1f57fd4..1f8a148 100644 --- a/Web/Backload/Config/_Defaults/Defaults.txt +++ b/Web/Backload/Config/_Defaults/Defaults.txt @@ -1,203 +1,264 @@ - - +CLIENT SIDE AND SERVER SIDE SETTINGS +Server side settings: filesRoot, objectsRoot and content type specific subfolders (see "Settings and Default Values" below): +filesRoot is the root folder for all uploads. objectsRoot is a subfolder an can be ignored if you do not need it. +Set up content type specific sub folders, if you want to filter and store files of a specific content into separate subfolders. Example: Store images into an images subfolder (content-types: images/jpeg, images/png, etc. typeFragment: images/). See also example in the contentTypes section. +Client side parameters: objectContext and uploadContext (see Example): +The parameters objectContext and uploadContext are optional client side parameters). You do not have to include them in the request. +Basically they influence the storage location on the server, regardless if it is a database or folder structure. + +Example: +You want to set up an artist library were users are able to store content (songs, images, videos, other files). +You want to store the different content in separate subfolders of a root artist folder, where any content belongs to this specific artist is stored. +Your servers folder structure: [filesRoot]/[objectsRoot]/[objectContext]/[uploadContext] (e.g. ~/files/artists/michealjackson/videos) where [filesRoot] and [objectsRoot] are set up server side in the Web.Backload.config file. +ObjectContext will be the artist. It must be a unique name (e.g. michealjackson) or an id. Any uploaded files related to this artist will be stored within a location of this unique id or name. +UploadContext values are the different content types in this example (e.g. songs, images, videos, other) and result into a subfolder. +The client side parameters (objectContext, uploadContext and fileName) can be send in the url as a querystring or in the body (form) and will be used by the server side handler to determine the storage location. +Note: The subfolder structure can be even more complex: uploadContext supports subfolders within subfolders (e.g. /songs/mp3, /songs/wav, etc.). Simply separate the subfolders by semicolon. Use this example pattern as the value of uploadContext: uploadContext="songs;mp3" or uploadContext="documents;pdf". +Note also: You can also set up automatic storage into content type specific subfolders where Backload stores files based on their content type (e.g. pdf files into a "documents" subfolder) (see below). + + +SETTINGS AND DEFAULT VALUES (2.2): - - + + backload: // Basic settings for the Backload component library. TIP: You do not need to include any of these setting in your web.config or external config file, if these default settings fit your needs. + storageContext: // Files can be stored in the file system to a cloud storage or to a database [Default: "Filesystem"] + Filesystem // Saves uploaded files in the file system (or SMB/unc shared folder) [Default] + CloudStorage // Saves uploaded files to a cloud storage and enables the coud configuration element. + Database // Saves uploaded files to a database and enables the database configuration element. Supports codeless storage (no application code needed), Entity Framework, Sql FileStreams, Sql FileTables and external file storage (filesystem). + eventing // In your custom code you can bind an handler to events. If this option is set to true, events will be fired [Default="false"]. + tracing // Enables tracing support. Note that tracing consumes some system resources and should only be enabled during development or to find errors in production. [Default: false]. + enableIntegratedHandler // By default the internal file upload handler is running and ready to receive incoming files or requests. This enables us zero configuration. If you want to set up your own controller in order to do some business logic, set this to "false". [Default: "true"] + webFilesRoot // Obsolete. Use "virtualDirectory" in the FileSystem or database element instead. This attribute will be removed in a future release. + uniqueFileNames // Generates unique file names based on guids [Default: "false"] + keepOrgFileNames // Only applies, if you use the uniqueFileNames option. If set to true, the original file name will be stored (subfolder: _mappings) [Default: "false"] + getInclSubFolders // On a GET request (return links to uploaded files) only the upload root folder (default filesRoot) is searched for uploaded files. Set to true in order to include subfolders. (Example: A content-type specific subfolder is set to "pdffiles" the search will find files within this subfolder. There are several ways set up subfolders, e.g. uploadContext and objectContext) [Default: "false"] + returnExtraInfo // We use this setting, to return internal information for the jQuery File Upload Plugin. If you do not want this, set it to "none" [Default: "basic"] + plugin // Defines the default Json output format. You can overwrite the Json output within the OutgoingResponseCreated event. See examples [Default: "Auto"] + JQueryFileUpload // Generates Json for the jQuery FileUpload plugin from blueimp [Default]. + PlUpload // Generates Json for PlUpload plugin from Moxiecode. + FineUploader // Generates Json for the Fine Uploader from Widen Enterprises + Auto // Send a plugin=[JQueryFileUpload|PlUpload|Custom] querystring (not case sensitive) with your request (Example: plugin=plupload). Because this is request based you can change the JSON output with every ajax request. + Custom // Does not generate an output before calling the OutgoingResponseCreated event and you have to generate your own output in this event. + base64MaxSize // Max length of a base64 encoded embedded data url. Only required if a url pattern is set to return a base64 string in kb (e.g. thumbsUrlPattern="{base64}") [Default="1000" = 1MB]. + deleteUrlPattern, + fileUrlPattern, + thumbsUrlPattern: // This attribute sets the pattern of the url returned back to the client in order to download or delete a file. You can use the shortcuts described below. If you do not set this attribute, a direct link is returned by default. If you do not want to return a url, set this to an empty string or use the shortcut {none} (e.g. thumbsUrlPattern="{none}" [Default (GET):"{url}", Default (DELETE):"{backload}"]. + [not set],{url} // If you want a direct link to download the file, do NOT set this value or set the shortcut {url} (e.g. fileUrlPattern="{url}". You do not need to set this value as this is the default for GET requests (DELETE requests: if not set {backload} is the default). + [empty],{none} // If you do not want a url to be returned for GET or DELETE requests, set this attribute to an empty string or use the shortcut {none} (e.g. fileUrlPattern=""). + {backload} // If you want the file to be returned/deleted by the Backload component, set it to the shortcut {backload} (Default for the deleteUrlPattern. An explicit file single file request (GET/DELETE with a filename) will now be handled as any other request by the Backload component. You can use your extensions like you are used to. We added an additional extension for the Get file requests: IGetFileRequest. Backloads internal handler has the following pattern (see below) fileUrlPattern="~/Backload/UploadHandler?{fileName}&{objectContext}&{uploadContext}&{content} (empty values are not send back). "{Backload}" is the default for the deleteUrlPattern. + [pattern] // You can define your own pattern for urls returned to the client, for example if you want to use your own download handler. + // Use the shortcuts below (Example: thumbsUrlPattern="http://downloads.myweb.com?file={fileName}&path={full}&preview&foo={query:bar}") + // "~/": Relative to web root (Replacement example http://localhost/). + // {name}: Resolves to name of the file (Example:{name} => somepic.jpg). + // {fileName}: Resolves to name of the file as a full query (Example:{fileName} => fileName=somepic.jpg). + // {original}: Resolves to original name of the file (can be used when the name has changed dureing processing) (Example:{originalName} => originalname.jpg). + // {originalName}: Resolves to original name of the file (can be used when the name has changed dureing processing) as a full query (Example:{originalName} => fileName=originalname.jpg). + // {root}: Resovles to relative root storage folder path (Replacement example: files/uploads/) + // {objectContext} If you send an objectContext with your request, this will be the value of the objectContext parameter (see examples for more on this) + // {uploadContext} If you send an uploadContext with your request, this will be the value of the uploadContext parameter(see examples for more on this) + // {content} For a content type subfolders, if you set up this feature + // {full} Shortcut for [root]/[objectContext]/[uploadContext]/[content]/ + // {base64} Encodes the data (bytes) as a base64 string and includes it in the JSON response. Limited to 256 kb file size, switches to {Backload} if bigger. Saves file requests but blows up the JSON output (not deleteUrlPattern). + // {query:all} If you send custom querystrings along with your request all will be returned in the url. + // {query:key} The custom querystring with this key will be returned. (Example: {query:foo} => &foo=bar) + xmlns:*, xsi:* // No custom setting. Used for schema validation and Visual Studio intellisence. + + + + + + + + fileSystem: // Sets the parameters for the dedicated storage location Filesystem or Database (EntityFramework): + filesRoot // Root upload folder. If the value starts with '~/' (e.g. ~/files) the path is relative to the web application root, otherwise set an absolute local path (e.g. d:\files) and also set a virtual path name in the "virtualDirectory" attribute [Default: "~/Files"] + objectsRoot // Subfolder within the filesRoot. Set it to objectsRoot="" if you do not need a subfolder [Default: ""]. + copiesRoot // Root of a folder where Backload stores a copy of an uploaded file, if set to a none empty string. If the value is empty ("") not copies are stored. If the value starts with '~/' (e.g. ~/copies) the path is relative to the web root. If the value not starts with '~/' and it isn't an absolute local path, the value will be treated as a subfolder to filesRoot ('copies' -> ~/files/copies). Otherwise set an absolute local path (e.g. d:/backup) [Default: ""]. + chunkPathPrefix // Temporary folder prefix if file chunks are uploaded into the upload folder before they are merged [Default: "$$"]. + virtualDirectory // Name of virtual directory in your IIS application to an external storage location (unc or full file system path). If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the external path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] + auxFilesFolder // Subfolder for supporting files (previews, mappings, etc). If "auxFilesFolder" is not empty (e.g. auxFilesFolder="_aux") supporting files will be stored in an external path ([filesRoot]\[auxFilesFolder]\). In this case the main upload directories only contain the uploaded files. [Default: ""]. + + + + + + + database: // Provides setting for database configuration. Supports codeless storage (no application code needed), Entity Framework, Sql FileStreams, Sql FileTables and external file storage (filesystem). + connection // Name of the database connection (see Web.config). Can also be a connection string. [Default: "FilesContext"] + tableName // Name of the underlying database table [Default: "Files"]. + storageMode: // Defines if files are stored within the database file or as SqlFiieStream. SqlFIleStreams are stored outside of the database file as blob within the file system, but they are managed by the database engine. When using SqlFileStreams, SQL Server and the database must enable the SqlFileStream feature. More info: FILESTREAM (SQL Server). [Default: "Internal"]. + Internal // Files will be stored within the database (default). + SqlFileStream // Files will be stored as SqlFileStream outside of the database file in a filesystem directory, but managed by the database engine. This allows us to store very large files. More info: FILESTREAM (SQL Server). Unlike SqlFileTable, files (blobs) cannot be accessed directly on the file system. + SqlFileTable // Like SqlFileStreams, files will be stored in a SqlFileTable outside of the database file in a filesystem directory, but managed by the database engine. This allows us to store very large files. More info: FileTables (SQL Server). Unlike SqlFileStreams FileTable files can be accessed, created and deleted within the file system as normal file. This allows us for example to copy a file with the explorer to the FileTable's directory in the file system where Sql Server catches the file and manages it. You can also enable a client to directory download the file if you create a virtual path from IIS to the FileTable directory. + FileSystem // Files will be stored on the filesystem. A virtual path in the database points to the file. + fileTableName // Name of the SqlFileTable if a SqlFileTable is running on Sql Server. In a SqlFileTable, files will be stored outside of the database file in a filesystem directory, but managed by the database engine. This allows to store very large files. In contrast to SqlFileStreams, SqlFileTable files can be accessed, created and deleted directly within the file system as normal files. This allows us for example to copy a file with the explorer to the FileTable's directory in the file system where Sql Server catches the file and manages it. When you create a virtual path in IIS to the FileTable directory in the filesystem, A client can download the files in the SqlFileTable directly from the browser. FileTables (SQL Server). [Default: "FileTable"]. + rootPath // Root path of the file directory when using external file storage (storageMode: SqlFileTable or FileSystem) (SqlFileTable example: "\\Server\SQLEXPRESS\FILES\Uploads\" where "FILES" is the database and "Uploads" is the name of the SqlFileTable.) (FilePath example: z:\Uploads). NOTE: If rootPath is not configured in storageMode "SqlFileTable", rootPath will be automatically retrieved from Sql Server. [Default: "~/Files"] + tempFolder // If set to a none empty string, this setting is used to store file chunks, before the full uploaded file will be stored into the database. If you use chunked file uploads, it is recommend to store the chunks in a temporary directory to get best performance. (Examples: "~/Files/Temp/" (app relative), "z:\dbstorage\temp\" (absolute), "\\server\dbstorage\temp\" (unc)) [Default: ""] + columnMapping // If the data model has different column names than the defaults (e.g. FileId instead of the default Id), a column mapping for column names can be set. Example: columnMapping="{Id=FileId,Name=FileName,Original=OriginalName}". This setting can also be done within the context. See also the database demo package. [Default: ""] + virtualDirectory // Storage mode "SqlFileTable" or "FileSystem" only. This setting is only needed if direct download of files is enabled in the configuration with the setting filesUrlPattern="{url}" (default: {backload}). Note: Direct download of files is only available in the storage modes "SqlFileTable" and "FileSystem", because in these modes files are stored as regular files on the file system. As in standard filesystem storage, VirtualDirectory needs to be set as the name of a virtual directory in IIS or an absolute url //if the file system to download files is outside the web application (e.g. UNC shares). VirtualDirectory represents the name of virtual path in your IIS application to an external storage location. If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the absolute path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] + extension // Name of the plugin file, e.g. extension="Backload.Plugin.Database.dll". If this is an empty string the extension name will be automatically set to: "Backload.Plugin.Database.dll [Default: "Backload.Plugin.Database.dll"] + + + + + + + cloudStorage: // Sets the attributes for cloud storage + serviceProvider // Storage service provider. [Default: "AzureBlobStorage] + AzureBlobStorage // Microsoft Azure Blob storage service + extension // Name of the extension file, e.g. extension="Backload.Plugin.AzureBlobStorage.dll". If this is an empty string the extension name will be automatically set to: "Backload.Plugin.[serviceProvider].dll [Default: ""] + + azureBlobStorage: // Microsoft Azure Blob storage settings + connectionString // Azure Storage Service connection string name, usually located in the .cscfg file or Web.config. If this is an empty string, the local storage emulator will be used [Default: "StorageConnectionString"] + [not set] // Backload looks for the connectionstring "StorageConnectionString" in Azure service definition file (.cscfg) or Web.config + [empty], ""] // Internally resolved to "UseDevelopmentStorage=true". Uses the storage emulator + {string} // Backload looks for a custom name in the Azure service definition file (.cscfg) or in Web.config + uploadContainer // Name of the files upload container. Example: uploadContainer="files". Must start with a lowercase letter. Automatically created if it doesn't exist [Default: "files"] + accessType: // Public access type to the uploaded files [Default: "token"] + private // No public access. + public // Anyone with the url can get or list, but not store or delete files. + token // Ad-hoc shared access signature (SAS). Storage access requires a valid access token. [Default]. + storedPolicy // A shared (stored) access policy will be used. Define a name of the stored policy within the storedPolicyName attribute. Note: Note: Your code is responsable to renew the policy before it expires! + storedPolicyName // If accessType is set to "storedPolicy", this attribute is the name of the shared access policy. Note: Your code is responsable to renew the policy before it expires! [Default: "backload"] + tokenExpires // Sas access type only. Time period (in minutes) before the shared access token expires. [Default: "60"] + objectsRoot // Virtual subfolder within the uploadContainer. Set it to objectsRoot="" if you do not need a subfolder [Default: ""] + copiesContainer // Name of a copy container. [Default: ""] + containerCreation // Sets the container existence checking and auto creation behavior [Default: "auto"] + auto // Container existence is verified on first access, created it if neccessary, after that assumed that the container exists (Default). + always // Verify container exsistence on every request and try to create it if it not exists. + never // No checks for container exsistence. The containers (files, previews, [archives]) must be available (pre-created) on a request. + + + + + + + + + + security: // Security related settings. By default there are no restrictions. If you need a deeper control, set up your own controller to receive the request, do the authentication/authorization and then call the handler. + forceObjectContext // A request must always include an none empty objectContext parameter (query or form) to be valid. If you use "objectContext" to store/retirieve user related files, a malicious request could reveal some other users files, if forceObjectContext is false [Default:"false"] + allowAnonymous // True: Anyone is allowed, false: The user must be authenticated [Default: "true"] + allowedDownloadRole // By default there are no restrictions on who can download files by a GET request. You can change this by adding a comma separated list of roles [Default: "*"] + allowedUploadRoles // By default there are no restrictions on who can upload files whithin a POST/PUT request. You can change this by adding a comma separated list of roles [Default: "*"] + allowedDeleteRoles // By default there are no restrictions on who can delete files by a DELETE request. You can change this by adding a comma separated list of roles [Default: "*"] - - - - - - - + cors: // Enables/disables and configures CROSS-ORIGIN RESOURCE SHARING (CORS). CORS is used in environments, where file requests (e.g. GET) come from diffenrent domains (e.g. client: http://www.yourwebsite.com, Backload: http://fileservice.com/Backload/Filehandler). + enabled // To enable CORS requests set this attribute to true [Default=°false°] + allowedDomains // Comma-separated list of allowed domains for client side requests or "*" to allow all client side cors requests. Example: allowedOrigin="http://www.myservice.com". [Default="*"] + allowedMethods // C omma-separated list of allowed http methods. [Default="GET,POST,DELETE"] + allowedHeaders // Comma-separated list of allowed (none simple) headers. [Default=""] + credentials // Specifies if a request should send credentials by setting credentials="true" [Default="false"] + maxAge // Validity period of cors permission settings (in seconds) before the client makes a new request for permissions. Note: Not all clients use this value [Default="36000"] + - - - watermark: // Optional watermark image if images are uploaded. Example: watermark="~/Backload/Imaging/watermark.png". [Default: "" (no watermark)]. - background: // Optional background image if images are placed or fit onto a canvas. Example: background="~/Backload/Imaging/background.png". [Default: "" (no background image)]. - watermarkPosition: // Vertical position of a watermark to be placed on an image[Default: "center"] - top // Top position - center // Center position - bottom // Bottom position + + + + images, thumbnails: // Image and thumbnail settings + width // Width or max width (depends on resizeMode) of the resulting image [images range: 1-100000, Default: "1024"; thumbnails range: 1-1000, Default: "80"] + height // Height or max height (depends on resizeMode) of the resulting image [images range: 1-100000, Default: "768"; thumbnails range: 1-1000, Default: "60"] + dpi // Resolution of the resulting image (dots per inch) [Range: 1-2400, Default: "96"] + canvasColor // Background color of the canvas. Only used when resize mode is fit and the image ratio of the source and target image differ. You can also use argb (rgb with alpha channel, e.g. background: #00ffffff (transparent), #80ffffff (white, 50% transparency), #ffffffff (white, opaque)) [Default: #ffffff] + maxFileSize // Images only: Max file size (bytes) of an image to be processed by the image processing sub pipeline. If the file size is bigger, the image is stored directly bypassing image processing [Default: "0" (unlimited)]. + forceImageType: // Images only: By default the image type of the original image is used. Set this attribute to always output a different type (e.g. image/png or image/jpeg [Defailt: none]) + none // Use the original image type + image/png // Files with .png (protable network graphics) extension + image/jpeg // Files with .jpeg or .jpg extension + image/tiff // Files with .tif or .tiff extension + image/gif // Files with .gif extension + image/bmp // Microsoft Bitmap format + image/vnd.ms-photo // JPEG XR (extended range, formerly MS Photo) format + resizeMode: // [Default: "none"] + none // Keep original image, no resizing or cropping + ratio // No Canvas, preserves ratio, width and height are max sizes, smaller images are upscaled + maxratio // Same as ratio, but smaller images are not upscaled. + fit // Fit into canvas, preserves ratio, centered on canvas + place // If the source image is bigger than the canvas same as fit. If it is smaller than the canvas, it will be placed in the center of the canvas without resizing + crop // Placed on canvas, cropped if neccessary with center of the original image + watermark // Images only: Optional watermark image if images are uploaded. Example: watermark="~/Backload/Imaging/watermark.png". [Default: "" (no watermark)]. + background // Images only: Optional background image if images are placed or fit onto a canvas. Example: background="~/Backload/Imaging/background.png". [Default: "" (no background image)]. + watermarkPosition: // Images only: Vertical position of a watermark to be placed on an image[Default: "center"] + top // Top position + center // Center position + bottom // Bottom position + imageType // Thumbnails only: Thumnail images must all have the same image type in order the upload handler can find and return the correct thumbnail path [Default: "image/png"] + path // Thumbnails only: Location of the thumbnail subfolder within the folder where the main file is stored. Set to an empty string (path="") to avoid physical storage. [Default: "_thumbs"]< + store // Thumbnail only: If set to "true" (default), preview images are stored physically. If this attribute is set to false and you request preview images (e.g. in a plugin ui) thumbnails have to be created on every request. If you usually use preview images it is recommed to set this attribute to "true". [Default: "true"] + - + - + + + clientFiles: // If the bundeling feature is used (@Render.Scripts(), @Render.Styles()), set the appropriate files folder. TIP: Don't forgat to register the bundeling feature in the global.asax. See example project. + scripts // Scripts folder [Default: "~/Backload/Client"] + styles // Styles folder [Default: "~/Backload/Client"] + - + + + cacheManager: // Adds cache headers to the response if enabled, and returns a http status 304 (Not Modified), if no files have been uploaded or deleted sinse the last request. Note: If you manually or by a different application change files, don't use "lastModified=true", because only requests within Backload's pipeline will be recognized. + lastModified // If true, includes a Last-Modified header in the response and returns a 304 (Not Modified) if no files where uploaded or deleted since the last request. [Default="false"] + etag // If true, a ETag is returned in the response on a single file request. In the next request for this file a 304 is returned, if the file has not been modified. [Default="false"] + expires // Adds an Expires header to the response, if the value is not 0 (seconds). Example: useExpires="3600" (adds 1 hour to the Expires header) [Default="0"] + location // Adds a Cache-Control header to the response (Please refer to the System.Web.HttpCacheability enumeration for more info) [Default="ServerAndPrivate"] + mustRevalidate // Sets "must-revalidate" within the Cache-Control header. Caches (e.g. Browser, Proxy) are forced to validate if the request has changed [Default="true"]. + - - - + + + + + contentTypes: // Adds a new content type definition to the configuration. + thumbnailPath // Path to the content type thumbnails. [Default: "~/Backload/ContentTypes"] + thumbnailSize // Content type thumbnail size [Default: "64"] + useThumbnailCanvas // Places the thumbnail on a canvas, so it has the same size than image thumbnails [Default: "true"] + + contentType: // Defines a new content type or overrides an existing type + // New contentType entry (MS Office, OpenOffice, PDF, Textfile are included by default. No need to inlude these anymore): + // Use to clear all preexisting entries, use to remove a specific entry (Example: to remove the predefined PDF type). + // Predifined type names: _AdobePDFFile, _MSExcel2003, _MSExcel2012, _MSPowerpoint2003, _MSPowerpoint2012, _MSWord2003, _MSWord2012, _OpenOfficeWriter, _TextFile. + // Remarks: _MSxxxx2012 includes all file types from 2007 to 2012 office versions. _MSxxxx2003 includes all file types up to the 2003 office version. + name // A unique name of the entry + extFragment // Complete or fragment of the file extension as RegEx string (e.g. .mp finds .mp3, .mp4, .mpeg, etc). Leave it blank, to skip this test. + typeFragment // Complete or fragment of the content-type as RegEx string (e.g. "mpeg" audio/mpeg, video/mpeg, etc). Leave it blank, to skip this test. Content-types matches are preferred over extension matches. + thumbnail // Name of the thumbnail image within the content-types thumbnail folder. Special handling of images: Leave it blank, to send a preview of the uploaded image back, or set a thumbnail if you do not want to return a preview. + subfolder // Subfolder of the object context folder. Has to be set only if files of this content-type should be stored seperatly from other types (e.g. "movies"). [Default: ""] + + // Deletes all predefined types --> + // Removes the type handling for a specific content type. Example: --> + - - - - - - - \ No newline at end of file + + license: // Provided license data for Pro/Enterprise editions only + licensee: // Provided licensee value (usually email adress). Obligatory field in the paid editions. + licenseKey: // Provided license key. Obligatory field in the paid editions. + + diff --git a/Web/Backload/Controller/BackloadController.cs b/Web/Backload/Controller/BackloadController.cs index 9fd1d2c..7617b44 100644 --- a/Web/Backload/Controller/BackloadController.cs +++ b/Web/Backload/Controller/BackloadController.cs @@ -15,6 +15,7 @@ namespace Backload.Controllers /// public partial class BackloadController : Controller { + /// /// The Backload file handler. /// To access it in an Javascript ajax request use: var url = "/{Application}/Backload/FileHandler/";. @@ -24,6 +25,7 @@ namespace Backload.Controllers { try { + // Create and initialize the handler IFileHandler handler = Backload.FileHandler.Create(); handler.Init(HttpContext.Request); @@ -35,6 +37,7 @@ namespace Backload.Controllers // Helper to create an ActionResult object from the IBackloadResult instance return ResultCreator.Create(result); + } catch { diff --git a/Web/Backload/Helper/ResultCreator.cs b/Web/Backload/Helper/ResultCreator.cs index 6c551b7..747095b 100644 --- a/Web/Backload/Helper/ResultCreator.cs +++ b/Web/Backload/Helper/ResultCreator.cs @@ -23,7 +23,7 @@ namespace Backload.Helper // RequestType.Default: Json output has been requested (default). // Otherwise a file or a thumbnail (bytes) will be returned. if (result.RequestType == RequestType.Default) - return Create((IFileStatusResult)result); + return Create((IJsonResult)result); else if ((result.RequestType == RequestType.File) || (result.RequestType == RequestType.Thumbnail)) return Create((IFileDataResult)result); } @@ -39,13 +39,21 @@ namespace Backload.Helper /// /// A IFileStatusResult object with client plugin specfic data. /// JsonResult instance or a http HttpStatusCodeResult to send an http status - public static ActionResult Create(IFileStatusResult result) + public static ActionResult Create(IJsonResult result) { + object resultObject = null; + + // Converts to the correct type and gets the result object. Result is usually in ClientStatus + if (result.ResultType == ResultType.Status) + resultObject = ((IFileStatusResult)result).ClientStatus; + else if (result.ResultType == ResultType.Json) + resultObject = ((ICoreResult)result).ResultObject; + // Create Json result from the returned client plugin specific file metadata. - if ((result.ClientStatus != null) && (result.Exception == null)) + if ((resultObject != null) && (result.Exception == null)) return new JsonResult() { - Data = result.ClientStatus, + Data = resultObject, ContentType = result.ContentType, ContentEncoding = System.Text.Encoding.UTF8, MaxJsonLength = Int32.MaxValue, diff --git a/Web/Backload/Imaging/readme.txt b/Web/Backload/Imaging/readme.txt index 5829065..d30aa17 100644 --- a/Web/Backload/Imaging/readme.txt +++ b/Web/Backload/Imaging/readme.txt @@ -2,6 +2,8 @@ To add backgrounds and watermarks to uploaded images, set the path in the background/watermark attribute of the image element in Web.Backload.config Background images are only used in resize modes with canvas (fit, place) +The provided background.png and watermark.png are examples only. You can +create your own images. PNG images can have an opacity value lower than 1. Note: Background and watermark images are a Pro/Enterprise features, while background color is a Standard feature diff --git a/Web/Backload/Release.txt b/Web/Backload/Release.txt index b8b4f35..3370705 100644 --- a/Web/Backload/Release.txt +++ b/Web/Backload/Release.txt @@ -1,24 +1,24 @@ -This release: +What's new in release 2.2.2.0? + +- Non image type thumbnail creation improved +- Improved url encoding + + +Release 2.2: + +- Azure Blob Storage support +- Native Database support (incl. EF, FileStream, FileTable, FileSystem storage) +- Support for request based configuration settings +- Supporting files (like previews) can be stored in a seperate path Bug fixes: -- #69 Memory optimizations when processing very large images -- #68 Set image height programmatically results in unexpected behaviour. -- #57 Thumbnail not generated on server for non-image type file -- Cache could not be disabled - - -What's new in release 2.1? -Improvements: -- CORS (Cross-Origin Resource Sharing) support for cross domain access (Pro/Enterprise). -- Improved image processing -- new resize method (maxratio) -- Watermark/background image support (experimental) -- Improved chunked file handling -- Reduced memory footprint when saving large files +- GetInclSubfolder setting problem fixed +========================================================================================================== + Important migration notes (from releases < 2.0): - Event handler: If you attached to events, FileUploadStatus and FileUploadStatusItem have been renamed to: diff --git a/Web/Global.asax.cs b/Web/Global.asax.cs index 340ceae..17f9023 100644 --- a/Web/Global.asax.cs +++ b/Web/Global.asax.cs @@ -1,4 +1,4 @@ -using System; +using System.Web.Optimization;using System; using System.Web.Optimization; using System.Web.Mvc; using System.Web.Routing; diff --git a/Web/NLog.xsd b/Web/NLog.xsd index 85019de..dc821bc 100644 --- a/Web/NLog.xsd +++ b/Web/NLog.xsd @@ -45,6 +45,11 @@ Pass NLog internal exceptions to the application. Default value is: false. + + + Write internal NLog messages to the the System.Diagnostics.Trace. Default value is: false + + @@ -366,18 +371,20 @@ + - - + + + - + - + @@ -405,36 +412,41 @@ Indicates whether to append newline at the end of log message. + + + Action that should be taken if the will be more connections than . + + Action that should be taken if the message is larger than maxMessageSize. - - - Size of the connection cache (number of connections which are kept alive). - - - - - Network address. - - Indicates whether to keep connection open whenever possible. + + + Size of the connection cache (number of connections which are kept alive). + + + + + Maximum current connections. 0 = no maximum. + + + + + Network address. + + Maximum queue size. - - - Indicates whether to include NLog-specific extensions to log4j schema. - - Indicates whether to include source info (file name and line number) in the information sent over the network. @@ -445,6 +457,11 @@ NDC item separator. + + + Indicates whether to include stack contents. + + Indicates whether to include call site (class and method name) in the information sent over the network. @@ -455,9 +472,9 @@ AppInfo field. By default it's the friendly name of the current AppDomain. - + - Indicates whether to include stack contents. + Indicates whether to include NLog-specific extensions to log4j schema. @@ -468,6 +485,13 @@ + + + + + + + @@ -592,6 +616,7 @@ + @@ -615,6 +640,11 @@ Indicates whether to match whole words only. + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + Background color. @@ -683,6 +713,7 @@ + @@ -735,6 +766,11 @@ Indicates whether to keep the database connection open between the log events. + + + Obsolete - value will be ignored! The logging code always runs outside of transaction. Gets or sets a value indicating whether to use database transactions. Some data providers require this. + + Connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used. @@ -886,7 +922,9 @@ + + @@ -923,14 +961,31 @@ Value to be used as the event Source. + + + Action to take if the message is larger than the option. + + Optional entrytype. When not set, or when not convertable to then determined by + + + Message length limit to write to the Event Log. + + + + + + + + + @@ -961,31 +1016,32 @@ - + - - + - - - - - + + + - - + + + + + + @@ -1017,11 +1073,6 @@ Line ending mode. - - - Maximum number of archive files that should be kept. - - Way file archives are numbered. @@ -1039,7 +1090,12 @@ - Size in bytes above which log files will be automatically archived. + Size in bytes above which log files will be automatically archived. Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. Choose: + + + + + Maximum number of archive files that should be kept. @@ -1049,17 +1105,12 @@ - Gets ors set a value indicating whether a managed file stream is forced, instead of used the native implementation. + Gets or set a value indicating whether a managed file stream is forced, instead of used the native implementation. - + - File attributes (Windows only). - - - - - Indicates whether to replace file contents on each write instead of appending log message at the end. + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. If set to false, nothing gets written when the filename is wrong. @@ -1069,7 +1120,7 @@ - Value specifying the date format to use when archving files. + Value specifying the date format to use when archiving files. @@ -1082,34 +1133,24 @@ Indicates whether to create directories if they do not exist. - - - Indicates whether to delete old log file on startup. - - Indicates whether to enable log file(s) to be deleted. - + - Maximum number of seconds that files are kept open. If this number is negative the files are not automatically closed after a period of inactivity. + File attributes (Windows only). - + - Indicates whether concurrent writes to the log file by multiple processes on different network hosts. + Indicates whether to delete old log file on startup. - + - Maximum number of log filenames that should be stored as existing. - - - - - Indicates whether to keep log file open instead of opening and closing it on each logging event. + Indicates whether to replace file contents on each write instead of appending log message at the end. @@ -1117,19 +1158,19 @@ Indicates whether concurrent writes to the log file by multiple processes on the same host. - - - Number of times the write is appended on the file before NLog discards the log message. - - Delay in milliseconds to wait before attempting to write to the file again. - + - Indicates whether to automatically flush the file buffers after each log message. + Maximum number of log filenames that should be stored as existing. + + + + + Indicates whether concurrent writes to the log file by multiple processes on different network hosts. @@ -1137,11 +1178,31 @@ Number of files to be kept open. Setting this to a higher value may improve performance in a situation where a single File target is writing to many files (such as splitting by level or by logger). + + + Maximum number of seconds that files are kept open. If this number is negative the files are not automatically closed after a period of inactivity. + + Log file buffer size in bytes. + + + Indicates whether to automatically flush the file buffers after each log message. + + + + + Number of times the write is appended on the file before NLog discards the log message. + + + + + Indicates whether to keep log file open instead of opening and closing it on each logging event. + + @@ -1366,9 +1427,9 @@ - - + + @@ -1382,6 +1443,8 @@ + + @@ -1418,9 +1481,9 @@ Indicates whether to add new lines between log entries. - + - BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). @@ -1428,9 +1491,9 @@ Recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). - + - CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). @@ -1498,6 +1561,16 @@ Indicates whether the default Settings from System.Net.MailSettings should be used. + + + Folder where applications save mail messages to be processed by the local SMTP server. + + + + + Specifies how outgoing email messages will be handled. + + @@ -1508,6 +1581,13 @@ + + + + + + + @@ -1611,7 +1691,7 @@ - Method name. The method must be public and static. + Method name. The method must be public and static. Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx e.g. @@ -1626,10 +1706,12 @@ + + @@ -1657,6 +1739,11 @@ Indicates whether to append newline at the end of log message. + + + Action that should be taken if the will be more connections than . + + Action that should be taken if the message is larger than maxMessageSize. @@ -1677,6 +1764,11 @@ Indicates whether to keep connection open whenever possible. + + + Maximum current connections. 0 = no maximum. + + Maximum queue size. @@ -1694,18 +1786,20 @@ + - - + + + - + - + @@ -1733,36 +1827,41 @@ Indicates whether to append newline at the end of log message. + + + Action that should be taken if the will be more connections than . + + Action that should be taken if the message is larger than maxMessageSize. - - - Size of the connection cache (number of connections which are kept alive). - - - - - Network address. - - Indicates whether to keep connection open whenever possible. + + + Size of the connection cache (number of connections which are kept alive). + + + + + Maximum current connections. 0 = no maximum. + + + + + Network address. + + Maximum queue size. - - - Indicates whether to include NLog-specific extensions to log4j schema. - - Indicates whether to include source info (file name and line number) in the information sent over the network. @@ -1773,6 +1872,11 @@ NDC item separator. + + + Indicates whether to include stack contents. + + Indicates whether to include call site (class and method name) in the information sent over the network. @@ -1783,9 +1887,9 @@ AppInfo field. By default it's the friendly name of the current AppDomain. - + - Indicates whether to include stack contents. + Indicates whether to include NLog-specific extensions to log4j schema. @@ -1852,6 +1956,7 @@ + @@ -1884,6 +1989,11 @@ Performance counter type. + + + The value by which to increment the counter. + + Performance counter instance name. @@ -2224,15 +2334,27 @@ + + + + Option to suppress the extra spaces in the output json + + + + + + Determines wether or not this attribute will be Json encoded. + + Layout that will be rendered as the attribute's value. diff --git a/Web/Scripts/angular-mocks.js b/Web/Scripts/angular-mocks.js index febfd0d..598b1c2 100644 --- a/Web/Scripts/angular-mocks.js +++ b/Web/Scripts/angular-mocks.js @@ -1,9 +1,9 @@ /** - * @license AngularJS v1.4.7 - * (c) 2010-2015 Google, Inc. http://angularjs.org + * @license AngularJS v1.5.5 + * (c) 2010-2016 Google, Inc. http://angularjs.org * License: MIT */ -(function(window, angular, undefined) { +(function(window, angular) { 'use strict'; @@ -134,12 +134,12 @@ angular.mock.$Browser = function() { }; angular.mock.$Browser.prototype = { -/** - * @name $browser#poll - * - * @description - * run all fns in pollFns - */ + /** + * @name $browser#poll + * + * @description + * run all fns in pollFns + */ poll: function poll() { angular.forEach(this.pollFns, function(pollFn) { pollFn(); @@ -552,7 +552,7 @@ angular.mock.$IntervalProvider = function() { * This directive should go inside the anonymous function but a bug in JSHint means that it would * not be enacted early enough to prevent the warning. */ -var R_ISO8061_STR = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?:\:?(\d\d)(?:\:?(\d\d)(?:\.(\d{3}))?)?)?(Z|([+-])(\d\d):?(\d\d)))?$/; +var R_ISO8061_STR = /^(-?\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?:\:?(\d\d)(?:\:?(\d\d)(?:\.(\d{3}))?)?)?(Z|([+-])(\d\d):?(\d\d)))?$/; function jsonStringToDate(string) { var match; @@ -578,7 +578,7 @@ function toInt(str) { return parseInt(str, 10); } -function padNumber(num, digits, trim) { +function padNumberInMock(num, digits, trim) { var neg = ''; if (num < 0) { neg = '-'; @@ -727,13 +727,13 @@ angular.mock.TzDate = function(offset, timestamp) { // provide this method only on browsers that already have it if (self.toISOString) { self.toISOString = function() { - return padNumber(self.origDate.getUTCFullYear(), 4) + '-' + - padNumber(self.origDate.getUTCMonth() + 1, 2) + '-' + - padNumber(self.origDate.getUTCDate(), 2) + 'T' + - padNumber(self.origDate.getUTCHours(), 2) + ':' + - padNumber(self.origDate.getUTCMinutes(), 2) + ':' + - padNumber(self.origDate.getUTCSeconds(), 2) + '.' + - padNumber(self.origDate.getUTCMilliseconds(), 3) + 'Z'; + return padNumberInMock(self.origDate.getUTCFullYear(), 4) + '-' + + padNumberInMock(self.origDate.getUTCMonth() + 1, 2) + '-' + + padNumberInMock(self.origDate.getUTCDate(), 2) + 'T' + + padNumberInMock(self.origDate.getUTCHours(), 2) + ':' + + padNumberInMock(self.origDate.getUTCMinutes(), 2) + ':' + + padNumberInMock(self.origDate.getUTCSeconds(), 2) + '.' + + padNumberInMock(self.origDate.getUTCMilliseconds(), 3) + 'Z'; }; } @@ -758,6 +758,15 @@ angular.mock.TzDate = function(offset, timestamp) { angular.mock.TzDate.prototype = Date.prototype; /* jshint +W101 */ + +/** + * @ngdoc service + * @name $animate + * + * @description + * Mock implementation of the {@link ng.$animate `$animate`} service. Exposes two additional methods + * for testing animations. + */ angular.mock.animate = angular.module('ngAnimateMock', ['ng']) .config(['$provide', function($provide) { @@ -790,9 +799,50 @@ angular.mock.animate = angular.module('ngAnimateMock', ['ng']) return queueFn; }); - $provide.decorator('$animate', ['$delegate', '$timeout', '$browser', '$$rAF', + $provide.decorator('$$animateJs', ['$delegate', function($delegate) { + var runners = []; + + var animateJsConstructor = function() { + var animator = $delegate.apply($delegate, arguments); + // If no javascript animation is found, animator is undefined + if (animator) { + runners.push(animator); + } + return animator; + }; + + animateJsConstructor.$closeAndFlush = function() { + runners.forEach(function(runner) { + runner.end(); + }); + runners = []; + }; + + return animateJsConstructor; + }]); + + $provide.decorator('$animateCss', ['$delegate', function($delegate) { + var runners = []; + + var animateCssConstructor = function(element, options) { + var animator = $delegate(element, options); + runners.push(animator); + return animator; + }; + + animateCssConstructor.$closeAndFlush = function() { + runners.forEach(function(runner) { + runner.end(); + }); + runners = []; + }; + + return animateCssConstructor; + }]); + + $provide.decorator('$animate', ['$delegate', '$timeout', '$browser', '$$rAF', '$animateCss', '$$animateJs', '$$forceReflow', '$$animateAsyncRun', '$rootScope', - function($delegate, $timeout, $browser, $$rAF, + function($delegate, $timeout, $browser, $$rAF, $animateCss, $$animateJs, $$forceReflow, $$animateAsyncRun, $rootScope) { var animate = { queue: [], @@ -804,7 +854,35 @@ angular.mock.animate = angular.module('ngAnimateMock', ['ng']) return $$forceReflow.totalReflows; }, enabled: $delegate.enabled, - flush: function() { + /** + * @ngdoc method + * @name $animate#closeAndFlush + * @description + * + * This method will close all pending animations (both {@link ngAnimate#javascript-based-animations Javascript} + * and {@link ngAnimate.$animateCss CSS}) and it will also flush any remaining animation frames and/or callbacks. + */ + closeAndFlush: function() { + // we allow the flush command to swallow the errors + // because depending on whether CSS or JS animations are + // used, there may not be a RAF flush. The primary flush + // at the end of this function must throw an exception + // because it will track if there were pending animations + this.flush(true); + $animateCss.$closeAndFlush(); + $$animateJs.$closeAndFlush(); + this.flush(); + }, + /** + * @ngdoc method + * @name $animate#flush + * @description + * + * This method is used to flush the pending callbacks and animation frames to either start + * an animation or conclude an animation. Note that this will not actually close an + * actively running animation (see {@link ngMock.$animate#closeAndFlush `closeAndFlush()`} for that). + */ + flush: function(hideErrors) { $rootScope.$digest(); var doNextRun, somethingFlushed = false; @@ -821,7 +899,7 @@ angular.mock.animate = angular.module('ngAnimateMock', ['ng']) } } while (doNextRun); - if (!somethingFlushed) { + if (!somethingFlushed && !hideErrors) { throw new Error('No pending animations ready to be closed or flushed'); } @@ -950,7 +1028,7 @@ angular.mock.dump = function(object) { * - `$httpBackend.when` - specifies a backend definition * * - * # Request Expectations vs Backend Definitions + * ## Request Expectations vs Backend Definitions * * Request expectations provide a way to make assertions about requests made by the application and * to define responses for those requests. The test will fail if the expected requests are not made @@ -1006,7 +1084,7 @@ angular.mock.dump = function(object) { * the request. The response from the first matched definition is returned. * * - * # Flushing HTTP requests + * ## Flushing HTTP requests * * The $httpBackend used in production always responds to requests asynchronously. If we preserved * this behavior in unit testing, we'd have to create async unit tests, which are hard to write, @@ -1016,7 +1094,7 @@ angular.mock.dump = function(object) { * the async api of the backend, while allowing the test to execute synchronously. * * - * # Unit testing with mock $httpBackend + * ## Unit testing with mock $httpBackend * The following code shows how to setup and use the mock backend when unit testing a controller. * First we create the controller under test: * @@ -1030,18 +1108,18 @@ angular.mock.dump = function(object) { function MyController($scope, $http) { var authToken; - $http.get('/auth.py').success(function(data, status, headers) { - authToken = headers('A-Token'); - $scope.user = data; + $http.get('/auth.py').then(function(response) { + authToken = response.headers('A-Token'); + $scope.user = response.data; }); $scope.saveMessage = function(message) { var headers = { 'Authorization': authToken }; $scope.status = 'Saving...'; - $http.post('/add-msg.py', message, { headers: headers } ).success(function(response) { + $http.post('/add-msg.py', message, { headers: headers } ).then(function(response) { $scope.status = ''; - }).error(function() { + }).catch(function() { $scope.status = 'Failed...'; }); }; @@ -1132,7 +1210,87 @@ angular.mock.dump = function(object) { $httpBackend.flush(); }); }); - ``` + ``` + * + * ## Dynamic responses + * + * You define a response to a request by chaining a call to `respond()` onto a definition or expectation. + * If you provide a **callback** as the first parameter to `respond(callback)` then you can dynamically generate + * a response based on the properties of the request. + * + * The `callback` function should be of the form `function(method, url, data, headers, params)`. + * + * ### Query parameters + * + * By default, query parameters on request URLs are parsed into the `params` object. So a request URL + * of `/list?q=searchstr&orderby=-name` would set `params` to be `{q: 'searchstr', orderby: '-name'}`. + * + * ### Regex parameter matching + * + * If an expectation or definition uses a **regex** to match the URL, you can provide an array of **keys** via a + * `params` argument. The index of each **key** in the array will match the index of a **group** in the + * **regex**. + * + * The `params` object in the **callback** will now have properties with these keys, which hold the value of the + * corresponding **group** in the **regex**. + * + * This also applies to the `when` and `expect` shortcut methods. + * + * + * ```js + * $httpBackend.expect('GET', /\/user\/(.+)/, undefined, undefined, ['id']) + * .respond(function(method, url, data, headers, params) { + * // for requested url of '/user/1234' params is {id: '1234'} + * }); + * + * $httpBackend.whenPATCH(/\/user\/(.+)\/article\/(.+)/, undefined, undefined, ['user', 'article']) + * .respond(function(method, url, data, headers, params) { + * // for url of '/user/1234/article/567' params is {user: '1234', article: '567'} + * }); + * ``` + * + * ## Matching route requests + * + * For extra convenience, `whenRoute` and `expectRoute` shortcuts are available. These methods offer colon + * delimited matching of the url path, ignoring the query string. This allows declarations + * similar to how application routes are configured with `$routeProvider`. Because these methods convert + * the definition url to regex, declaration order is important. Combined with query parameter parsing, + * the following is possible: + * + ```js + $httpBackend.whenRoute('GET', '/users/:id') + .respond(function(method, url, data, headers, params) { + return [200, MockUserList[Number(params.id)]]; + }); + + $httpBackend.whenRoute('GET', '/users') + .respond(function(method, url, data, headers, params) { + var userList = angular.copy(MockUserList), + defaultSort = 'lastName', + count, pages, isPrevious, isNext; + + // paged api response '/v1/users?page=2' + params.page = Number(params.page) || 1; + + // query for last names '/v1/users?q=Archer' + if (params.q) { + userList = $filter('filter')({lastName: params.q}); + } + + pages = Math.ceil(userList.length / pagingLength); + isPrevious = params.page > 1; + isNext = params.page < pages; + + return [200, { + count: userList.length, + previous: isPrevious, + next: isNext, + // sort field -> '/v1/users?sortBy=firstName' + results: $filter('orderBy')(userList, params.sortBy || defaultSort) + .splice((params.page - 1) * pagingLength, pagingLength) + }]; + }); + ``` */ angular.mock.$HttpBackendProvider = function() { this.$get = ['$rootScope', '$timeout', createHttpBackendMock]; @@ -1170,11 +1328,15 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { } // TODO(vojta): change params to: method, url, data, headers, callback - function $httpBackend(method, url, data, callback, headers, timeout, withCredentials) { + function $httpBackend(method, url, data, callback, headers, timeout, withCredentials, responseType, eventHandlers, uploadEventHandlers) { + var xhr = new MockXhr(), expectation = expectations[0], wasExpected = false; + xhr.$$events = eventHandlers; + xhr.upload.$$events = uploadEventHandlers; + function prettyPrint(data) { return (angular.isString(data) || angular.isFunction(data) || data instanceof RegExp) ? data @@ -1189,7 +1351,7 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { return handleResponse; function handleResponse() { - var response = wrapped.response(method, url, data, headers); + var response = wrapped.response(method, url, data, headers, wrapped.params(url)); xhr.$$respHeaders = response[2]; callback(copy(response[0]), copy(response[1]), xhr.getAllResponseHeaders(), copy(response[3] || '')); @@ -1234,7 +1396,7 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { // if $browser specified, we do auto flush all requests ($browser ? $browser.defer : responsesPush)(wrapResponse(definition)); } else if (definition.passThrough) { - $delegate(method, url, data, callback, headers, timeout, withCredentials); + $delegate(method, url, data, callback, headers, timeout, withCredentials, responseType); } else throw new Error('No response defined !'); return; } @@ -1258,20 +1420,23 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * data string and returns true if the data is as expected. * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header * object and returns true if the headers match the current definition. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. * * - respond – - * `{function([status,] data[, headers, statusText]) - * | function(function(method, url, data, headers)}` + * ```js + * {function([status,] data[, headers, statusText]) + * | function(function(method, url, data, headers, params)} + * ``` * – The respond method takes a set of static data to be returned or a function that can - * return an array containing response status (number), response data (string), response - * headers (Object), and the text for the status (string). The respond method returns the - * `requestHandler` object for possible overrides. + * return an array containing response status (number), response data (Array|Object|string), + * response headers (Object), and the text for the status (string). The respond method returns + * the `requestHandler` object for possible overrides. */ - $httpBackend.when = function(method, url, data, headers) { - var definition = new MockHttpExpectation(method, url, data, headers), + $httpBackend.when = function(method, url, data, headers, keys) { + var definition = new MockHttpExpectation(method, url, data, headers, keys), chain = { respond: function(status, data, headers, statusText) { definition.passThrough = undefined; @@ -1301,6 +1466,7 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * @param {string|RegExp|function(string)} url HTTP url or function that receives a url * and returns true if the url matches the current definition. * @param {(Object|function(Object))=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. @@ -1315,6 +1481,7 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * @param {string|RegExp|function(string)} url HTTP url or function that receives a url * and returns true if the url matches the current definition. * @param {(Object|function(Object))=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. @@ -1329,6 +1496,7 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * @param {string|RegExp|function(string)} url HTTP url or function that receives a url * and returns true if the url matches the current definition. * @param {(Object|function(Object))=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. @@ -1345,6 +1513,7 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives * data string and returns true if the data is as expected. * @param {(Object|function(Object))=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. @@ -1361,6 +1530,7 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives * data string and returns true if the data is as expected. * @param {(Object|function(Object))=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. @@ -1374,12 +1544,59 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * * @param {string|RegExp|function(string)} url HTTP url or function that receives a url * and returns true if the url matches the current definition. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. */ createShortMethods('when'); + /** + * @ngdoc method + * @name $httpBackend#whenRoute + * @description + * Creates a new backend definition that compares only with the requested route. + * + * @param {string} method HTTP method. + * @param {string} url HTTP url string that supports colon param matching. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. See #when for more info. + */ + $httpBackend.whenRoute = function(method, url) { + var pathObj = parseRoute(url); + return $httpBackend.when(method, pathObj.regexp, undefined, undefined, pathObj.keys); + }; + + function parseRoute(url) { + var ret = { + regexp: url + }, + keys = ret.keys = []; + + if (!url || !angular.isString(url)) return ret; + + url = url + .replace(/([().])/g, '\\$1') + .replace(/(\/)?:(\w+)([\?\*])?/g, function(_, slash, key, option) { + var optional = option === '?' ? option : null; + var star = option === '*' ? option : null; + keys.push({ name: key, optional: !!optional }); + slash = slash || ''; + return '' + + (optional ? '' : slash) + + '(?:' + + (optional ? slash : '') + + (star && '(.+?)' || '([^/]+)') + + (optional || '') + + ')' + + (optional || ''); + }) + .replace(/([\/$\*])/g, '\\$1'); + + ret.regexp = new RegExp('^' + url, 'i'); + return ret; + } /** * @ngdoc method @@ -1395,20 +1612,23 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * is in JSON format. * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header * object and returns true if the headers match the current expectation. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. * * - respond – - * `{function([status,] data[, headers, statusText]) - * | function(function(method, url, data, headers)}` + * ``` + * { function([status,] data[, headers, statusText]) + * | function(function(method, url, data, headers, params)} + * ``` * – The respond method takes a set of static data to be returned or a function that can - * return an array containing response status (number), response data (string), response - * headers (Object), and the text for the status (string). The respond method returns the - * `requestHandler` object for possible overrides. + * return an array containing response status (number), response data (Array|Object|string), + * response headers (Object), and the text for the status (string). The respond method returns + * the `requestHandler` object for possible overrides. */ - $httpBackend.expect = function(method, url, data, headers) { - var expectation = new MockHttpExpectation(method, url, data, headers), + $httpBackend.expect = function(method, url, data, headers, keys) { + var expectation = new MockHttpExpectation(method, url, data, headers, keys), chain = { respond: function(status, data, headers, statusText) { expectation.response = createResponse(status, data, headers, statusText); @@ -1420,7 +1640,6 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { return chain; }; - /** * @ngdoc method * @name $httpBackend#expectGET @@ -1430,6 +1649,7 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * @param {string|RegExp|function(string)} url HTTP url or function that receives a url * and returns true if the url matches the current definition. * @param {Object=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. See #expect for more info. @@ -1444,6 +1664,7 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * @param {string|RegExp|function(string)} url HTTP url or function that receives a url * and returns true if the url matches the current definition. * @param {Object=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. @@ -1458,6 +1679,7 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * @param {string|RegExp|function(string)} url HTTP url or function that receives a url * and returns true if the url matches the current definition. * @param {Object=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. @@ -1475,6 +1697,7 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * receives data string and returns true if the data is as expected, or Object if request body * is in JSON format. * @param {Object=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. @@ -1492,6 +1715,7 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * receives data string and returns true if the data is as expected, or Object if request body * is in JSON format. * @param {Object=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. @@ -1509,6 +1733,7 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * receives data string and returns true if the data is as expected, or Object if request body * is in JSON format. * @param {Object=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. @@ -1522,12 +1747,30 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { * * @param {string|RegExp|function(string)} url HTTP url or function that receives an url * and returns true if the url matches the current definition. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described above. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched * request is handled. You can save this object for later use and invoke `respond` again in * order to change how a matched request is handled. */ createShortMethods('expect'); + /** + * @ngdoc method + * @name $httpBackend#expectRoute + * @description + * Creates a new request expectation that compares only with the requested route. + * + * @param {string} method HTTP method. + * @param {string} url HTTP url string that supports colon param matching. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. See #expect for more info. + */ + $httpBackend.expectRoute = function(method, url) { + var pathObj = parseRoute(url); + return $httpBackend.expect(method, pathObj.regexp, undefined, undefined, pathObj.keys); + }; + /** * @ngdoc method @@ -1617,20 +1860,20 @@ function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { function createShortMethods(prefix) { angular.forEach(['GET', 'DELETE', 'JSONP', 'HEAD'], function(method) { - $httpBackend[prefix + method] = function(url, headers) { - return $httpBackend[prefix](method, url, undefined, headers); + $httpBackend[prefix + method] = function(url, headers, keys) { + return $httpBackend[prefix](method, url, undefined, headers, keys); }; }); angular.forEach(['PUT', 'POST', 'PATCH'], function(method) { - $httpBackend[prefix + method] = function(url, data, headers) { - return $httpBackend[prefix](method, url, data, headers); + $httpBackend[prefix + method] = function(url, data, headers, keys) { + return $httpBackend[prefix](method, url, data, headers, keys); }; }); } } -function MockHttpExpectation(method, url, data, headers) { +function MockHttpExpectation(method, url, data, headers, keys) { this.data = data; this.headers = headers; @@ -1669,6 +1912,59 @@ function MockHttpExpectation(method, url, data, headers) { this.toString = function() { return method + ' ' + url; }; + + this.params = function(u) { + return angular.extend(parseQuery(), pathParams()); + + function pathParams() { + var keyObj = {}; + if (!url || !angular.isFunction(url.test) || !keys || keys.length === 0) return keyObj; + + var m = url.exec(u); + if (!m) return keyObj; + for (var i = 1, len = m.length; i < len; ++i) { + var key = keys[i - 1]; + var val = m[i]; + if (key && val) { + keyObj[key.name || key] = val; + } + } + + return keyObj; + } + + function parseQuery() { + var obj = {}, key_value, key, + queryStr = u.indexOf('?') > -1 + ? u.substring(u.indexOf('?') + 1) + : ""; + + angular.forEach(queryStr.split('&'), function(keyValue) { + if (keyValue) { + key_value = keyValue.replace(/\+/g,'%20').split('='); + key = tryDecodeURIComponent(key_value[0]); + if (angular.isDefined(key)) { + var val = angular.isDefined(key_value[1]) ? tryDecodeURIComponent(key_value[1]) : true; + if (!hasOwnProperty.call(obj, key)) { + obj[key] = val; + } else if (angular.isArray(obj[key])) { + obj[key].push(val); + } else { + obj[key] = [obj[key],val]; + } + } + } + }); + return obj; + } + function tryDecodeURIComponent(value) { + try { + return decodeURIComponent(value); + } catch (e) { + // Ignore any invalid uri component + } + } + }; } function createMockXhr() { @@ -1723,6 +2019,20 @@ function MockXhr() { }; this.abort = angular.noop; + + // This section simulates the events on a real XHR object (and the upload object) + // When we are testing $httpBackend (inside the angular project) we make partial use of this + // but store the events directly ourselves on `$$events`, instead of going through the `addEventListener` + this.$$events = {}; + this.addEventListener = function(name, listener) { + if (angular.isUndefined(this.$$events[name])) this.$$events[name] = []; + this.$$events[name].push(listener); + }; + + this.upload = { + $$events: {}, + addEventListener: this.addEventListener + }; } @@ -1807,10 +2117,12 @@ angular.mock.$RAFDecorator = ['$delegate', function($delegate) { /** * */ +var originalRootElement; angular.mock.$RootElementProvider = function() { - this.$get = function() { - return angular.element('
'); - }; + this.$get = ['$injector', function($injector) { + originalRootElement = angular.element('
').data('$injector', $injector); + return originalRootElement; + }]; }; /** @@ -1837,9 +2149,9 @@ angular.mock.$RootElementProvider = function() { * * // Controller definition ... * - * myMod.controller('MyDirectiveController', ['log', function($log) { + * myMod.controller('MyDirectiveController', ['$log', function($log) { * $log.info(this.name); - * })]; + * }]); * * * // In a test ... @@ -1849,7 +2161,7 @@ angular.mock.$RootElementProvider = function() { * var ctrl = $controller('MyDirectiveController', { /* no locals */ }, { name: 'Clark Kent' }); * expect(ctrl.name).toEqual('Clark Kent'); * expect($log.info.logs).toEqual(['Clark Kent']); - * }); + * })); * }); * * ``` @@ -1883,6 +2195,50 @@ angular.mock.$ControllerDecorator = ['$delegate', function($delegate) { }; }]; +/** + * @ngdoc service + * @name $componentController + * @description + * A service that can be used to create instances of component controllers. + *
+ * Be aware that the controller will be instantiated and attached to the scope as specified in + * the component definition object. If you do not provide a `$scope` object in the `locals` param + * then the helper will create a new isolated scope as a child of `$rootScope`. + *
+ * @param {string} componentName the name of the component whose controller we want to instantiate + * @param {Object} locals Injection locals for Controller. + * @param {Object=} bindings Properties to add to the controller before invoking the constructor. This is used + * to simulate the `bindToController` feature and simplify certain kinds of tests. + * @param {string=} ident Override the property name to use when attaching the controller to the scope. + * @return {Object} Instance of requested controller. + */ +angular.mock.$ComponentControllerProvider = ['$compileProvider', function($compileProvider) { + this.$get = ['$controller','$injector', '$rootScope', function($controller, $injector, $rootScope) { + return function $componentController(componentName, locals, bindings, ident) { + // get all directives associated to the component name + var directives = $injector.get(componentName + 'Directive'); + // look for those directives that are components + var candidateDirectives = directives.filter(function(directiveInfo) { + // components have controller, controllerAs and restrict:'E' + return directiveInfo.controller && directiveInfo.controllerAs && directiveInfo.restrict === 'E'; + }); + // check if valid directives found + if (candidateDirectives.length === 0) { + throw new Error('No component found'); + } + if (candidateDirectives.length > 1) { + throw new Error('Too many components found'); + } + // get the info of the component + var directiveInfo = candidateDirectives[0]; + // create a scope if needed + locals = locals || {}; + locals.$scope = locals.$scope || $rootScope.$new(true); + return $controller(directiveInfo.controller, locals, bindings, ident || directiveInfo.controllerAs); + }; + }]; +}]; + /** * @ngdoc module @@ -1906,7 +2262,8 @@ angular.module('ngMock', ['ng']).provider({ $log: angular.mock.$LogProvider, $interval: angular.mock.$IntervalProvider, $httpBackend: angular.mock.$HttpBackendProvider, - $rootElement: angular.mock.$RootElementProvider + $rootElement: angular.mock.$RootElementProvider, + $componentController: angular.mock.$ComponentControllerProvider }).config(['$provide', function($provide) { $provide.decorator('$timeout', angular.mock.$TimeoutDecorator); $provide.decorator('$$rAF', angular.mock.$RAFDecorator); @@ -1993,16 +2350,20 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) { * @param {(string|RegExp)=} data HTTP request body. * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header * object and returns true if the headers match the current definition. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described on + * {@link ngMock.$httpBackend $httpBackend mock}. * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that * control how a matched request is handled. You can save this object for later use and invoke * `respond` or `passThrough` again in order to change how a matched request is handled. * * - respond – - * `{function([status,] data[, headers, statusText]) - * | function(function(method, url, data, headers)}` + * ``` + * { function([status,] data[, headers, statusText]) + * | function(function(method, url, data, headers, params)} + * ``` * – The respond method takes a set of static data to be returned or a function that can return - * an array containing response status (number), response data (string), response headers - * (Object), and the text for the status (string). + * an array containing response status (number), response data (Array|Object|string), response + * headers (Object), and the text for the status (string). * - passThrough – `{function()}` – Any request matching a backend definition with * `passThrough` handler will be passed through to the real backend (an XHR request will be made * to the server.) @@ -2019,6 +2380,8 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) { * @param {string|RegExp|function(string)} url HTTP url or function that receives a url * and returns true if the url matches the current definition. * @param {(Object|function(Object))=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described on + * {@link ngMock.$httpBackend $httpBackend mock}. * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that * control how a matched request is handled. You can save this object for later use and invoke * `respond` or `passThrough` again in order to change how a matched request is handled. @@ -2034,6 +2397,8 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) { * @param {string|RegExp|function(string)} url HTTP url or function that receives a url * and returns true if the url matches the current definition. * @param {(Object|function(Object))=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described on + * {@link ngMock.$httpBackend $httpBackend mock}. * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that * control how a matched request is handled. You can save this object for later use and invoke * `respond` or `passThrough` again in order to change how a matched request is handled. @@ -2049,6 +2414,8 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) { * @param {string|RegExp|function(string)} url HTTP url or function that receives a url * and returns true if the url matches the current definition. * @param {(Object|function(Object))=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described on + * {@link ngMock.$httpBackend $httpBackend mock}. * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that * control how a matched request is handled. You can save this object for later use and invoke * `respond` or `passThrough` again in order to change how a matched request is handled. @@ -2065,6 +2432,8 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) { * and returns true if the url matches the current definition. * @param {(string|RegExp)=} data HTTP request body. * @param {(Object|function(Object))=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described on + * {@link ngMock.$httpBackend $httpBackend mock}. * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that * control how a matched request is handled. You can save this object for later use and invoke * `respond` or `passThrough` again in order to change how a matched request is handled. @@ -2081,6 +2450,8 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) { * and returns true if the url matches the current definition. * @param {(string|RegExp)=} data HTTP request body. * @param {(Object|function(Object))=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described on + * {@link ngMock.$httpBackend $httpBackend mock}. * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that * control how a matched request is handled. You can save this object for later use and invoke * `respond` or `passThrough` again in order to change how a matched request is handled. @@ -2097,6 +2468,8 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) { * and returns true if the url matches the current definition. * @param {(string|RegExp)=} data HTTP request body. * @param {(Object|function(Object))=} headers HTTP headers. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described on + * {@link ngMock.$httpBackend $httpBackend mock}. * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that * control how a matched request is handled. You can save this object for later use and invoke * `respond` or `passThrough` again in order to change how a matched request is handled. @@ -2111,6 +2484,21 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) { * * @param {string|RegExp|function(string)} url HTTP url or function that receives a url * and returns true if the url matches the current definition. + * @param {(Array)=} keys Array of keys to assign to regex matches in request url described on + * {@link ngMock.$httpBackend $httpBackend mock}. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. You can save this object for later use and invoke + * `respond` or `passThrough` again in order to change how a matched request is handled. + */ +/** + * @ngdoc method + * @name $httpBackend#whenRoute + * @module ngMockE2E + * @description + * Creates a new backend definition that compares only with the requested route. + * + * @param {string} method HTTP method. + * @param {string} url HTTP url string that supports colon param matching. * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that * control how a matched request is handled. You can save this object for later use and invoke * `respond` or `passThrough` again in order to change how a matched request is handled. @@ -2206,11 +2594,16 @@ angular.mock.$RootScopeDecorator = ['$delegate', function($delegate) { }]; -if (window.jasmine || window.mocha) { +!(function(jasmineOrMocha) { + + if (!jasmineOrMocha) { + return; + } var currentSpec = null, + injectorState = new InjectorState(), annotatedFunctions = [], - isSpecRunning = function() { + wasInjectorCreated = function() { return !!currentSpec; }; @@ -2222,46 +2615,6 @@ if (window.jasmine || window.mocha) { return angular.mock.$$annotate.apply(this, arguments); }; - - (window.beforeEach || window.setup)(function() { - annotatedFunctions = []; - currentSpec = this; - }); - - (window.afterEach || window.teardown)(function() { - var injector = currentSpec.$injector; - - annotatedFunctions.forEach(function(fn) { - delete fn.$inject; - }); - - angular.forEach(currentSpec.$modules, function(module) { - if (module && module.$$hashKey) { - module.$$hashKey = undefined; - } - }); - - currentSpec.$injector = null; - currentSpec.$modules = null; - currentSpec = null; - - if (injector) { - injector.get('$rootElement').off(); - } - - // clean up jquery's fragment cache - angular.forEach(angular.element.fragments, function(val, key) { - delete angular.element.fragments[key]; - }); - - MockXhr.$$lastInstance = null; - - angular.forEach(angular.callbacks, function(val, key) { - delete angular.callbacks[key]; - }); - angular.callbacks.counter = 0; - }); - /** * @ngdoc function * @name angular.mock.module @@ -2278,33 +2631,198 @@ if (window.jasmine || window.mocha) { * @param {...(string|Function|Object)} fns any number of modules which are represented as string * aliases or as anonymous module initialization functions. The modules are used to * configure the injector. The 'ng' and 'ngMock' modules are automatically loaded. If an - * object literal is passed they will be registered as values in the module, the key being - * the module name and the value being what is returned. + * object literal is passed each key-value pair will be registered on the module via + * {@link auto.$provide $provide}.value, the key being the string name (or token) to associate + * with the value on the injector. */ - window.module = angular.mock.module = function() { + var module = window.module = angular.mock.module = function() { var moduleFns = Array.prototype.slice.call(arguments, 0); - return isSpecRunning() ? workFn() : workFn; + return wasInjectorCreated() ? workFn() : workFn; ///////////////////// function workFn() { if (currentSpec.$injector) { throw new Error('Injector already created, can not register a module!'); } else { - var modules = currentSpec.$modules || (currentSpec.$modules = []); + var fn, modules = currentSpec.$modules || (currentSpec.$modules = []); angular.forEach(moduleFns, function(module) { if (angular.isObject(module) && !angular.isArray(module)) { - modules.push(function($provide) { + fn = ['$provide', function($provide) { angular.forEach(module, function(value, key) { $provide.value(key, value); }); - }); + }]; } else { - modules.push(module); + fn = module; + } + if (currentSpec.$providerInjector) { + currentSpec.$providerInjector.invoke(fn); + } else { + modules.push(fn); } }); } } }; + module.$$beforeAllHook = (window.before || window.beforeAll); + module.$$afterAllHook = (window.after || window.afterAll); + + // purely for testing ngMock itself + module.$$currentSpec = function(to) { + if (arguments.length === 0) return to; + currentSpec = to; + }; + + /** + * @ngdoc function + * @name angular.mock.module.sharedInjector + * @description + * + * *NOTE*: This function is declared ONLY WHEN running tests with jasmine or mocha + * + * This function ensures a single injector will be used for all tests in a given describe context. + * This contrasts with the default behaviour where a new injector is created per test case. + * + * Use sharedInjector when you want to take advantage of Jasmine's `beforeAll()`, or mocha's + * `before()` methods. Call `module.sharedInjector()` before you setup any other hooks that + * will create (i.e call `module()`) or use (i.e call `inject()`) the injector. + * + * You cannot call `sharedInjector()` from within a context already using `sharedInjector()`. + * + * ## Example + * + * Typically beforeAll is used to make many assertions about a single operation. This can + * cut down test run-time as the test setup doesn't need to be re-run, and enabling focussed + * tests each with a single assertion. + * + * ```js + * describe("Deep Thought", function() { + * + * module.sharedInjector(); + * + * beforeAll(module("UltimateQuestion")); + * + * beforeAll(inject(function(DeepThought) { + * expect(DeepThought.answer).toBeUndefined(); + * DeepThought.generateAnswer(); + * })); + * + * it("has calculated the answer correctly", inject(function(DeepThought) { + * // Because of sharedInjector, we have access to the instance of the DeepThought service + * // that was provided to the beforeAll() hook. Therefore we can test the generated answer + * expect(DeepThought.answer).toBe(42); + * })); + * + * it("has calculated the answer within the expected time", inject(function(DeepThought) { + * expect(DeepThought.runTimeMillennia).toBeLessThan(8000); + * })); + * + * it("has double checked the answer", inject(function(DeepThought) { + * expect(DeepThought.absolutelySureItIsTheRightAnswer).toBe(true); + * })); + * + * }); + * + * ``` + */ + module.sharedInjector = function() { + if (!(module.$$beforeAllHook && module.$$afterAllHook)) { + throw Error("sharedInjector() cannot be used unless your test runner defines beforeAll/afterAll"); + } + + var initialized = false; + + module.$$beforeAllHook(function() { + if (injectorState.shared) { + injectorState.sharedError = Error("sharedInjector() cannot be called inside a context that has already called sharedInjector()"); + throw injectorState.sharedError; + } + initialized = true; + currentSpec = this; + injectorState.shared = true; + }); + + module.$$afterAllHook(function() { + if (initialized) { + injectorState = new InjectorState(); + module.$$cleanup(); + } else { + injectorState.sharedError = null; + } + }); + }; + + module.$$beforeEach = function() { + if (injectorState.shared && currentSpec && currentSpec != this) { + var state = currentSpec; + currentSpec = this; + angular.forEach(["$injector","$modules","$providerInjector", "$injectorStrict"], function(k) { + currentSpec[k] = state[k]; + state[k] = null; + }); + } else { + currentSpec = this; + originalRootElement = null; + annotatedFunctions = []; + } + }; + + module.$$afterEach = function() { + if (injectorState.cleanupAfterEach()) { + module.$$cleanup(); + } + }; + + module.$$cleanup = function() { + var injector = currentSpec.$injector; + + annotatedFunctions.forEach(function(fn) { + delete fn.$inject; + }); + + angular.forEach(currentSpec.$modules, function(module) { + if (module && module.$$hashKey) { + module.$$hashKey = undefined; + } + }); + + currentSpec.$injector = null; + currentSpec.$modules = null; + currentSpec.$providerInjector = null; + currentSpec = null; + + if (injector) { + // Ensure `$rootElement` is instantiated, before checking `originalRootElement` + var $rootElement = injector.get('$rootElement'); + var rootNode = $rootElement && $rootElement[0]; + var cleanUpNodes = !originalRootElement ? [] : [originalRootElement[0]]; + if (rootNode && (!originalRootElement || rootNode !== originalRootElement[0])) { + cleanUpNodes.push(rootNode); + } + angular.element.cleanData(cleanUpNodes); + + // Ensure `$destroy()` is available, before calling it + // (a mocked `$rootScope` might not implement it (or not even be an object at all)) + var $rootScope = injector.get('$rootScope'); + if ($rootScope && $rootScope.$destroy) $rootScope.$destroy(); + } + + // clean up jquery's fragment cache + angular.forEach(angular.element.fragments, function(val, key) { + delete angular.element.fragments[key]; + }); + + MockXhr.$$lastInstance = null; + + angular.forEach(angular.callbacks, function(val, key) { + delete angular.callbacks[key]; + }); + angular.callbacks.counter = 0; + }; + + (window.beforeEach || window.setup)(module.$$beforeEach); + (window.afterEach || window.teardown)(module.$$afterEach); + /** * @ngdoc function * @name angular.mock.inject @@ -2407,11 +2925,20 @@ if (window.jasmine || window.mocha) { window.inject = angular.mock.inject = function() { var blockFns = Array.prototype.slice.call(arguments, 0); var errorForStack = new Error('Declaration Location'); - return isSpecRunning() ? workFn.call(currentSpec) : workFn; + // IE10+ and PhanthomJS do not set stack trace information, until the error is thrown + if (!errorForStack.stack) { + try { + throw errorForStack; + } catch (e) {} + } + return wasInjectorCreated() ? workFn.call(currentSpec) : workFn; ///////////////////// function workFn() { var modules = currentSpec.$modules || []; var strictDi = !!currentSpec.$injectorStrict; + modules.unshift(['$injector', function($injector) { + currentSpec.$providerInjector = $injector; + }]); modules.unshift('ngMock'); modules.unshift('ng'); var injector = currentSpec.$injector; @@ -2452,7 +2979,7 @@ if (window.jasmine || window.mocha) { angular.mock.inject.strictDi = function(value) { value = arguments.length ? !!value : true; - return isSpecRunning() ? workFn() : workFn; + return wasInjectorCreated() ? workFn() : workFn; function workFn() { if (value !== currentSpec.$injectorStrict) { @@ -2464,7 +2991,16 @@ if (window.jasmine || window.mocha) { } } }; -} + + function InjectorState() { + this.shared = false; + this.sharedError = null; + + this.cleanupAfterEach = function() { + return !this.shared || this.sharedError; + }; + } +})(window.jasmine || window.mocha); })(window, window.angular); diff --git a/Web/Scripts/angular.js b/Web/Scripts/angular.js index 3c64efb..05ebff5 100644 --- a/Web/Scripts/angular.js +++ b/Web/Scripts/angular.js @@ -1,9 +1,9 @@ -/** - * @license AngularJS v1.4.7 - * (c) 2010-2015 Google, Inc. http://angularjs.org +/** + * @license AngularJS v1.5.5 + * (c) 2010-2016 Google, Inc. http://angularjs.org * License: MIT */ -(function(window, document, undefined) {'use strict'; +(function(window) {'use strict'; /** * @description @@ -57,7 +57,7 @@ function minErr(module, ErrorConstructor) { return match; }); - message += '\nhttp://errors.angularjs.org/1.4.7/' + + message += '\nhttp://errors.angularjs.org/1.5.5/' + (module ? module + '/' : '') + code; for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') { @@ -171,6 +171,7 @@ function minErr(module, ErrorConstructor) { * @ngdoc module * @name ng * @module ng + * @installation * @description * * # ng (core module) @@ -188,29 +189,9 @@ var REGEX_STRING_REGEXP = /^\/(.+)\/([a-z]*)$/; // This is used so that it's possible for internal tests to create mock ValidityStates. var VALIDITY_STATE_PROPERTY = 'validity'; -/** - * @ngdoc function - * @name angular.lowercase - * @module ng - * @kind function - * - * @description Converts the specified string to lowercase. - * @param {string} string String to be converted to lowercase. - * @returns {string} Lowercased string. - */ -var lowercase = function(string) {return isString(string) ? string.toLowerCase() : string;}; var hasOwnProperty = Object.prototype.hasOwnProperty; -/** - * @ngdoc function - * @name angular.uppercase - * @module ng - * @kind function - * - * @description Converts the specified string to uppercase. - * @param {string} string String to be converted to uppercase. - * @returns {string} Uppercased string. - */ +var lowercase = function(string) {return isString(string) ? string.toLowerCase() : string;}; var uppercase = function(string) {return isString(string) ? string.toUpperCase() : string;}; @@ -230,7 +211,7 @@ var manualUppercase = function(s) { // String#toLowerCase and String#toUpperCase don't produce correct results in browsers with Turkish // locale, for this reason we need to detect this case and redefine lowercase/uppercase methods -// with correct but slower alternatives. +// with correct but slower alternatives. See https://github.com/angular/angular.js/issues/11387 if ('i' !== 'I'.toLowerCase()) { lowercase = manualLowercase; uppercase = manualUppercase; @@ -257,7 +238,7 @@ var * documentMode is an IE-only property * http://msdn.microsoft.com/en-us/library/ie/cc196988(v=vs.85).aspx */ -msie = document.documentMode; +msie = window.document.documentMode; /** @@ -267,20 +248,25 @@ msie = document.documentMode; * String ...) */ function isArrayLike(obj) { - if (obj == null || isWindow(obj)) { - return false; - } + + // `null`, `undefined` and `window` are not array-like + if (obj == null || isWindow(obj)) return false; + + // arrays, strings and jQuery/jqLite objects are array like + // * jqLite is either the jQuery or jqLite constructor function + // * we have to check the existence of jqLite first as this method is called + // via the forEach method when constructing the jqLite object in the first place + if (isArray(obj) || isString(obj) || (jqLite && obj instanceof jqLite)) return true; // Support: iOS 8.2 (not reproducible in simulator) // "length" in obj used to prevent JIT error (gh-11508) var length = "length" in Object(obj) && obj.length; - if (obj.nodeType === NODE_TYPE_ELEMENT && length) { - return true; - } + // NodeList objects (with `item` method) and + // other objects with suitable length characteristics are array-like + return isNumber(length) && + (length >= 0 && ((length - 1) in obj || obj instanceof Array) || typeof obj.item == 'function'); - return isString(obj) || isArray(obj) || length === 0 || - typeof length === 'number' && length > 0 && (length - 1) in obj; } /** @@ -300,7 +286,7 @@ function isArrayLike(obj) { * * Unlike ES262's * [Array.prototype.forEach](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.18), - * Providing 'undefined' or 'null' values for `obj` will not throw a TypeError, but rather just + * providing 'undefined' or 'null' values for `obj` will not throw a TypeError, but rather just * return the value provided. * ```js @@ -377,7 +363,7 @@ function forEachSorted(obj, iterator, context) { * @returns {function(*, string)} */ function reverseParams(iteratorFn) { - return function(value, key) { iteratorFn(key, value); }; + return function(value, key) {iteratorFn(key, value);}; } /** @@ -425,6 +411,10 @@ function baseExtend(dst, objs, deep) { dst[key] = new Date(src.valueOf()); } else if (isRegExp(src)) { dst[key] = new RegExp(src); + } else if (src.nodeName) { + dst[key] = src.cloneNode(true); + } else if (isElement(src)) { + dst[key] = src.clone(); } else { if (!isObject(dst[key])) dst[key] = isArray(src) ? [] : {}; baseExtend(dst[key], [src], true); @@ -537,10 +527,10 @@ function identity($) {return $;} identity.$inject = []; -function valueFn(value) {return function() {return value;};} +function valueFn(value) {return function valueRef() {return value;};} function hasCustomToString(obj) { - return isFunction(obj.toString) && obj.toString !== Object.prototype.toString; + return isFunction(obj.toString) && obj.toString !== toString; } @@ -739,9 +729,13 @@ function isPromiseLike(obj) { } -var TYPED_ARRAY_REGEXP = /^\[object (Uint8(Clamped)?)|(Uint16)|(Uint32)|(Int8)|(Int16)|(Int32)|(Float(32)|(64))Array\]$/; +var TYPED_ARRAY_REGEXP = /^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/; function isTypedArray(value) { - return TYPED_ARRAY_REGEXP.test(toString.call(value)); + return value && isNumber(value.length) && TYPED_ARRAY_REGEXP.test(toString.call(value)); +} + +function isArrayBuffer(obj) { + return toString.call(obj) === '[object ArrayBuffer]'; } @@ -781,7 +775,7 @@ function isElement(node) { * @returns {object} in the form of {key1:true, key2:true, ...} */ function makeMap(str) { - var obj = {}, items = str.split(","), i; + var obj = {}, items = str.split(','), i; for (i = 0; i < items.length; i++) { obj[items[i]] = true; } @@ -863,100 +857,141 @@ function arrayRemove(array, value) { */ -function copy(source, destination, stackSource, stackDest) { - if (isWindow(source) || isScope(source)) { - throw ngMinErr('cpws', - "Can't copy! Making copies of Window or Scope instances is not supported."); - } - if (isTypedArray(destination)) { - throw ngMinErr('cpta', - "Can't copy! TypedArray destination cannot be mutated."); - } +function copy(source, destination) { + var stackSource = []; + var stackDest = []; - if (!destination) { - destination = source; - if (isObject(source)) { - var index; - if (stackSource && (index = stackSource.indexOf(source)) !== -1) { - return stackDest[index]; - } - - // TypedArray, Date and RegExp have specific copy functionality and must be - // pushed onto the stack before returning. - // Array and other objects create the base object and recurse to copy child - // objects. The array/object will be pushed onto the stack when recursed. - if (isArray(source)) { - return copy(source, [], stackSource, stackDest); - } else if (isTypedArray(source)) { - destination = new source.constructor(source); - } else if (isDate(source)) { - destination = new Date(source.getTime()); - } else if (isRegExp(source)) { - destination = new RegExp(source.source, source.toString().match(/[^\/]*$/)[0]); - destination.lastIndex = source.lastIndex; - } else if (isFunction(source.cloneNode)) { - destination = source.cloneNode(true); - } else { - var emptyObject = Object.create(getPrototypeOf(source)); - return copy(source, emptyObject, stackSource, stackDest); - } - - if (stackDest) { - stackSource.push(source); - stackDest.push(destination); - } + if (destination) { + if (isTypedArray(destination) || isArrayBuffer(destination)) { + throw ngMinErr('cpta', "Can't copy! TypedArray destination cannot be mutated."); } - } else { - if (source === destination) throw ngMinErr('cpi', - "Can't copy! Source and destination are identical."); - - stackSource = stackSource || []; - stackDest = stackDest || []; - - if (isObject(source)) { - stackSource.push(source); - stackDest.push(destination); + if (source === destination) { + throw ngMinErr('cpi', "Can't copy! Source and destination are identical."); } - var result, key; - if (isArray(source)) { + // Empty the destination object + if (isArray(destination)) { destination.length = 0; - for (var i = 0; i < source.length; i++) { - destination.push(copy(source[i], null, stackSource, stackDest)); + } else { + forEach(destination, function(value, key) { + if (key !== '$$hashKey') { + delete destination[key]; + } + }); + } + + stackSource.push(source); + stackDest.push(destination); + return copyRecurse(source, destination); + } + + return copyElement(source); + + function copyRecurse(source, destination) { + var h = destination.$$hashKey; + var key; + if (isArray(source)) { + for (var i = 0, ii = source.length; i < ii; i++) { + destination.push(copyElement(source[i])); + } + } else if (isBlankObject(source)) { + // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty + for (key in source) { + destination[key] = copyElement(source[key]); + } + } else if (source && typeof source.hasOwnProperty === 'function') { + // Slow path, which must rely on hasOwnProperty + for (key in source) { + if (source.hasOwnProperty(key)) { + destination[key] = copyElement(source[key]); + } } } else { - var h = destination.$$hashKey; - if (isArray(destination)) { - destination.length = 0; - } else { - forEach(destination, function(value, key) { - delete destination[key]; - }); - } - if (isBlankObject(source)) { - // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty - for (key in source) { - destination[key] = copy(source[key], null, stackSource, stackDest); - } - } else if (source && typeof source.hasOwnProperty === 'function') { - // Slow path, which must rely on hasOwnProperty - for (key in source) { - if (source.hasOwnProperty(key)) { - destination[key] = copy(source[key], null, stackSource, stackDest); - } - } - } else { - // Slowest path --- hasOwnProperty can't be called as a method - for (key in source) { - if (hasOwnProperty.call(source, key)) { - destination[key] = copy(source[key], null, stackSource, stackDest); - } + // Slowest path --- hasOwnProperty can't be called as a method + for (key in source) { + if (hasOwnProperty.call(source, key)) { + destination[key] = copyElement(source[key]); } } - setHashKey(destination,h); + } + setHashKey(destination, h); + return destination; + } + + function copyElement(source) { + // Simple values + if (!isObject(source)) { + return source; + } + + // Already copied values + var index = stackSource.indexOf(source); + if (index !== -1) { + return stackDest[index]; + } + + if (isWindow(source) || isScope(source)) { + throw ngMinErr('cpws', + "Can't copy! Making copies of Window or Scope instances is not supported."); + } + + var needsRecurse = false; + var destination = copyType(source); + + if (destination === undefined) { + destination = isArray(source) ? [] : Object.create(getPrototypeOf(source)); + needsRecurse = true; + } + + stackSource.push(source); + stackDest.push(destination); + + return needsRecurse + ? copyRecurse(source, destination) + : destination; + } + + function copyType(source) { + switch (toString.call(source)) { + case '[object Int8Array]': + case '[object Int16Array]': + case '[object Int32Array]': + case '[object Float32Array]': + case '[object Float64Array]': + case '[object Uint8Array]': + case '[object Uint8ClampedArray]': + case '[object Uint16Array]': + case '[object Uint32Array]': + return new source.constructor(copyElement(source.buffer)); + + case '[object ArrayBuffer]': + //Support: IE10 + if (!source.slice) { + var copied = new ArrayBuffer(source.byteLength); + new Uint8Array(copied).set(new Uint8Array(source)); + return copied; + } + return source.slice(0); + + case '[object Boolean]': + case '[object Number]': + case '[object String]': + case '[object Date]': + return new source.constructor(source.valueOf()); + + case '[object RegExp]': + var re = new RegExp(source.source, source.toString().match(/[^\/]*$/)[0]); + re.lastIndex = source.lastIndex; + return re; + + case '[object Blob]': + return new source.constructor([source], {type: source.type}); + } + + if (isFunction(source.cloneNode)) { + return source.cloneNode(true); } } - return destination; } /** @@ -1013,44 +1048,78 @@ function shallowCopy(src, dst) { * @param {*} o1 Object or value to compare. * @param {*} o2 Object or value to compare. * @returns {boolean} True if arguments are equal. + * + * @example + + +
+
+

User 1

+ Name: + Age: + +

User 2

+ Name: + Age: + +
+
+ +
+ User 1:
{{user1 | json}}
+ User 2:
{{user2 | json}}
+ Equal:
{{result}}
+
+
+
+ + angular.module('equalsExample', []).controller('ExampleController', ['$scope', function($scope) { + $scope.user1 = {}; + $scope.user2 = {}; + $scope.result; + $scope.compare = function() { + $scope.result = angular.equals($scope.user1, $scope.user2); + }; + }]); + +
*/ function equals(o1, o2) { if (o1 === o2) return true; if (o1 === null || o2 === null) return false; if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN var t1 = typeof o1, t2 = typeof o2, length, key, keySet; - if (t1 == t2) { - if (t1 == 'object') { - if (isArray(o1)) { - if (!isArray(o2)) return false; - if ((length = o1.length) == o2.length) { - for (key = 0; key < length; key++) { - if (!equals(o1[key], o2[key])) return false; - } - return true; - } - } else if (isDate(o1)) { - if (!isDate(o2)) return false; - return equals(o1.getTime(), o2.getTime()); - } else if (isRegExp(o1)) { - return isRegExp(o2) ? o1.toString() == o2.toString() : false; - } else { - if (isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) || - isArray(o2) || isDate(o2) || isRegExp(o2)) return false; - keySet = createMap(); - for (key in o1) { - if (key.charAt(0) === '$' || isFunction(o1[key])) continue; + if (t1 == t2 && t1 == 'object') { + if (isArray(o1)) { + if (!isArray(o2)) return false; + if ((length = o1.length) == o2.length) { + for (key = 0; key < length; key++) { if (!equals(o1[key], o2[key])) return false; - keySet[key] = true; - } - for (key in o2) { - if (!(key in keySet) && - key.charAt(0) !== '$' && - isDefined(o2[key]) && - !isFunction(o2[key])) return false; } return true; } + } else if (isDate(o1)) { + if (!isDate(o2)) return false; + return equals(o1.getTime(), o2.getTime()); + } else if (isRegExp(o1)) { + if (!isRegExp(o2)) return false; + return o1.toString() == o2.toString(); + } else { + if (isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) || + isArray(o2) || isDate(o2) || isRegExp(o2)) return false; + keySet = createMap(); + for (key in o1) { + if (key.charAt(0) === '$' || isFunction(o1[key])) continue; + if (!equals(o1[key], o2[key])) return false; + keySet[key] = true; + } + for (key in o2) { + if (!(key in keySet) && + key.charAt(0) !== '$' && + isDefined(o2[key]) && + !isFunction(o2[key])) return false; + } + return true; } } return false; @@ -1060,8 +1129,8 @@ var csp = function() { if (!isDefined(csp.rules)) { - var ngCspElement = (document.querySelector('[ng-csp]') || - document.querySelector('[data-ng-csp]')); + var ngCspElement = (window.document.querySelector('[ng-csp]') || + window.document.querySelector('[data-ng-csp]')); if (ngCspElement) { var ngCspAttribute = ngCspElement.getAttribute('ng-csp') || @@ -1136,7 +1205,7 @@ var jq = function() { var i, ii = ngAttrPrefixes.length, prefix, name; for (i = 0; i < ii; ++i) { prefix = ngAttrPrefixes[i]; - if (el = document.querySelector('[' + prefix.replace(':', '\\:') + 'jq]')) { + if (el = window.document.querySelector('[' + prefix.replace(':', '\\:') + 'jq]')) { name = el.getAttribute(prefix + 'jq'); break; } @@ -1201,7 +1270,7 @@ function toJsonReplacer(key, value) { val = undefined; } else if (isWindow(value)) { val = '$WINDOW'; - } else if (value && document === value) { + } else if (value && window.document === value) { val = '$DOCUMENT'; } else if (isScope(value)) { val = '$SCOPE'; @@ -1227,7 +1296,7 @@ function toJsonReplacer(key, value) { * @returns {string|undefined} JSON-ified string representing `obj`. */ function toJson(obj, pretty) { - if (typeof obj === 'undefined') return undefined; + if (isUndefined(obj)) return undefined; if (!isNumber(pretty)) { pretty = pretty ? 2 : null; } @@ -1254,7 +1323,10 @@ function fromJson(json) { } +var ALL_COLONS = /:/g; function timezoneToOffset(timezone, fallback) { + // IE/Edge do not "understand" colon (`:`) in timezone + timezone = timezone.replace(ALL_COLONS, ''); var requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000; return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset; } @@ -1269,8 +1341,9 @@ function addDateMinutes(date, minutes) { function convertTimezoneToLocal(date, timezone, reverse) { reverse = reverse ? -1 : 1; - var timezoneOffset = timezoneToOffset(timezone, date.getTimezoneOffset()); - return addDateMinutes(date, reverse * (timezoneOffset - date.getTimezoneOffset())); + var dateTimezoneOffset = date.getTimezoneOffset(); + var timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset); + return addDateMinutes(date, reverse * (timezoneOffset - dateTimezoneOffset)); } @@ -1289,7 +1362,7 @@ function startingTag(element) { return element[0].nodeType === NODE_TYPE_TEXT ? lowercase(elemHtml) : elemHtml. match(/^(<[^>]+>)/)[1]. - replace(/^<([\w\-]+)/, function(match, nodeName) { return '<' + lowercase(nodeName); }); + replace(/^<([\w\-]+)/, function(match, nodeName) {return '<' + lowercase(nodeName);}); } catch (e) { return lowercase(elemHtml); } @@ -1437,10 +1510,17 @@ function getNgAttribute(element, ngAttr) { * designates the **root element** of the application and is typically placed near the root element * of the page - e.g. on the `` or `` tags. * - * Only one AngularJS application can be auto-bootstrapped per HTML document. The first `ngApp` - * found in the document will be used to define the root element to auto-bootstrap as an - * application. To run multiple applications in an HTML document you must manually bootstrap them using - * {@link angular.bootstrap} instead. AngularJS applications cannot be nested within each other. + * There are a few things to keep in mind when using `ngApp`: + * - only one AngularJS application can be auto-bootstrapped per HTML document. The first `ngApp` + * found in the document will be used to define the root element to auto-bootstrap as an + * application. To run multiple applications in an HTML document you must manually bootstrap them using + * {@link angular.bootstrap} instead. + * - AngularJS applications cannot be nested within each other. + * - Do not use a directive that uses {@link ng.$compile#transclusion transclusion} on the same element as `ngApp`. + * This includes directives such as {@link ng.ngIf `ngIf`}, {@link ng.ngInclude `ngInclude`} and + * {@link ngRoute.ngView `ngView`}. + * Doing this misplaces the app {@link ng.$rootElement `$rootElement`} and the app's {@link auto.$injector injector}, + * causing animations to stop working and making the injector inaccessible from outside the app. * * You can specify an **AngularJS module** to be used as the root module for the application. This * module will be loaded into the {@link auto.$injector} when the application is bootstrapped. It @@ -1580,16 +1660,25 @@ function angularInit(element, bootstrap) { * @description * Use this function to manually start up angular application. * - * See: {@link guide/bootstrap Bootstrap} - * - * Note that Protractor based end-to-end tests cannot use this function to bootstrap manually. - * They must use {@link ng.directive:ngApp ngApp}. + * For more information, see the {@link guide/bootstrap Bootstrap guide}. * * Angular will detect if it has been loaded into the browser more than once and only allow the * first loaded script to be bootstrapped and will report a warning to the browser console for * each of the subsequent scripts. This prevents strange results in applications, where otherwise * multiple instances of Angular try to work on the DOM. * + *
+ * **Note:** Protractor based end-to-end tests cannot use this function to bootstrap manually. + * They must use {@link ng.directive:ngApp ngApp}. + *
+ * + *
+ * **Note:** Do not bootstrap the app on an element with a directive that uses {@link ng.$compile#transclusion transclusion}, + * such as {@link ng.ngIf `ngIf`}, {@link ng.ngInclude `ngInclude`} and {@link ngRoute.ngView `ngView`}. + * Doing this misplaces the app {@link ng.$rootElement `$rootElement`} and the app's {@link auto.$injector injector}, + * causing animations to stop working and making the injector inaccessible from outside the app. + *
+ * * ```html * * @@ -1633,11 +1722,11 @@ function bootstrap(element, modules, config) { element = jqLite(element); if (element.injector()) { - var tag = (element[0] === document) ? 'document' : startingTag(element); + var tag = (element[0] === window.document) ? 'document' : startingTag(element); //Encode angle brackets to prevent input from being sanitized to empty string #8683 throw ngMinErr( 'btstrpd', - "App Already Bootstrapped with this Element '{0}'", + "App already bootstrapped with this element '{0}'", tag.replace(//,'>')); } @@ -1732,7 +1821,6 @@ function snake_case(name, separator) { } var bindJQueryFired = false; -var skipDestroyOnNextJQueryCleanData; function bindJQuery() { var originalCleanData; @@ -1766,15 +1854,11 @@ function bindJQuery() { originalCleanData = jQuery.cleanData; jQuery.cleanData = function(elems) { var events; - if (!skipDestroyOnNextJQueryCleanData) { - for (var i = 0, elem; (elem = elems[i]) != null; i++) { - events = jQuery._data(elem, "events"); - if (events && events.$destroy) { - jQuery(elem).triggerHandler('$destroy'); - } + for (var i = 0, elem; (elem = elems[i]) != null; i++) { + events = jQuery._data(elem, "events"); + if (events && events.$destroy) { + jQuery(elem).triggerHandler('$destroy'); } - } else { - skipDestroyOnNextJQueryCleanData = false; } originalCleanData(elems); }; @@ -1968,7 +2052,7 @@ function setupModuleLoader(window) { * unspecified then the module is being retrieved for further configuration. * @param {Function=} configFn Optional configuration function for the module. Same as * {@link angular.Module#config Module#config()}. - * @returns {module} new module with the {@link angular.Module} api. + * @returns {angular.Module} new module with the {@link angular.Module} api. */ return function module(name, requires, configFn) { var assertNotHasOwnProperty = function(name, context) { @@ -2080,7 +2164,7 @@ function setupModuleLoader(window) { * @param {string} name constant name * @param {*} object Constant value. * @description - * Because the constant are fixed, they get applied before other provide methods. + * Because the constants are fixed, they get applied before other provide methods. * See {@link auto.$provide#constant $provide.constant()}. */ constant: invokeLater('$provide', 'constant', 'unshift'), @@ -2089,9 +2173,9 @@ function setupModuleLoader(window) { * @ngdoc method * @name angular.Module#decorator * @module ng - * @param {string} The name of the service to decorate. - * @param {Function} This function will be invoked when the service needs to be - * instantiated and should return the decorated service instance. + * @param {string} name The name of the service to decorate. + * @param {Function} decorFn This function will be invoked when the service needs to be + * instantiated and should return the decorated service instance. * @description * See {@link auto.$provide#decorator $provide.decorator()}. */ @@ -2174,6 +2258,19 @@ function setupModuleLoader(window) { */ directive: invokeLaterAndSetModuleName('$compileProvider', 'directive'), + /** + * @ngdoc method + * @name angular.Module#component + * @module ng + * @param {string} name Name of the component in camel-case (i.e. myComp which will match as my-comp) + * @param {Object} options Component definition object (a simplified + * {@link ng.$compile#directive-definition-object directive definition object}) + * + * @description + * See {@link ng.$compileProvider#component $compileProvider.component()}. + */ + component: invokeLaterAndSetModuleName('$compileProvider', 'component'), + /** * @ngdoc method * @name angular.Module#config @@ -2325,11 +2422,14 @@ function toDebugString(obj) { $AnchorScrollProvider, $AnimateProvider, $CoreAnimateCssProvider, + $$CoreAnimateJsProvider, $$CoreAnimateQueueProvider, - $$CoreAnimateRunnerProvider, + $$AnimateRunnerFactoryProvider, + $$AnimateAsyncRunFactoryProvider, $BrowserProvider, $CacheFactoryProvider, $ControllerProvider, + $DateProvider, $DocumentProvider, $ExceptionHandlerProvider, $FilterProvider, @@ -2379,11 +2479,11 @@ function toDebugString(obj) { * - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat". */ var version = { - full: '1.4.7', // all of these placeholder strings will be replaced by grunt's + full: '1.5.5', // all of these placeholder strings will be replaced by grunt's major: 1, // package task - minor: 4, - dot: 7, - codeName: 'dark-luminescence' + minor: 5, + dot: 5, + codeName: 'material-conspiration' }; @@ -2485,8 +2585,10 @@ function publishExternalAPI(angular) { $anchorScroll: $AnchorScrollProvider, $animate: $AnimateProvider, $animateCss: $CoreAnimateCssProvider, + $$animateJs: $$CoreAnimateJsProvider, $$animateQueue: $$CoreAnimateQueueProvider, - $$AnimateRunner: $$CoreAnimateRunnerProvider, + $$AnimateRunner: $$AnimateRunnerFactoryProvider, + $$animateAsyncRun: $$AnimateAsyncRunFactoryProvider, $browser: $BrowserProvider, $cacheFactory: $CacheFactoryProvider, $controller: $ControllerProvider, @@ -2557,16 +2659,22 @@ function publishExternalAPI(angular) { * * If jQuery is available, `angular.element` is an alias for the * [jQuery](http://api.jquery.com/jQuery/) function. If jQuery is not available, `angular.element` - * delegates to Angular's built-in subset of jQuery, called "jQuery lite" or "jqLite." + * delegates to Angular's built-in subset of jQuery, called "jQuery lite" or **jqLite**. * - *
jqLite is a tiny, API-compatible subset of jQuery that allows - * Angular to manipulate the DOM in a cross-browser compatible way. **jqLite** implements only the most - * commonly needed functionality with the goal of having a very small footprint.
+ * jqLite is a tiny, API-compatible subset of jQuery that allows + * Angular to manipulate the DOM in a cross-browser compatible way. jqLite implements only the most + * commonly needed functionality with the goal of having a very small footprint. * - * To use `jQuery`, simply ensure it is loaded before the `angular.js` file. + * To use `jQuery`, simply ensure it is loaded before the `angular.js` file. You can also use the + * {@link ngJq `ngJq`} directive to specify that jqlite should be used over jQuery, or to use a + * specific version of jQuery if multiple versions exist on the page. * - *
**Note:** all element references in Angular are always wrapped with jQuery or - * jqLite; they are never raw DOM references.
+ *
**Note:** All element references in Angular are always wrapped with jQuery or + * jqLite (such as the element argument in a directive's compile / link function). They are never raw DOM references.
+ * + *
**Note:** Keep in mind that this function will not find elements + * by tag name / CSS selector. For lookups by tag name, try instead `angular.element(document).find(...)` + * or `$document.find()`, or use the standard DOM APIs, e.g. `document.querySelectorAll()`.
* * ## Angular's jqLite * jqLite provides only the following jQuery methods: @@ -2579,7 +2687,8 @@ function publishExternalAPI(angular) { * - [`children()`](http://api.jquery.com/children/) - Does not support selectors * - [`clone()`](http://api.jquery.com/clone/) * - [`contents()`](http://api.jquery.com/contents/) - * - [`css()`](http://api.jquery.com/css/) - Only retrieves inline-styles, does not call `getComputedStyle()`. As a setter, does not convert numbers to strings or append 'px'. + * - [`css()`](http://api.jquery.com/css/) - Only retrieves inline-styles, does not call `getComputedStyle()`. + * As a setter, does not convert numbers to strings or append 'px', and also does not have automatic property prefixing. * - [`data()`](http://api.jquery.com/data/) * - [`detach()`](http://api.jquery.com/detach/) * - [`empty()`](http://api.jquery.com/empty/) @@ -2631,6 +2740,9 @@ function publishExternalAPI(angular) { * - `inheritedData()` - same as `data()`, but walks up the DOM until a value is found or the top * parent element is reached. * + * @knownIssue You cannot spy on `angular.element` if you are using Jasmine version 1.x. See + * https://github.com/angular/angular.js/issues/14251 for more information. + * * @param {string|DOMElement} element HTML string or DOMElement to be wrapped into jQuery. * @returns {Object} jQuery object. */ @@ -2713,6 +2825,12 @@ function jqLiteHasData(node) { return false; } +function jqLiteCleanData(nodes) { + for (var i = 0, ii = nodes.length; i < ii; i++) { + jqLiteRemoveData(nodes[i]); + } +} + function jqLiteBuildFragment(html, context) { var tmp, tag, wrap, fragment = context.createDocumentFragment(), @@ -2751,7 +2869,7 @@ function jqLiteBuildFragment(html, context) { } function jqLiteParseHTML(html, context) { - context = context || document; + context = context || window.document; var parsed; if ((parsed = SINGLE_TAG_REGEXP.exec(html))) { @@ -2765,6 +2883,24 @@ function jqLiteParseHTML(html, context) { return []; } +function jqLiteWrapNode(node, wrapper) { + var parent = node.parentNode; + + if (parent) { + parent.replaceChild(wrapper, node); + } + + wrapper.appendChild(node); +} + + +// IE9-11 has no method "contains" in SVG element and in Node.prototype. Bug #10259. +var jqLiteContains = window.Node.prototype.contains || function(arg) { + // jshint bitwise: false + return !!(this.compareDocumentPosition(arg) & 16); + // jshint bitwise: true +}; + ///////////////////////////////////////////// function JQLite(element) { if (element instanceof JQLite) { @@ -2823,17 +2959,23 @@ function jqLiteOff(element, type, fn, unsupported) { delete events[type]; } } else { - forEach(type.split(' '), function(type) { - if (isDefined(fn)) { - var listenerFns = events[type]; - arrayRemove(listenerFns || [], fn); - if (listenerFns && listenerFns.length > 0) { - return; - } - } - removeEventListenerFn(element, type, handle); - delete events[type]; + var removeHandler = function(type) { + var listenerFns = events[type]; + if (isDefined(fn)) { + arrayRemove(listenerFns || [], fn); + } + if (!(isDefined(fn) && listenerFns && listenerFns.length > 0)) { + removeEventListenerFn(element, type, handle); + delete events[type]; + } + }; + + forEach(type.split(' '), function(type) { + removeHandler(type); + if (MOUSE_EVENT_MAP[type]) { + removeHandler(MOUSE_EVENT_MAP[type]); + } }); } } @@ -3001,7 +3143,7 @@ function jqLiteRemove(element, keepData) { function jqLiteDocumentLoaded(action, win) { win = win || window; if (win.document.readyState === 'complete') { - // Force the action to be run async for consistent behaviour + // Force the action to be run async for consistent behavior // from the action's point of view // i.e. it will definitely not be in a $apply win.setTimeout(action); @@ -3025,8 +3167,8 @@ var JQLitePrototype = JQLite.prototype = { } // check if document is already loaded - if (document.readyState === 'complete') { - setTimeout(trigger); + if (window.document.readyState === 'complete') { + window.setTimeout(trigger); } else { this.on('DOMContentLoaded', trigger); // works for modern browsers and IE9 // we can not use jqLite since we are not done loading and jQuery could be loaded later. @@ -3087,7 +3229,8 @@ function getAliasedAttrName(name) { forEach({ data: jqLiteData, removeData: jqLiteRemoveData, - hasData: jqLiteHasData + hasData: jqLiteHasData, + cleanData: jqLiteCleanData }, function(fn, name) { JQLite[name] = fn; }); @@ -3288,6 +3431,9 @@ function createEventHandler(element, events) { return event.immediatePropagationStopped === true; }; + // Some events have special handlers that wrap the real handler + var handlerWrapper = eventFns.specialHandlerWrapper || defaultHandlerWrapper; + // Copy event handlers in case event handlers array is modified during execution. if ((eventFnsLength > 1)) { eventFns = shallowCopy(eventFns); @@ -3295,7 +3441,7 @@ function createEventHandler(element, events) { for (var i = 0; i < eventFnsLength; i++) { if (!event.isImmediatePropagationStopped()) { - eventFns[i].call(element, event); + handlerWrapper(element, event, eventFns[i]); } } }; @@ -3306,6 +3452,22 @@ function createEventHandler(element, events) { return eventHandler; } +function defaultHandlerWrapper(element, event, handler) { + handler.call(element, event); +} + +function specialMouseHandlerWrapper(target, event, handler) { + // Refer to jQuery's implementation of mouseenter & mouseleave + // Read about mouseenter and mouseleave: + // http://www.quirksmode.org/js/events_mouse.html#link8 + var related = event.relatedTarget; + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if (!related || (related !== target && !jqLiteContains.call(target, related))) { + handler.call(target, event); + } +} + ////////////////////////////////////////// // Functions iterating traversal. // These functions chain results into a single @@ -3334,35 +3496,28 @@ forEach({ var types = type.indexOf(' ') >= 0 ? type.split(' ') : [type]; var i = types.length; - while (i--) { - type = types[i]; + var addHandler = function(type, specialHandlerWrapper, noEventListener) { var eventFns = events[type]; if (!eventFns) { - events[type] = []; - - if (type === 'mouseenter' || type === 'mouseleave') { - // Refer to jQuery's implementation of mouseenter & mouseleave - // Read about mouseenter and mouseleave: - // http://www.quirksmode.org/js/events_mouse.html#link8 - - jqLiteOn(element, MOUSE_EVENT_MAP[type], function(event) { - var target = this, related = event.relatedTarget; - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if (!related || (related !== target && !target.contains(related))) { - handle(event, type); - } - }); - - } else { - if (type !== '$destroy') { - addEventListenerFn(element, type, handle); - } + eventFns = events[type] = []; + eventFns.specialHandlerWrapper = specialHandlerWrapper; + if (type !== '$destroy' && !noEventListener) { + addEventListenerFn(element, type, handle); } - eventFns = events[type]; } + eventFns.push(fn); + }; + + while (i--) { + type = types[i]; + if (MOUSE_EVENT_MAP[type]) { + addHandler(MOUSE_EVENT_MAP[type], specialMouseHandlerWrapper); + addHandler(type, undefined, true); + } else { + addHandler(type); + } } }, @@ -3430,12 +3585,7 @@ forEach({ }, wrap: function(element, wrapNode) { - wrapNode = jqLite(wrapNode).eq(0).clone()[0]; - var parent = element.parentNode; - if (parent) { - parent.replaceChild(wrapNode, element); - } - wrapNode.appendChild(element); + jqLiteWrapNode(element, jqLite(wrapNode).eq(0).clone()[0]); }, remove: jqLiteRemove, @@ -3708,22 +3858,29 @@ var $$HashMapProvider = [function() { /** * @ngdoc module * @name auto + * @installation * @description * * Implicit module which gets automatically added to each {@link auto.$injector $injector}. */ +var ARROW_ARG = /^([^\(]+?)=>/; var FN_ARGS = /^[^\(]*\(\s*([^\)]*)\)/m; var FN_ARG_SPLIT = /,/; var FN_ARG = /^\s*(_?)(\S+?)\1\s*$/; var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg; var $injectorMinErr = minErr('$injector'); +function extractArgs(fn) { + var fnText = Function.prototype.toString.call(fn).replace(STRIP_COMMENTS, ''), + args = fnText.match(ARROW_ARG) || fnText.match(FN_ARGS); + return args; +} + function anonFn(fn) { // For anonymous functions, showing at the very least the function signature can help in // debugging. - var fnText = fn.toString().replace(STRIP_COMMENTS, ''), - args = fnText.match(FN_ARGS); + var args = extractArgs(fn); if (args) { return 'function(' + (args[1] || '').replace(/[\s\r\n]+/, ' ') + ')'; } @@ -3732,7 +3889,6 @@ function anonFn(fn) { function annotate(fn, strictDi, name) { var $inject, - fnText, argDecl, last; @@ -3747,8 +3903,7 @@ function annotate(fn, strictDi, name) { throw $injectorMinErr('strictdi', '{0} is not using explicit annotation and cannot be invoked in strict mode', name); } - fnText = fn.toString().replace(STRIP_COMMENTS, ''); - argDecl = fnText.match(FN_ARGS); + argDecl = extractArgs(fn); forEach(argDecl[1].split(FN_ARG_SPLIT), function(arg) { arg.replace(FN_ARG, function(all, underscore, name) { $inject.push(name); @@ -4138,8 +4293,20 @@ function annotate(fn, strictDi, name) { * * Register a **service constructor**, which will be invoked with `new` to create the service * instance. - * This is short for registering a service where its provider's `$get` property is the service - * constructor function that will be used to instantiate the service instance. + * This is short for registering a service where its provider's `$get` property is a factory + * function that returns an instance instantiated by the injector from the service constructor + * function. + * + * Internally it looks a bit like this: + * + * ``` + * { + * $get: function() { + * return $injector.instantiate(constructor); + * } + * } + * ``` + * * * You should use {@link auto.$provide#service $provide.service(class)} if you define your service * as a type/class. @@ -4179,14 +4346,13 @@ function annotate(fn, strictDi, name) { * @description * * Register a **value service** with the {@link auto.$injector $injector}, such as a string, a - * number, an array, an object or a function. This is short for registering a service where its + * number, an array, an object or a function. This is short for registering a service where its * provider's `$get` property is a factory function that takes no arguments and returns the **value - * service**. + * service**. That also means it is not possible to inject other services into a value service. * * Value services are similar to constant services, except that they cannot be injected into a * module configuration function (see {@link angular.Module#config}) but they can be overridden by - * an Angular - * {@link auto.$provide#decorator decorator}. + * an Angular {@link auto.$provide#decorator decorator}. * * @param {string} name The name of the instance. * @param {*} value The value. @@ -4211,8 +4377,11 @@ function annotate(fn, strictDi, name) { * @name $provide#constant * @description * - * Register a **constant service**, such as a string, a number, an array, an object or a function, - * with the {@link auto.$injector $injector}. Unlike {@link auto.$provide#value value} it can be + * Register a **constant service** with the {@link auto.$injector $injector}, such as a string, + * a number, an array, an object or a function. Like the {@link auto.$provide#value value}, it is not + * possible to inject other services into a constant. + * + * But unlike {@link auto.$provide#value value}, a constant can be * injected into a module configuration function (see {@link angular.Module#config}) and it cannot * be overridden by an Angular {@link auto.$provide#decorator decorator}. * @@ -4240,7 +4409,7 @@ function annotate(fn, strictDi, name) { * @description * * Register a **service decorator** with the {@link auto.$injector $injector}. A service decorator - * intercepts the creation of a service, allowing it to override or modify the behaviour of the + * intercepts the creation of a service, allowing it to override or modify the behavior of the * service. The object returned by the decorator may be the original service, or a new service * object which replaces or wraps and delegates to the original service. * @@ -4289,14 +4458,19 @@ function createInjector(modulesToLoad, strictDi) { throw $injectorMinErr('unpr', "Unknown provider: {0}", path.join(' <- ')); })), instanceCache = {}, - instanceInjector = (instanceCache.$injector = + protoInstanceInjector = createInternalInjector(instanceCache, function(serviceName, caller) { var provider = providerInjector.get(serviceName + providerSuffix, caller); - return instanceInjector.invoke(provider.$get, provider, undefined, serviceName); - })); + return instanceInjector.invoke( + provider.$get, provider, undefined, serviceName); + }), + instanceInjector = protoInstanceInjector; - - forEach(loadModules(modulesToLoad), function(fn) { if (fn) instanceInjector.invoke(fn); }); + providerCache['$injector' + providerSuffix] = { $get: valueFn(protoInstanceInjector) }; + var runBlocks = loadModules(modulesToLoad); + instanceInjector = protoInstanceInjector.get('$injector'); + instanceInjector.strictDi = strictDi; + forEach(runBlocks, function(fn) { if (fn) instanceInjector.invoke(fn); }); return instanceInjector; @@ -4446,48 +4620,67 @@ function createInjector(modulesToLoad, strictDi) { } } + + function injectionArgs(fn, locals, serviceName) { + var args = [], + $inject = createInjector.$$annotate(fn, strictDi, serviceName); + + for (var i = 0, length = $inject.length; i < length; i++) { + var key = $inject[i]; + if (typeof key !== 'string') { + throw $injectorMinErr('itkn', + 'Incorrect injection token! Expected service name as string, got {0}', key); + } + args.push(locals && locals.hasOwnProperty(key) ? locals[key] : + getService(key, serviceName)); + } + return args; + } + + function isClass(func) { + // IE 9-11 do not support classes and IE9 leaks with the code below. + if (msie <= 11) { + return false; + } + // Workaround for MS Edge. + // Check https://connect.microsoft.com/IE/Feedback/Details/2211653 + return typeof func === 'function' + && /^(?:class\s|constructor\()/.test(Function.prototype.toString.call(func)); + } + function invoke(fn, self, locals, serviceName) { if (typeof locals === 'string') { serviceName = locals; locals = null; } - var args = [], - $inject = createInjector.$$annotate(fn, strictDi, serviceName), - length, i, - key; - - for (i = 0, length = $inject.length; i < length; i++) { - key = $inject[i]; - if (typeof key !== 'string') { - throw $injectorMinErr('itkn', - 'Incorrect injection token! Expected service name as string, got {0}', key); - } - args.push( - locals && locals.hasOwnProperty(key) - ? locals[key] - : getService(key, serviceName) - ); - } + var args = injectionArgs(fn, locals, serviceName); if (isArray(fn)) { - fn = fn[length]; + fn = fn[fn.length - 1]; } - // http://jsperf.com/angularjs-invoke-apply-vs-switch - // #5388 - return fn.apply(self, args); + if (!isClass(fn)) { + // http://jsperf.com/angularjs-invoke-apply-vs-switch + // #5388 + return fn.apply(self, args); + } else { + args.unshift(null); + return new (Function.prototype.bind.apply(fn, args))(); + } } + function instantiate(Type, locals, serviceName) { // Check if Type is annotated and use just the given function at n-1 as parameter // e.g. someModule.factory('greeter', ['$window', function(renamed$window) {}]); - // Object creation: http://jsperf.com/create-constructor/2 - var instance = Object.create((isArray(Type) ? Type[Type.length - 1] : Type).prototype || null); - var returnedValue = invoke(Type, instance, locals, serviceName); - - return isObject(returnedValue) || isFunction(returnedValue) ? returnedValue : instance; + var ctor = (isArray(Type) ? Type[Type.length - 1] : Type); + var args = injectionArgs(Type, locals, serviceName); + // Empty object at position 0 is ignored for invocation with `new`, but required. + args.unshift(null); + return new (Function.prototype.bind.apply(ctor, args))(); } + return { invoke: invoke, instantiate: instantiate, @@ -4543,7 +4736,7 @@ function $AnchorScrollProvider() { * When called, it scrolls to the element related to the specified `hash` or (if omitted) to the * current value of {@link ng.$location#hash $location.hash()}, according to the rules specified * in the - * [HTML5 spec](http://dev.w3.org/html5/spec/Overview.html#the-indicated-part-of-the-document). + * [HTML5 spec](http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-indicated-part-of-the-document). * * It also watches the {@link ng.$location#hash $location.hash()} and automatically scrolls to * match any anchor whenever it changes. This can be disabled by calling @@ -4826,27 +5019,8 @@ function prepareAnimateOptions(options) { : {}; } -var $$CoreAnimateRunnerProvider = function() { - this.$get = ['$q', '$$rAF', function($q, $$rAF) { - function AnimateRunner() {} - AnimateRunner.all = noop; - AnimateRunner.chain = noop; - AnimateRunner.prototype = { - end: noop, - cancel: noop, - resume: noop, - pause: noop, - complete: noop, - then: function(pass, fail) { - return $q(function(resolve) { - $$rAF(function() { - resolve(); - }); - }).then(pass, fail); - } - }; - return AnimateRunner; - }]; +var $$CoreAnimateJsProvider = function() { + this.$get = noop; }; // this is prefixed with Core since it conflicts with @@ -4874,7 +5048,12 @@ var $$CoreAnimateQueueProvider = function() { addRemoveClassesPostDigest(element, options.addClass, options.removeClass); } - return new $$AnimateRunner(); // jshint ignore:line + var runner = new $$AnimateRunner(); // jshint ignore:line + + // since there are no animations to run the runner needs to be + // notified that the animation call is complete. + runner.complete(); + return runner; } }; @@ -5058,7 +5237,7 @@ var $AnimateProvider = ['$provide', function($provide) { * when an animation is detected (and animations are enabled), $animate will do the heavy lifting * to ensure that animation runs with the triggered DOM operation. * - * By default $animate doesn't trigger an animations. This is because the `ngAnimate` module isn't + * By default $animate doesn't trigger any animations. This is because the `ngAnimate` module isn't * included and only when it is active then the animation hooks that `$animate` triggers will be * functional. Once active then all structural `ng-` directives will trigger animations as they perform * their DOM-related operations (enter, leave and move). Other directives such as `ngClass`, @@ -5113,15 +5292,20 @@ var $AnimateProvider = ['$provide', function($provide) { * // remove all the animation event listeners listening for `enter` * $animate.off('enter'); * + * // remove listeners for all animation events from the container element + * $animate.off(container); + * * // remove all the animation event listeners listening for `enter` on the given element and its children * $animate.off('enter', container); * - * // remove the event listener function provided by `listenerFn` that is set - * // to listen for `enter` on the given `element` as well as its children + * // remove the event listener function provided by `callback` that is set + * // to listen for `enter` on the given `container` as well as its children * $animate.off('enter', container, callback); * ``` * - * @param {string} event the animation event (e.g. enter, leave, move, addClass, removeClass, etc...) + * @param {string|DOMElement} event|container the animation event (e.g. enter, leave, move, + * addClass, removeClass, etc...), or the container element. If it is the element, all other + * arguments are ignored. * @param {DOMElement=} container the container element the event listener was placed on * @param {Function=} callback the callback function that was registered as the listener */ @@ -5339,17 +5523,30 @@ var $AnimateProvider = ['$provide', function($provide) { * @kind function * * @description Performs an inline animation on the element which applies the provided to and from CSS styles to the element. - * If any detected CSS transition, keyframe or JavaScript matches the provided className value then the animation will take - * on the provided styles. For example, if a transition animation is set for the given className then the provided from and - * to styles will be applied alongside the given transition. If a JavaScript animation is detected then the provided styles - * will be given in as function paramters into the `animate` method (or as apart of the `options` parameter). + * If any detected CSS transition, keyframe or JavaScript matches the provided className value, then the animation will take + * on the provided styles. For example, if a transition animation is set for the given classNamem, then the provided `from` and + * `to` styles will be applied alongside the given transition. If the CSS style provided in `from` does not have a corresponding + * style in `to`, the style in `from` is applied immediately, and no animation is run. + * If a JavaScript animation is detected then the provided styles will be given in as function parameters into the `animate` + * method (or as part of the `options` parameter): + * + * ```js + * ngModule.animation('.my-inline-animation', function() { + * return { + * animate : function(element, from, to, done, options) { + * //animation + * done(); + * } + * } + * }); + * ``` * * @param {DOMElement} element the element which the CSS styles will be applied to * @param {object} from the from (starting) CSS styles that will be applied to the element and across the animation. * @param {object} to the to (destination) CSS styles that will be applied to the element and across the animation. * @param {string=} className an optional CSS class that will be applied to the element for the duration of the animation. If * this value is left as empty then a CSS class of `ng-inline-animate` will be applied to the element. - * (Note that if no animation is detected then this value will not be appplied to the element.) + * (Note that if no animation is detected then this value will not be applied to the element.) * @param {object=} options an optional collection of options/styles that will be applied to the element * * @return {Promise} the animation callback promise @@ -5367,6 +5564,190 @@ var $AnimateProvider = ['$provide', function($provide) { }]; }]; +var $$AnimateAsyncRunFactoryProvider = function() { + this.$get = ['$$rAF', function($$rAF) { + var waitQueue = []; + + function waitForTick(fn) { + waitQueue.push(fn); + if (waitQueue.length > 1) return; + $$rAF(function() { + for (var i = 0; i < waitQueue.length; i++) { + waitQueue[i](); + } + waitQueue = []; + }); + } + + return function() { + var passed = false; + waitForTick(function() { + passed = true; + }); + return function(callback) { + passed ? callback() : waitForTick(callback); + }; + }; + }]; +}; + +var $$AnimateRunnerFactoryProvider = function() { + this.$get = ['$q', '$sniffer', '$$animateAsyncRun', '$document', '$timeout', + function($q, $sniffer, $$animateAsyncRun, $document, $timeout) { + + var INITIAL_STATE = 0; + var DONE_PENDING_STATE = 1; + var DONE_COMPLETE_STATE = 2; + + AnimateRunner.chain = function(chain, callback) { + var index = 0; + + next(); + function next() { + if (index === chain.length) { + callback(true); + return; + } + + chain[index](function(response) { + if (response === false) { + callback(false); + return; + } + index++; + next(); + }); + } + }; + + AnimateRunner.all = function(runners, callback) { + var count = 0; + var status = true; + forEach(runners, function(runner) { + runner.done(onProgress); + }); + + function onProgress(response) { + status = status && response; + if (++count === runners.length) { + callback(status); + } + } + }; + + function AnimateRunner(host) { + this.setHost(host); + + var rafTick = $$animateAsyncRun(); + var timeoutTick = function(fn) { + $timeout(fn, 0, false); + }; + + this._doneCallbacks = []; + this._tick = function(fn) { + var doc = $document[0]; + + // the document may not be ready or attached + // to the module for some internal tests + if (doc && doc.hidden) { + timeoutTick(fn); + } else { + rafTick(fn); + } + }; + this._state = 0; + } + + AnimateRunner.prototype = { + setHost: function(host) { + this.host = host || {}; + }, + + done: function(fn) { + if (this._state === DONE_COMPLETE_STATE) { + fn(); + } else { + this._doneCallbacks.push(fn); + } + }, + + progress: noop, + + getPromise: function() { + if (!this.promise) { + var self = this; + this.promise = $q(function(resolve, reject) { + self.done(function(status) { + status === false ? reject() : resolve(); + }); + }); + } + return this.promise; + }, + + then: function(resolveHandler, rejectHandler) { + return this.getPromise().then(resolveHandler, rejectHandler); + }, + + 'catch': function(handler) { + return this.getPromise()['catch'](handler); + }, + + 'finally': function(handler) { + return this.getPromise()['finally'](handler); + }, + + pause: function() { + if (this.host.pause) { + this.host.pause(); + } + }, + + resume: function() { + if (this.host.resume) { + this.host.resume(); + } + }, + + end: function() { + if (this.host.end) { + this.host.end(); + } + this._resolve(true); + }, + + cancel: function() { + if (this.host.cancel) { + this.host.cancel(); + } + this._resolve(false); + }, + + complete: function(response) { + var self = this; + if (self._state === INITIAL_STATE) { + self._state = DONE_PENDING_STATE; + self._tick(function() { + self._resolve(response); + }); + } + }, + + _resolve: function(response) { + if (this._state !== DONE_COMPLETE_STATE) { + forEach(this._doneCallbacks, function(fn) { + fn(response); + }); + this._doneCallbacks.length = 0; + this._state = DONE_COMPLETE_STATE; + } + } + }; + + return AnimateRunner; + }]; +}; + /** * @ngdoc service * @name $animateCss @@ -5379,37 +5760,18 @@ var $AnimateProvider = ['$provide', function($provide) { * Click here {@link ngAnimate.$animateCss to read the documentation for $animateCss}. */ var $CoreAnimateCssProvider = function() { - this.$get = ['$$rAF', '$q', function($$rAF, $q) { + this.$get = ['$$rAF', '$q', '$$AnimateRunner', function($$rAF, $q, $$AnimateRunner) { - var RAFPromise = function() {}; - RAFPromise.prototype = { - done: function(cancel) { - this.defer && this.defer[cancel === true ? 'reject' : 'resolve'](); - }, - end: function() { - this.done(); - }, - cancel: function() { - this.done(true); - }, - getPromise: function() { - if (!this.defer) { - this.defer = $q.defer(); - } - return this.defer.promise; - }, - then: function(f1,f2) { - return this.getPromise().then(f1,f2); - }, - 'catch': function(f1) { - return this.getPromise()['catch'](f1); - }, - 'finally': function(f1) { - return this.getPromise()['finally'](f1); + return function(element, initialOptions) { + // all of the animation functions should create + // a copy of the options data, however, if a + // parent service has already created a copy then + // we should stick to using that + var options = initialOptions || {}; + if (!options.$$prepared) { + options = copy(options); } - }; - return function(element, options) { // there is no point in applying the styles since // there is no animation that goes on at all in // this version of $animateCss. @@ -5422,7 +5784,8 @@ var $CoreAnimateCssProvider = function() { options.from = null; } - var closed, runner = new RAFPromise(); + /* jshint newcap: false */ + var closed, runner = new $$AnimateRunner(); return { start: run, end: run @@ -5430,16 +5793,16 @@ var $CoreAnimateCssProvider = function() { function run() { $$rAF(function() { - close(); + applyAnimationContents(); if (!closed) { - runner.done(); + runner.complete(); } closed = true; }); return runner; } - function close() { + function applyAnimationContents() { if (options.addClass) { element.addClass(options.addClass); options.addClass = null; @@ -5482,7 +5845,6 @@ var $CoreAnimateCssProvider = function() { */ function Browser(window, document, $log, $sniffer) { var self = this, - rawDocument = document[0], location = window.location, history = window.history, setTimeout = window.setTimeout, @@ -5545,7 +5907,14 @@ function Browser(window, document, $log, $sniffer) { var cachedState, lastHistoryState, lastBrowserUrl = location.href, baseElement = document.find('base'), - pendingLocation = null; + pendingLocation = null, + getCurrentState = !$sniffer.history ? noop : function getCurrentState() { + try { + return history.state; + } catch (e) { + // MSIE can reportedly throw when there is no state (UNCONFIRMED). + } + }; cacheState(); lastHistoryState = cachedState; @@ -5653,14 +6022,6 @@ function Browser(window, document, $log, $sniffer) { fireUrlChange(); } - function getCurrentState() { - try { - return history.state; - } catch (e) { - // MSIE can reportedly throw when there is no state (UNCONFIRMED). - } - } - // This variable should be used *only* inside the cacheState function. var lastCachedState = null; function cacheState() { @@ -5910,9 +6271,9 @@ function $CacheFactoryProvider() { var size = 0, stats = extend({}, options, {id: cacheId}), - data = {}, + data = createMap(), capacity = (options && options.capacity) || Number.MAX_VALUE, - lruHash = {}, + lruHash = createMap(), freshEnd = null, staleEnd = null; @@ -6040,6 +6401,8 @@ function $CacheFactoryProvider() { delete lruHash[key]; } + if (!(key in data)) return; + delete data[key]; size--; }, @@ -6054,9 +6417,9 @@ function $CacheFactoryProvider() { * Clears the cache object of any entries. */ removeAll: function() { - data = {}; + data = createMap(); size = 0; - lruHash = {}; + lruHash = createMap(); freshEnd = staleEnd = null; }, @@ -6345,7 +6708,7 @@ function $TemplateCacheProvider() { * When this property is set to true, the HTML compiler will collect DOM nodes between * nodes with the attributes `directive-name-start` and `directive-name-end`, and group them * together as the directive elements. It is recommended that this feature be used on directives - * which are not strictly behavioural (such as {@link ngClick}), and which + * which are not strictly behavioral (such as {@link ngClick}), and which * do not manipulate or replace child nodes (such as {@link ngInclude}). * * #### `priority` @@ -6383,35 +6746,62 @@ function $TemplateCacheProvider() { * is bound to the parent scope, via matching attributes on the directive's element: * * * `@` or `@attr` - bind a local scope property to the value of DOM attribute. The result is - * always a string since DOM attributes are strings. If no `attr` name is specified then the - * attribute name is assumed to be the same as the local name. - * Given `` and widget definition - * of `scope: { localName:'@myAttr' }`, then widget scope property `localName` will reflect - * the interpolated value of `hello {{name}}`. As the `name` attribute changes so will the - * `localName` property on the widget scope. The `name` is read from the parent scope (not - * component scope). + * always a string since DOM attributes are strings. If no `attr` name is specified then the + * attribute name is assumed to be the same as the local name. Given `` and the isolate scope definition `scope: { localName:'@myAttr' }`, + * the directive's scope property `localName` will reflect the interpolated value of `hello + * {{name}}`. As the `name` attribute changes so will the `localName` property on the directive's + * scope. The `name` is read from the parent scope (not the directive's scope). * - * * `=` or `=attr` - set up bi-directional binding between a local scope property and the - * parent scope property of name defined via the value of the `attr` attribute. If no `attr` - * name is specified then the attribute name is assumed to be the same as the local name. - * Given `` and widget definition of - * `scope: { localModel:'=myAttr' }`, then widget scope property `localModel` will reflect the + * * `=` or `=attr` - set up a bidirectional binding between a local scope property and an expression + * passed via the attribute `attr`. The expression is evaluated in the context of the parent scope. + * If no `attr` name is specified then the attribute name is assumed to be the same as the local + * name. Given `` and the isolate scope definition `scope: { + * localModel: '=myAttr' }`, the property `localModel` on the directive's scope will reflect the + * value of `parentModel` on the parent scope. Changes to `parentModel` will be reflected in + * `localModel` and vice versa. Optional attributes should be marked as such with a question mark: + * `=?` or `=?attr`. If the binding expression is non-assignable, or if the attribute isn't + * optional and doesn't exist, an exception ({@link error/$compile/nonassign `$compile:nonassign`}) + * will be thrown upon discovering changes to the local value, since it will be impossible to sync + * them back to the parent scope. By default, the {@link ng.$rootScope.Scope#$watch `$watch`} + * method is used for tracking changes, and the equality check is based on object identity. + * However, if an object literal or an array literal is passed as the binding expression, the + * equality check is done by value (using the {@link angular.equals} function). It's also possible + * to watch the evaluated value shallowly with {@link ng.$rootScope.Scope#$watchCollection + * `$watchCollection`}: use `=*` or `=*attr` (`=*?` or `=*?attr` if the attribute is optional). + * + * * `<` or `` and directive definition of + * `scope: { localModel:'` and widget definition of - * `scope: { localFn:'&myAttr' }`, then isolate scope property `localFn` will point to - * a function wrapper for the `count = count + value` expression. Often it's desirable to - * pass data from the isolated scope via an expression to the parent scope, this can be - * done by passing a map of local variable names and values into the expression wrapper fn. - * For example, if the expression is `increment(amount)` then we can specify the amount value - * by calling the `localFn` as `localFn({amount: 22})`. + * One-way binding is useful if you do not plan to propagate changes to your isolated scope bindings + * back to the parent. However, it does not make this completely impossible. + * + * * `&` or `&attr` - provides a way to execute an expression in the context of the parent scope. If + * no `attr` name is specified then the attribute name is assumed to be the same as the local name. + * Given `` and the isolate scope definition `scope: { + * localFn:'&myAttr' }`, the isolate scope property `localFn` will point to a function wrapper for + * the `count = count + value` expression. Often it's desirable to pass data from the isolated scope + * via an expression to the parent scope. This can be done by passing a map of local variable names + * and values into the expression wrapper fn. For example, if the expression is `increment(amount)` + * then we can specify the amount value by calling the `localFn` as `localFn({amount: 22})`. * * In general it's possible to apply more than one directive to one element, but there might be limitations * depending on the type of scope required by the directives. The following points will help explain these limitations. @@ -6429,9 +6819,32 @@ function $TemplateCacheProvider() { * * * #### `bindToController` - * When an isolate scope is used for a component (see above), and `controllerAs` is used, `bindToController: true` will - * allow a component to have its properties bound to the controller, rather than to scope. When the controller - * is instantiated, the initial values of the isolate scope bindings are already available. + * This property is used to bind scope properties directly to the controller. It can be either + * `true` or an object hash with the same format as the `scope` property. Additionally, a controller + * alias must be set, either by using `controllerAs: 'myAlias'` or by specifying the alias in the controller + * definition: `controller: 'myCtrl as myAlias'`. + * + * When an isolate scope is used for a directive (see above), `bindToController: true` will + * allow a component to have its properties bound to the controller, rather than to scope. + * + * After the controller is instantiated, the initial values of the isolate scope bindings will be bound to the controller + * properties. You can access these bindings once they have been initialized by providing a controller method called + * `$onInit`, which is called after all the controllers on an element have been constructed and had their bindings + * initialized. + * + *
+ * **Deprecation warning:** although bindings for non-ES6 class controllers are currently + * bound to `this` before the controller constructor is called, this use is now deprecated. Please place initialization + * code that relies upon bindings inside a `$onInit` method on the controller, instead. + *
+ * + * It is also possible to set `bindToController` to an object hash with the same format as the `scope` property. + * This will set up the scope bindings to the controller directly. Note that `scope` can still be used + * to define which kind of scope is created. By default, no scope is created. Use `scope: {}` to create an isolate + * scope (useful for component directives). + * + * If both `bindToController` and `scope` are defined and have object hashes, `bindToController` overrides `scope`. + * * * #### `controller` * Controller constructor function. The controller is instantiated before the @@ -6443,10 +6856,10 @@ function $TemplateCacheProvider() { * * `$element` - Current element * * `$attrs` - Current attributes object for the element * * `$transclude` - A transclude linking function pre-bound to the correct transclusion scope: - * `function([scope], cloneLinkingFn, futureParentElement)`. - * * `scope`: optional argument to override the scope. - * * `cloneLinkingFn`: optional argument to create clones of the original transcluded content. - * * `futureParentElement`: + * `function([scope], cloneLinkingFn, futureParentElement, slotName)`: + * * `scope`: (optional) override the scope. + * * `cloneLinkingFn`: (optional) argument to create clones of the original transcluded content. + * * `futureParentElement` (optional): * * defines the parent to which the `cloneLinkingFn` will add the cloned elements. * * default: `$element.parent()` resp. `$element` for `transclude:'element'` resp. `transclude:true`. * * only needed for transcludes that are allowed to contain non html elements (e.g. SVG elements) @@ -6454,14 +6867,48 @@ function $TemplateCacheProvider() { * as those elements need to created and cloned in a special way when they are defined outside their * usual containers (e.g. like ``). * * See also the `directive.templateNamespace` property. + * * `slotName`: (optional) the name of the slot to transclude. If falsy (e.g. `null`, `undefined` or `''`) + * then the default translusion is provided. + * The `$transclude` function also has a method on it, `$transclude.isSlotFilled(slotName)`, which returns + * `true` if the specified slot contains content (i.e. one or more DOM nodes). + * + * The controller can provide the following methods that act as life-cycle hooks: + * * `$onInit()` - Called on each controller after all the controllers on an element have been constructed and + * had their bindings initialized (and before the pre & post linking functions for the directives on + * this element). This is a good place to put initialization code for your controller. + * * `$onChanges(changesObj)` - Called whenever one-way (`<`) or interpolation (`@`) bindings are updated. The + * `changesObj` is a hash whose keys are the names of the bound properties that have changed, and the values are an + * object of the form `{ currentValue, previousValue, isFirstChange() }`. Use this hook to trigger updates within a + * component such as cloning the bound value to prevent accidental mutation of the outer value. + * * `$onDestroy()` - Called on a controller when its containing scope is destroyed. Use this hook for releasing + * external resources, watches and event handlers. Note that components have their `$onDestroy()` hooks called in + * the same order as the `$scope.$broadcast` events are triggered, which is top down. This means that parent + * components will have their `$onDestroy()` hook called before child components. + * * `$postLink()` - Called after this controller's element and its children have been linked. Similar to the post-link + * function this hook can be used to set up DOM event handlers and do direct DOM manipulation. + * Note that child elements that contain `templateUrl` directives will not have been compiled and linked since + * they are waiting for their template to load asynchronously and their own compilation and linking has been + * suspended until that occurs. * * * #### `require` * Require another directive and inject its controller as the fourth argument to the linking function. The - * `require` takes a string name (or array of strings) of the directive(s) to pass in. If an array is used, the - * injected argument will be an array in corresponding order. If no such directive can be - * found, or if the directive does not have a controller, then an error is raised (unless no link function - * is specified, in which case error checking is skipped). The name can be prefixed with: + * `require` property can be a string, an array or an object: + * * a **string** containing the name of the directive to pass to the linking function + * * an **array** containing the names of directives to pass to the linking function. The argument passed to the + * linking function will be an array of controllers in the same order as the names in the `require` property + * * an **object** whose property values are the names of the directives to pass to the linking function. The argument + * passed to the linking function will also be an object with matching keys, whose values will hold the corresponding + * controllers. + * + * If the `require` property is an object and `bindToController` is truthy, then the required controllers are + * bound to the controller using the keys of the `require` property. This binding occurs after all the controllers + * have been constructed but before `$onInit` is called. + * See the {@link $compileProvider#component} helper for an example of how this can be used. + * + * If no such required directive(s) can be found, or if the directive does not have a controller, then an error is + * raised (unless no link function is specified and the required controllers are not being bound to the directive + * controller, in which case error checking is skipped). The name can be prefixed with: * * * (no prefix) - Locate the required controller on the current element. Throw an error if not found. * * `?` - Attempt to locate the required controller or pass `null` to the `link` fn if not found. @@ -6554,14 +7001,6 @@ function $TemplateCacheProvider() { * The contents are compiled and provided to the directive as a **transclusion function**. See the * {@link $compile#transclusion Transclusion} section below. * - * There are two kinds of transclusion depending upon whether you want to transclude just the contents of the - * directive's element or the entire element: - * - * * `true` - transclude the content (i.e. the child nodes) of the directive's element. - * * `'element'` - transclude the whole of the directive's element including any directives on this - * element that defined at a lower priority than this directive. When used, the `template` - * property is ignored. - * * * #### `compile` * @@ -6589,7 +7028,7 @@ function $TemplateCacheProvider() { *
* **Note:** The compile function cannot handle directives that recursively use themselves in their - * own templates or compile functions. Compiling these directives results in an infinite loop and a + * own templates or compile functions. Compiling these directives results in an infinite loop and * stack overflow errors. * * This can be avoided by manually using $compile in the postLink function to imperatively compile @@ -6691,6 +7130,34 @@ function $TemplateCacheProvider() { * Testing Transclusion Directives}. *
* + * There are three kinds of transclusion depending upon whether you want to transclude just the contents of the + * directive's element, the entire element or multiple parts of the element contents: + * + * * `true` - transclude the content (i.e. the child nodes) of the directive's element. + * * `'element'` - transclude the whole of the directive's element including any directives on this + * element that defined at a lower priority than this directive. When used, the `template` + * property is ignored. + * * **`{...}` (an object hash):** - map elements of the content onto transclusion "slots" in the template. + * + * **Mult-slot transclusion** is declared by providing an object for the `transclude` property. + * + * This object is a map where the keys are the name of the slot to fill and the value is an element selector + * used to match the HTML to the slot. The element selector should be in normalized form (e.g. `myElement`) + * and will match the standard element variants (e.g. `my-element`, `my:element`, `data-my-element`, etc). + * + * For further information check out the guide on {@link guide/directive#matching-directives Matching Directives} + * + * If the element selector is prefixed with a `?` then that slot is optional. + * + * For example, the transclude object `{ slotA: '?myCustomElement' }` maps `` elements to + * the `slotA` slot, which can be accessed via the `$transclude` function or via the {@link ngTransclude} directive. + * + * Slots that are not marked as optional (`?`) will trigger a compile time error if there are no matching elements + * in the transclude content. If you wish to know if an optional slot was filled with content, then you can call + * `$transclude.isSlotFilled(slotName)` on the transclude function passed to the directive's link function and + * injectable into the directive's controller. + * + * * #### Transclusion Functions * * When a directive requests transclusion, the compiler extracts its contents and provides a **transclusion @@ -6711,7 +7178,7 @@ function $TemplateCacheProvider() { * content and the `scope` is the newly created transclusion scope, to which the clone is bound. * *
- * **Best Practice**: Always provide a `cloneFn` (clone attach function) when you call a translude function + * **Best Practice**: Always provide a `cloneFn` (clone attach function) when you call a transclude function * since you then get a fresh clone of the original DOM and also have access to the new transclusion scope. *
* @@ -6743,7 +7210,7 @@ function $TemplateCacheProvider() { * * * The built-in DOM manipulation directives, such as {@link ngIf}, {@link ngSwitch} and {@link ngRepeat} - * automatically destroy their transluded clones as necessary so you do not need to worry about this if + * automatically destroy their transcluded clones as necessary so you do not need to worry about this if * you are simply using {@link ngTransclude} to inject the transclusion into your directive. * * @@ -6768,19 +7235,19 @@ function $TemplateCacheProvider() { * * The `$parent` scope hierarchy will look like this: * - * ``` - * - $rootScope - * - isolate - * - transclusion - * ``` + ``` + - $rootScope + - isolate + - transclusion + ``` * * but the scopes will inherit prototypically from different scopes to their `$parent`. * - * ``` - * - $rootScope - * - transclusion - * - isolate - * ``` + ``` + - $rootScope + - transclusion + - isolate + ``` * * * ### Attributes @@ -6788,10 +7255,9 @@ function $TemplateCacheProvider() { * The {@link ng.$compile.directive.Attributes Attributes} object - passed as a parameter in the * `link()` or `compile()` functions. It has a variety of uses. * - * accessing *Normalized attribute names:* - * Directives like 'ngBind' can be expressed in many ways: 'ng:bind', `data-ng-bind`, or 'x-ng-bind'. - * the attributes object allows for normalized access to - * the attributes. + * * *Accessing normalized attribute names:* Directives like 'ngBind' can be expressed in many ways: + * 'ng:bind', `data-ng-bind`, or 'x-ng-bind'. The attributes object allows for normalized access + * to the attributes. * * * *Directive inter-communication:* All directives share the same instance of the attributes * object which allows the directives to use the attributes object as inter directive @@ -6912,8 +7378,15 @@ function $TemplateCacheProvider() { * directives; if given, it will be passed through to the link functions of * directives found in `element` during compilation. * * `transcludeControllers` - an object hash with keys that map controller names - * to controller instances; if given, it will make the controllers - * available to directives. + * to a hash with the key `instance`, which maps to the controller instance; + * if given, it will make the controllers available to directives on the compileNode: + * ``` + * { + * parent: { + * instance: parentControllerInstance + * } + * } + * ``` * * `futureParentElement` - defines the parent to which the `cloneAttachFn` will add * the cloned elements; only needed for transcludes that are allowed to contain non html * elements (e.g. SVG elements). See also the directive.controller property. @@ -6953,6 +7426,9 @@ function $TemplateCacheProvider() { var $compileMinErr = minErr('$compile'); +function UNINITIALIZED_VALUE() {} +var _UNINITIALIZED_VALUE = new UNINITIALIZED_VALUE(); + /** * @ngdoc provider * @name $compileProvider @@ -6972,13 +7448,18 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { // The assumption is that future DOM event attribute names will begin with // 'on' and be composed of only English letters. var EVENT_HANDLER_ATTR_REGEXP = /^(on[a-z]+|formaction)$/; + var bindingCache = createMap(); function parseIsolateBindings(scope, directiveName, isController) { - var LOCAL_REGEXP = /^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/; + var LOCAL_REGEXP = /^\s*([@&<]|=(\*?))(\??)\s*(\w*)\s*$/; - var bindings = {}; + var bindings = createMap(); forEach(scope, function(definition, scopeName) { + if (definition in bindingCache) { + bindings[scopeName] = bindingCache[definition]; + return; + } var match = definition.match(LOCAL_REGEXP); if (!match) { @@ -6996,6 +7477,9 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { optional: match[3] === '?', attrName: match[4] || scopeName }; + if (match[4]) { + bindingCache[definition] = bindings[scopeName]; + } }); return bindings; @@ -7041,11 +7525,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { function assertValidDirectiveName(name) { var letter = name.charAt(0); if (!letter || letter !== lowercase(letter)) { - throw $compileMinErr('baddir', "Directive name '{0}' is invalid. The first character must be a lowercase letter", name); + throw $compileMinErr('baddir', "Directive/Component name '{0}' is invalid. The first character must be a lowercase letter", name); } if (name !== name.trim()) { throw $compileMinErr('baddir', - "Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces", + "Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces", name); } } @@ -7061,11 +7545,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { * @param {string|Object} name Name of the directive in camel-case (i.e. ngBind which * will match as ng-bind), or an object map of directives where the keys are the * names and the values are the factories. - * @param {Function|Array} directiveFactory An injectable directive factory function. See - * {@link guide/directive} for more info. + * @param {Function|Array} directiveFactory An injectable directive factory function. See the + * {@link guide/directive directive guide} and the {@link $compile compile API} for more info. * @returns {ng.$compileProvider} Self for chaining. */ - this.directive = function registerDirective(name, directiveFactory) { + this.directive = function registerDirective(name, directiveFactory) { assertNotHasOwnProperty(name, 'directive'); if (isString(name)) { assertValidDirectiveName(name); @@ -7088,11 +7572,6 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { directive.name = directive.name || name; directive.require = directive.require || (directive.controller && directive.name); directive.restrict = directive.restrict || 'EA'; - var bindings = directive.$$bindings = - parseDirectiveBindings(directive, directive.name); - if (isObject(bindings.isolateScope)) { - directive.$$isolateBindings = bindings.isolateScope; - } directive.$$moduleName = directiveFactory.$$moduleName; directives.push(directive); } catch (e) { @@ -7109,6 +7588,147 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { return this; }; + /** + * @ngdoc method + * @name $compileProvider#component + * @module ng + * @param {string} name Name of the component in camelCase (i.e. `myComp` which will match ``) + * @param {Object} options Component definition object (a simplified + * {@link ng.$compile#directive-definition-object directive definition object}), + * with the following properties (all optional): + * + * - `controller` – `{(string|function()=}` – controller constructor function that should be + * associated with newly created scope or the name of a {@link ng.$compile#-controller- + * registered controller} if passed as a string. An empty `noop` function by default. + * - `controllerAs` – `{string=}` – identifier name for to reference the controller in the component's scope. + * If present, the controller will be published to scope under the `controllerAs` name. + * If not present, this will default to be `$ctrl`. + * - `template` – `{string=|function()=}` – html template as a string or a function that + * returns an html template as a string which should be used as the contents of this component. + * Empty string by default. + * + * If `template` is a function, then it is {@link auto.$injector#invoke injected} with + * the following locals: + * + * - `$element` - Current element + * - `$attrs` - Current attributes object for the element + * + * - `templateUrl` – `{string=|function()=}` – path or function that returns a path to an html + * template that should be used as the contents of this component. + * + * If `templateUrl` is a function, then it is {@link auto.$injector#invoke injected} with + * the following locals: + * + * - `$element` - Current element + * - `$attrs` - Current attributes object for the element + * + * - `bindings` – `{object=}` – defines bindings between DOM attributes and component properties. + * Component properties are always bound to the component controller and not to the scope. + * See {@link ng.$compile#-bindtocontroller- `bindToController`}. + * - `transclude` – `{boolean=}` – whether {@link $compile#transclusion content transclusion} is enabled. + * Disabled by default. + * - `require` - `{Object=}` - requires the controllers of other directives and binds them to + * this component's controller. The object keys specify the property names under which the required + * controllers (object values) will be bound. See {@link ng.$compile#-require- `require`}. + * - `$...` – additional properties to attach to the directive factory function and the controller + * constructor function. (This is used by the component router to annotate) + * + * @returns {ng.$compileProvider} the compile provider itself, for chaining of function calls. + * @description + * Register a **component definition** with the compiler. This is a shorthand for registering a special + * type of directive, which represents a self-contained UI component in your application. Such components + * are always isolated (i.e. `scope: {}`) and are always restricted to elements (i.e. `restrict: 'E'`). + * + * Component definitions are very simple and do not require as much configuration as defining general + * directives. Component definitions usually consist only of a template and a controller backing it. + * + * In order to make the definition easier, components enforce best practices like use of `controllerAs`, + * `bindToController`. They always have **isolate scope** and are restricted to elements. + * + * Here are a few examples of how you would usually define components: + * + * ```js + * var myMod = angular.module(...); + * myMod.component('myComp', { + * template: '
My name is {{$ctrl.name}}
', + * controller: function() { + * this.name = 'shahar'; + * } + * }); + * + * myMod.component('myComp', { + * template: '
My name is {{$ctrl.name}}
', + * bindings: {name: '@'} + * }); + * + * myMod.component('myComp', { + * templateUrl: 'views/my-comp.html', + * controller: 'MyCtrl', + * controllerAs: 'ctrl', + * bindings: {name: '@'} + * }); + * + * ``` + * For more examples, and an in-depth guide, see the {@link guide/component component guide}. + * + *
+ * See also {@link ng.$compileProvider#directive $compileProvider.directive()}. + */ + this.component = function registerComponent(name, options) { + var controller = options.controller || function() {}; + + function factory($injector) { + function makeInjectable(fn) { + if (isFunction(fn) || isArray(fn)) { + return function(tElement, tAttrs) { + return $injector.invoke(fn, this, {$element: tElement, $attrs: tAttrs}); + }; + } else { + return fn; + } + } + + var template = (!options.template && !options.templateUrl ? '' : options.template); + var ddo = { + controller: controller, + controllerAs: identifierForController(options.controller) || options.controllerAs || '$ctrl', + template: makeInjectable(template), + templateUrl: makeInjectable(options.templateUrl), + transclude: options.transclude, + scope: {}, + bindToController: options.bindings || {}, + restrict: 'E', + require: options.require + }; + + // Copy annotations (starting with $) over to the DDO + forEach(options, function(val, key) { + if (key.charAt(0) === '$') ddo[key] = val; + }); + + return ddo; + } + + // TODO(pete) remove the following `forEach` before we release 1.6.0 + // The component-router@0.2.0 looks for the annotations on the controller constructor + // Nothing in Angular looks for annotations on the factory function but we can't remove + // it from 1.5.x yet. + + // Copy any annotation properties (starting with $) over to the factory and controller constructor functions + // These could be used by libraries such as the new component router + forEach(options, function(val, key) { + if (key.charAt(0) === '$') { + factory[key] = val; + // Don't try to copy over annotations to named controller + if (isFunction(controller)) controller[key] = val; + } + }); + + factory.$inject = ['$injector']; + + return this.directive(name, factory); + }; + /** * @ngdoc method @@ -7200,13 +7820,75 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { return debugInfoEnabled; }; + + var TTL = 10; + /** + * @ngdoc method + * @name $compileProvider#onChangesTtl + * @description + * + * Sets the number of times `$onChanges` hooks can trigger new changes before giving up and + * assuming that the model is unstable. + * + * The current default is 10 iterations. + * + * In complex applications it's possible that dependencies between `$onChanges` hooks and bindings will result + * in several iterations of calls to these hooks. However if an application needs more than the default 10 + * iterations to stabilize then you should investigate what is causing the model to continuously change during + * the `$onChanges` hook execution. + * + * Increasing the TTL could have performance implications, so you should not change it without proper justification. + * + * @param {number} limit The number of `$onChanges` hook iterations. + * @returns {number|object} the current limit (or `this` if called as a setter for chaining) + */ + this.onChangesTtl = function(value) { + if (arguments.length) { + TTL = value; + return this; + } + return TTL; + }; + this.$get = [ '$injector', '$interpolate', '$exceptionHandler', '$templateRequest', '$parse', - '$controller', '$rootScope', '$document', '$sce', '$animate', '$$sanitizeUri', + '$controller', '$rootScope', '$sce', '$animate', '$$sanitizeUri', function($injector, $interpolate, $exceptionHandler, $templateRequest, $parse, - $controller, $rootScope, $document, $sce, $animate, $$sanitizeUri) { + $controller, $rootScope, $sce, $animate, $$sanitizeUri) { - var Attributes = function(element, attributesToCopy) { + var SIMPLE_ATTR_NAME = /^\w/; + var specialAttrHolder = window.document.createElement('div'); + + + + var onChangesTtl = TTL; + // The onChanges hooks should all be run together in a single digest + // When changes occur, the call to trigger their hooks will be added to this queue + var onChangesQueue; + + // This function is called in a $$postDigest to trigger all the onChanges hooks in a single digest + function flushOnChangesQueue() { + try { + if (!(--onChangesTtl)) { + // We have hit the TTL limit so reset everything + onChangesQueue = undefined; + throw $compileMinErr('infchng', '{0} $onChanges() iterations reached. Aborting!\n', TTL); + } + // We must run this hook in an apply since the $$postDigest runs outside apply + $rootScope.$apply(function() { + for (var i = 0, ii = onChangesQueue.length; i < ii; ++i) { + onChangesQueue[i](); + } + // Reset the queue to trigger a new schedule next time there is a change + onChangesQueue = undefined; + }); + } finally { + onChangesTtl++; + } + } + + + function Attributes(element, attributesToCopy) { if (attributesToCopy) { var keys = Object.keys(attributesToCopy); var i, l, key; @@ -7220,7 +7902,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { } this.$$element = element; - }; + } Attributes.prototype = { /** @@ -7341,7 +8023,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { nodeName = nodeName_(this.$$element); - if ((nodeName === 'a' && key === 'href') || + if ((nodeName === 'a' && (key === 'href' || key === 'xlinkHref')) || (nodeName === 'img' && key === 'src')) { // sanitize a[href] and img[src] values this[key] = value = $$sanitizeUri(value, key === 'src'); @@ -7385,7 +8067,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (value === null || isUndefined(value)) { this.$$element.removeAttr(attrName); } else { - this.$$element.attr(attrName, value); + if (SIMPLE_ATTR_NAME.test(attrName)) { + this.$$element.attr(attrName, value); + } else { + setSpecialAttr(this.$$element[0], attrName, value); + } } } @@ -7416,7 +8102,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { * @param {string} key Normalized key. (ie ngAttribute) . * @param {function(interpolatedValue)} fn Function that will be called whenever the interpolated value of the attribute changes. - * See the {@link guide/directive#text-and-attribute-bindings Directives} guide for more info. + * See the {@link guide/interpolation#how-text-and-attribute-bindings-work Interpolation + * guide} for more info. * @returns {function()} Returns a deregistration function for this observer. */ $observe: function(key, fn) { @@ -7438,6 +8125,18 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { } }; + function setSpecialAttr(element, attrName, value) { + // Attributes names that do not start with letters (such as `(click)`) cannot be set using `setAttribute` + // so we have to jump through some hoops to get such an attribute + // https://github.com/angular/angular.js/pull/13318 + specialAttrHolder.innerHTML = ""; + var attributes = specialAttrHolder.firstChild.attributes; + var attribute = attributes[0]; + // We have to remove the attribute from its container element before we can add it to the destination element + attributes.removeNamedItem(attribute.name); + attribute.value = value; + element.attributes.setNamedItem(attribute); + } function safeAddClass($element, className) { try { @@ -7451,12 +8150,13 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { var startSymbol = $interpolate.startSymbol(), endSymbol = $interpolate.endSymbol(), - denormalizeTemplate = (startSymbol == '{{' || endSymbol == '}}') + denormalizeTemplate = (startSymbol == '{{' && endSymbol == '}}') ? identity : function denormalizeTemplate(template) { return template.replace(/\{\{/g, startSymbol).replace(/}}/g, endSymbol); }, NG_ATTR_BINDING = /^ngAttr[A-Z]/; + var MULTI_ELEMENT_DIR_RE = /^(.+)Start$/; compile.$$addBindingInfo = debugInfoEnabled ? function $$addBindingInfo($element, binding) { var bindings = $element.data('$binding') || []; @@ -7483,6 +8183,14 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { safeAddClass($element, isolated ? 'ng-isolate-scope' : 'ng-scope'); } : noop; + compile.$$createComment = function(directiveName, comment) { + var content = ''; + if (debugInfoEnabled) { + content = ' ' + (directiveName || '') + ': ' + (comment || '') + ' '; + } + return window.document.createComment(content); + }; + return compile; //================================ @@ -7494,13 +8202,19 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { // modify it. $compileNodes = jqLite($compileNodes); } + + var NOT_EMPTY = /\S+/; + // We can not compile top level text elements since text nodes can be merged and we will // not be able to attach scope data to them, so we will wrap them in - forEach($compileNodes, function(node, index) { - if (node.nodeType == NODE_TYPE_TEXT && node.nodeValue.match(/\S+/) /* non-empty */ ) { - $compileNodes[index] = jqLite(node).wrap('').parent()[0]; + for (var i = 0, len = $compileNodes.length; i < len; i++) { + var domNode = $compileNodes[i]; + + if (domNode.nodeType === NODE_TYPE_TEXT && domNode.nodeValue.match(NOT_EMPTY) /* non-empty */) { + jqLiteWrapNode(domNode, $compileNodes[i] = window.document.createElement('span')); } - }); + } + var compositeLinkFn = compileNodes($compileNodes, transcludeFn, $compileNodes, maxPriority, ignoreDirective, previousCompileContext); @@ -7509,6 +8223,14 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { return function publicLinkFn(scope, cloneConnectFn, options) { assertArg(scope, 'scope'); + if (previousCompileContext && previousCompileContext.needsNewScope) { + // A parent directive did a replace and a directive on this element asked + // for transclusion, which caused us to lose a layer of element on which + // we could hold the new transclusion scope, so we will create it manually + // here. + scope = scope.$parent.$new(); + } + options = options || {}; var parentBoundTranscludeFn = options.parentBoundTranscludeFn, transcludeControllers = options.transcludeControllers, @@ -7563,7 +8285,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (!node) { return 'html'; } else { - return nodeName_(node) !== 'foreignobject' && node.toString().match(/SVG/) ? 'svg' : 'html'; + return nodeName_(node) !== 'foreignobject' && toString.call(node).match(/SVG/) ? 'svg' : 'html'; } } @@ -7654,11 +8376,6 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (nodeLinkFn.scope) { childScope = scope.$new(); compile.$$addScopeInfo(jqLite(node), childScope); - var destroyBindings = nodeLinkFn.$$destroyBindings; - if (destroyBindings) { - nodeLinkFn.$$destroyBindings = null; - childScope.$on('$destroyed', destroyBindings); - } } else { childScope = scope; } @@ -7677,8 +8394,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { childBoundTranscludeFn = null; } - nodeLinkFn(childLinkFn, childScope, node, $rootElement, childBoundTranscludeFn, - nodeLinkFn); + nodeLinkFn(childLinkFn, childScope, node, $rootElement, childBoundTranscludeFn); } else if (childLinkFn) { childLinkFn(scope, node.childNodes, undefined, parentBoundTranscludeFn); @@ -7688,8 +8404,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { } function createBoundTranscludeFn(scope, transcludeFn, previousBoundTranscludeFn) { - - var boundTranscludeFn = function(transcludedScope, cloneFn, controllers, futureParentElement, containingScope) { + function boundTranscludeFn(transcludedScope, cloneFn, controllers, futureParentElement, containingScope) { if (!transcludedScope) { transcludedScope = scope.$new(false, containingScope); @@ -7701,7 +8416,18 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { transcludeControllers: controllers, futureParentElement: futureParentElement }); - }; + } + + // We need to attach the transclusion slots onto the `boundTranscludeFn` + // so that they are available inside the `controllersBoundTransclude` function + var boundSlots = boundTranscludeFn.$$slots = createMap(); + for (var slotName in transcludeFn.$$slots) { + if (transcludeFn.$$slots[slotName]) { + boundSlots[slotName] = createBoundTranscludeFn(scope, transcludeFn.$$slots[slotName], previousBoundTranscludeFn); + } else { + boundSlots[slotName] = null; + } + } return boundTranscludeFn; } @@ -7747,13 +8473,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { }); } - var directiveNName = ngAttrName.replace(/(Start|End)$/, ''); - if (directiveIsMultiElement(directiveNName)) { - if (ngAttrName === directiveNName + 'Start') { - attrStartName = name; - attrEndName = name.substr(0, name.length - 5) + 'end'; - name = name.substr(0, name.length - 6); - } + var multiElementMatch = ngAttrName.match(MULTI_ELEMENT_DIR_RE); + if (multiElementMatch && directiveIsMultiElement(multiElementMatch[1])) { + attrStartName = name; + attrEndName = name.substr(0, name.length - 5) + 'end'; + name = name.substr(0, name.length - 6); } nName = directiveNormalize(name.toLowerCase()); @@ -7857,12 +8581,41 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { * @returns {Function} */ function groupElementsLinkFnWrapper(linkFn, attrStart, attrEnd) { - return function(scope, element, attrs, controllers, transcludeFn) { + return function groupedElementsLink(scope, element, attrs, controllers, transcludeFn) { element = groupScan(element[0], attrStart, attrEnd); return linkFn(scope, element, attrs, controllers, transcludeFn); }; } + /** + * A function generator that is used to support both eager and lazy compilation + * linking function. + * @param eager + * @param $compileNodes + * @param transcludeFn + * @param maxPriority + * @param ignoreDirective + * @param previousCompileContext + * @returns {Function} + */ + function compilationGenerator(eager, $compileNodes, transcludeFn, maxPriority, ignoreDirective, previousCompileContext) { + var compiled; + + if (eager) { + return compile($compileNodes, transcludeFn, maxPriority, ignoreDirective, previousCompileContext); + } + return function lazyCompilation() { + if (!compiled) { + compiled = compile($compileNodes, transcludeFn, maxPriority, ignoreDirective, previousCompileContext); + + // Null out all of these references in order to make them eligible for garbage collection + // since this is a potentially long lived closure + $compileNodes = transcludeFn = previousCompileContext = null; + } + return compiled.apply(this, arguments); + }; + } + /** * Once the directives have been collected, their compile functions are executed. This method * is responsible for inlining directive templates as well as terminating the application @@ -7907,6 +8660,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { replaceDirective = originalReplaceDirective, childTranscludeFn = transcludeFn, linkFn, + didScanForMultipleTransclusion = false, + mightHaveMultipleTransclusionError = false, directiveValue; // executes all directives on the current element @@ -7949,6 +8704,27 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { directiveName = directive.name; + // If we encounter a condition that can result in transclusion on the directive, + // then scan ahead in the remaining directives for others that may cause a multiple + // transclusion error to be thrown during the compilation process. If a matching directive + // is found, then we know that when we encounter a transcluded directive, we need to eagerly + // compile the `transclude` function rather than doing it lazily in order to throw + // exceptions at the correct time + if (!didScanForMultipleTransclusion && ((directive.replace && (directive.templateUrl || directive.template)) + || (directive.transclude && !directive.$$tlb))) { + var candidateDirective; + + for (var scanningIndex = i + 1; candidateDirective = directives[scanningIndex++];) { + if ((candidateDirective.transclude && !candidateDirective.$$tlb) + || (candidateDirective.replace && (candidateDirective.templateUrl || candidateDirective.template))) { + mightHaveMultipleTransclusionError = true; + break; + } + } + + didScanForMultipleTransclusion = true; + } + if (!directive.templateUrl && directive.controller) { directiveValue = directive.controller; controllerDirectives = controllerDirectives || createMap(); @@ -7973,12 +8749,22 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { terminalPriority = directive.priority; $template = $compileNode; $compileNode = templateAttrs.$$element = - jqLite(document.createComment(' ' + directiveName + ': ' + - templateAttrs[directiveName] + ' ')); + jqLite(compile.$$createComment(directiveName, templateAttrs[directiveName])); compileNode = $compileNode[0]; replaceWith(jqCollection, sliceArgs($template), compileNode); - childTranscludeFn = compile($template, transcludeFn, terminalPriority, + // Support: Chrome < 50 + // https://github.com/angular/angular.js/issues/14041 + + // In the versions of V8 prior to Chrome 50, the document fragment that is created + // in the `replaceWith` function is improperly garbage collected despite still + // being referenced by the `parentNode` property of all of the child nodes. By adding + // a reference to the fragment via a different property, we can avoid that incorrect + // behavior. + // TODO: remove this line after Chrome 50 has been released + $template[0].$$parentNode = $template[0].parentNode; + + childTranscludeFn = compilationGenerator(mightHaveMultipleTransclusionError, $template, transcludeFn, terminalPriority, replaceDirective && replaceDirective.name, { // Don't pass in: // - controllerDirectives - otherwise we'll create duplicates controllers @@ -7990,9 +8776,69 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { nonTlbTranscludeDirective: nonTlbTranscludeDirective }); } else { + + var slots = createMap(); + $template = jqLite(jqLiteClone(compileNode)).contents(); + + if (isObject(directiveValue)) { + + // We have transclusion slots, + // collect them up, compile them and store their transclusion functions + $template = []; + + var slotMap = createMap(); + var filledSlots = createMap(); + + // Parse the element selectors + forEach(directiveValue, function(elementSelector, slotName) { + // If an element selector starts with a ? then it is optional + var optional = (elementSelector.charAt(0) === '?'); + elementSelector = optional ? elementSelector.substring(1) : elementSelector; + + slotMap[elementSelector] = slotName; + + // We explicitly assign `null` since this implies that a slot was defined but not filled. + // Later when calling boundTransclusion functions with a slot name we only error if the + // slot is `undefined` + slots[slotName] = null; + + // filledSlots contains `true` for all slots that are either optional or have been + // filled. This is used to check that we have not missed any required slots + filledSlots[slotName] = optional; + }); + + // Add the matching elements into their slot + forEach($compileNode.contents(), function(node) { + var slotName = slotMap[directiveNormalize(nodeName_(node))]; + if (slotName) { + filledSlots[slotName] = true; + slots[slotName] = slots[slotName] || []; + slots[slotName].push(node); + } else { + $template.push(node); + } + }); + + // Check for required slots that were not filled + forEach(filledSlots, function(filled, slotName) { + if (!filled) { + throw $compileMinErr('reqslot', 'Required transclusion slot `{0}` was not filled.', slotName); + } + }); + + for (var slotName in slots) { + if (slots[slotName]) { + // Only define a transclusion function if the slot was filled + slots[slotName] = compilationGenerator(mightHaveMultipleTransclusionError, slots[slotName], transcludeFn); + } + } + } + $compileNode.empty(); // clear contents - childTranscludeFn = compile($template, transcludeFn); + childTranscludeFn = compilationGenerator(mightHaveMultipleTransclusionError, $template, transcludeFn, undefined, + undefined, { needsNewScope: directive.$$isolateScope || directive.$$newScope}); + childTranscludeFn.$$slots = slots; } } @@ -8034,8 +8880,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { var templateDirectives = collectDirectives(compileNode, [], newTemplateAttrs); var unprocessedDirectives = directives.splice(i + 1, directives.length - (i + 1)); - if (newIsolateScopeDirective) { - markDirectivesAsIsolate(templateDirectives); + if (newIsolateScopeDirective || newScopeDirective) { + // The original directive caused the current element to be replaced but this element + // also needs to have a new scope, so we need to tell the template directives + // that they would need to get their scope from further up, if they require transclusion + markDirectiveScope(templateDirectives, newIsolateScopeDirective, newScopeDirective); } directives = directives.concat(templateDirectives).concat(unprocessedDirectives); mergeTemplateAttributes(templateAttrs, newTemplateAttrs); @@ -8055,7 +8904,9 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { replaceDirective = directive; } + /* jshint -W021 */ nodeLinkFn = compileTemplateUrl(directives.splice(i, directives.length - i), $compileNode, + /* jshint +W021 */ templateAttrs, jqCollection, hasTranscludeDirective && childTranscludeFn, preLinkFns, postLinkFns, { controllerDirectives: controllerDirectives, newScopeDirective: (newScopeDirective !== directive) && newScopeDirective, @@ -8117,81 +8968,9 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { } } - - function getControllers(directiveName, require, $element, elementControllers) { - var value; - - if (isString(require)) { - var match = require.match(REQUIRE_PREFIX_REGEXP); - var name = require.substring(match[0].length); - var inheritType = match[1] || match[3]; - var optional = match[2] === '?'; - - //If only parents then start at the parent element - if (inheritType === '^^') { - $element = $element.parent(); - //Otherwise attempt getting the controller from elementControllers in case - //the element is transcluded (and has no data) and to avoid .data if possible - } else { - value = elementControllers && elementControllers[name]; - value = value && value.instance; - } - - if (!value) { - var dataName = '$' + name + 'Controller'; - value = inheritType ? $element.inheritedData(dataName) : $element.data(dataName); - } - - if (!value && !optional) { - throw $compileMinErr('ctreq', - "Controller '{0}', required by directive '{1}', can't be found!", - name, directiveName); - } - } else if (isArray(require)) { - value = []; - for (var i = 0, ii = require.length; i < ii; i++) { - value[i] = getControllers(directiveName, require[i], $element, elementControllers); - } - } - - return value || null; - } - - function setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope) { - var elementControllers = createMap(); - for (var controllerKey in controllerDirectives) { - var directive = controllerDirectives[controllerKey]; - var locals = { - $scope: directive === newIsolateScopeDirective || directive.$$isolateScope ? isolateScope : scope, - $element: $element, - $attrs: attrs, - $transclude: transcludeFn - }; - - var controller = directive.controller; - if (controller == '@') { - controller = attrs[directive.name]; - } - - var controllerInstance = $controller(controller, locals, true, directive.controllerAs); - - // For directives with element transclusion the element is a comment, - // but jQuery .data doesn't support attaching data to comment nodes as it's hard to - // clean up (http://bugs.jquery.com/ticket/8335). - // Instead, we save the controllers for the element in a local hash and attach to .data - // later, once we have the actual element. - elementControllers[directive.name] = controllerInstance; - if (!hasElementTranscludeDirective) { - $element.data('$' + directive.name + 'Controller', controllerInstance.instance); - } - } - return elementControllers; - } - - function nodeLinkFn(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn, - thisLinkFn) { - var i, ii, linkFn, controller, isolateScope, elementControllers, transcludeFn, $element, - attrs; + function nodeLinkFn(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn) { + var i, ii, linkFn, isolateScope, controllerScope, elementControllers, transcludeFn, $element, + attrs, scopeBindingInfo; if (compileNode === linkNode) { attrs = templateAttrs; @@ -8201,8 +8980,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { attrs = new Attributes($element, templateAttrs); } + controllerScope = scope; if (newIsolateScopeDirective) { isolateScope = scope.$new(true); + } else if (newScopeDirective) { + controllerScope = scope.$parent; } if (boundTranscludeFn) { @@ -8210,10 +8992,14 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { // is later passed as `parentBoundTranscludeFn` to `publicLinkFn` transcludeFn = controllersBoundTransclude; transcludeFn.$$boundTransclude = boundTranscludeFn; + // expose the slots on the `$transclude` function + transcludeFn.isSlotFilled = function(slotName) { + return !!boundTranscludeFn.$$slots[slotName]; + }; } if (controllerDirectives) { - elementControllers = setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope); + elementControllers = setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope, newIsolateScopeDirective); } if (newIsolateScopeDirective) { @@ -8223,45 +9009,63 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { compile.$$addScopeClass($element, true); isolateScope.$$isolateBindings = newIsolateScopeDirective.$$isolateBindings; - initializeDirectiveBindings(scope, attrs, isolateScope, - isolateScope.$$isolateBindings, - newIsolateScopeDirective, isolateScope); - } - if (elementControllers) { - // Initialize bindToController bindings for new/isolate scopes - var scopeDirective = newIsolateScopeDirective || newScopeDirective; - var bindings; - var controllerForBindings; - if (scopeDirective && elementControllers[scopeDirective.name]) { - bindings = scopeDirective.$$bindings.bindToController; - controller = elementControllers[scopeDirective.name]; - - if (controller && controller.identifier && bindings) { - controllerForBindings = controller; - thisLinkFn.$$destroyBindings = - initializeDirectiveBindings(scope, attrs, controller.instance, - bindings, scopeDirective); - } - } - for (i in elementControllers) { - controller = elementControllers[i]; - var controllerResult = controller(); - - if (controllerResult !== controller.instance) { - // If the controller constructor has a return value, overwrite the instance - // from setupControllers and update the element data - controller.instance = controllerResult; - $element.data('$' + i + 'Controller', controllerResult); - if (controller === controllerForBindings) { - // Remove and re-install bindToController bindings - thisLinkFn.$$destroyBindings(); - thisLinkFn.$$destroyBindings = - initializeDirectiveBindings(scope, attrs, controllerResult, bindings, scopeDirective); - } - } + scopeBindingInfo = initializeDirectiveBindings(scope, attrs, isolateScope, + isolateScope.$$isolateBindings, + newIsolateScopeDirective); + if (scopeBindingInfo.removeWatches) { + isolateScope.$on('$destroy', scopeBindingInfo.removeWatches); } } + // Initialize bindToController bindings + for (var name in elementControllers) { + var controllerDirective = controllerDirectives[name]; + var controller = elementControllers[name]; + var bindings = controllerDirective.$$bindings.bindToController; + + if (controller.identifier && bindings) { + controller.bindingInfo = + initializeDirectiveBindings(controllerScope, attrs, controller.instance, bindings, controllerDirective); + } else { + controller.bindingInfo = {}; + } + + var controllerResult = controller(); + if (controllerResult !== controller.instance) { + // If the controller constructor has a return value, overwrite the instance + // from setupControllers + controller.instance = controllerResult; + $element.data('$' + controllerDirective.name + 'Controller', controllerResult); + controller.bindingInfo.removeWatches && controller.bindingInfo.removeWatches(); + controller.bindingInfo = + initializeDirectiveBindings(controllerScope, attrs, controller.instance, bindings, controllerDirective); + } + } + + // Bind the required controllers to the controller, if `require` is an object and `bindToController` is truthy + forEach(controllerDirectives, function(controllerDirective, name) { + var require = controllerDirective.require; + if (controllerDirective.bindToController && !isArray(require) && isObject(require)) { + extend(elementControllers[name].instance, getControllers(name, require, $element, elementControllers)); + } + }); + + // Handle the init and destroy lifecycle hooks on all controllers that have them + forEach(elementControllers, function(controller) { + var controllerInstance = controller.instance; + if (isFunction(controllerInstance.$onChanges)) { + controllerInstance.$onChanges(controller.bindingInfo.initialChanges); + } + if (isFunction(controllerInstance.$onInit)) { + controllerInstance.$onInit(); + } + if (isFunction(controllerInstance.$onDestroy)) { + controllerScope.$on('$destroy', function callOnDestroyHook() { + controllerInstance.$onDestroy(); + }); + } + }); + // PRELINKING for (i = 0, ii = preLinkFns.length; i < ii; i++) { linkFn = preLinkFns[i]; @@ -8295,13 +9099,21 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { ); } + // Trigger $postLink lifecycle hooks + forEach(elementControllers, function(controller) { + var controllerInstance = controller.instance; + if (isFunction(controllerInstance.$postLink)) { + controllerInstance.$postLink(); + } + }); + // This is the function that is injected as `$transclude`. // Note: all arguments are optional! - function controllersBoundTransclude(scope, cloneAttachFn, futureParentElement) { + function controllersBoundTransclude(scope, cloneAttachFn, futureParentElement, slotName) { var transcludeControllers; - // No scope passed in: if (!isScope(scope)) { + slotName = futureParentElement; futureParentElement = cloneAttachFn; cloneAttachFn = scope; scope = undefined; @@ -8313,15 +9125,108 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (!futureParentElement) { futureParentElement = hasElementTranscludeDirective ? $element.parent() : $element; } - return boundTranscludeFn(scope, cloneAttachFn, transcludeControllers, futureParentElement, scopeToChild); + if (slotName) { + // slotTranscludeFn can be one of three things: + // * a transclude function - a filled slot + // * `null` - an optional slot that was not filled + // * `undefined` - a slot that was not declared (i.e. invalid) + var slotTranscludeFn = boundTranscludeFn.$$slots[slotName]; + if (slotTranscludeFn) { + return slotTranscludeFn(scope, cloneAttachFn, transcludeControllers, futureParentElement, scopeToChild); + } else if (isUndefined(slotTranscludeFn)) { + throw $compileMinErr('noslot', + 'No parent directive that requires a transclusion with slot name "{0}". ' + + 'Element: {1}', + slotName, startingTag($element)); + } + } else { + return boundTranscludeFn(scope, cloneAttachFn, transcludeControllers, futureParentElement, scopeToChild); + } } } } - function markDirectivesAsIsolate(directives) { - // mark all directives as needing isolate scope. + function getControllers(directiveName, require, $element, elementControllers) { + var value; + + if (isString(require)) { + var match = require.match(REQUIRE_PREFIX_REGEXP); + var name = require.substring(match[0].length); + var inheritType = match[1] || match[3]; + var optional = match[2] === '?'; + + //If only parents then start at the parent element + if (inheritType === '^^') { + $element = $element.parent(); + //Otherwise attempt getting the controller from elementControllers in case + //the element is transcluded (and has no data) and to avoid .data if possible + } else { + value = elementControllers && elementControllers[name]; + value = value && value.instance; + } + + if (!value) { + var dataName = '$' + name + 'Controller'; + value = inheritType ? $element.inheritedData(dataName) : $element.data(dataName); + } + + if (!value && !optional) { + throw $compileMinErr('ctreq', + "Controller '{0}', required by directive '{1}', can't be found!", + name, directiveName); + } + } else if (isArray(require)) { + value = []; + for (var i = 0, ii = require.length; i < ii; i++) { + value[i] = getControllers(directiveName, require[i], $element, elementControllers); + } + } else if (isObject(require)) { + value = {}; + forEach(require, function(controller, property) { + value[property] = getControllers(directiveName, controller, $element, elementControllers); + }); + } + + return value || null; + } + + function setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope, newIsolateScopeDirective) { + var elementControllers = createMap(); + for (var controllerKey in controllerDirectives) { + var directive = controllerDirectives[controllerKey]; + var locals = { + $scope: directive === newIsolateScopeDirective || directive.$$isolateScope ? isolateScope : scope, + $element: $element, + $attrs: attrs, + $transclude: transcludeFn + }; + + var controller = directive.controller; + if (controller == '@') { + controller = attrs[directive.name]; + } + + var controllerInstance = $controller(controller, locals, true, directive.controllerAs); + + // For directives with element transclusion the element is a comment. + // In this case .data will not attach any data. + // Instead, we save the controllers for the element in a local hash and attach to .data + // later, once we have the actual element. + elementControllers[directive.name] = controllerInstance; + $element.data('$' + directive.name + 'Controller', controllerInstance.instance); + } + return elementControllers; + } + + // Depending upon the context in which a directive finds itself it might need to have a new isolated + // or child scope created. For instance: + // * if the directive has been pulled into a template because another directive with a higher priority + // asked for element transclusion + // * if the directive itself asks for transclusion but it is at the root of a template and the original + // element was replaced. See https://github.com/angular/angular.js/issues/12936 + function markDirectiveScope(directives, isolateScope, newScope) { for (var j = 0, jj = directives.length; j < jj; j++) { - directives[j] = inherit(directives[j], {$$isolateScope: true}); + directives[j] = inherit(directives[j], {$$isolateScope: isolateScope, $$newScope: newScope}); } } @@ -8353,6 +9258,13 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (startAttrName) { directive = inherit(directive, {$$start: startAttrName, $$end: endAttrName}); } + if (!directive.$$bindings) { + var bindings = directive.$$bindings = + parseDirectiveBindings(directive, directive.name); + if (isObject(bindings.isolateScope)) { + directive.$$isolateBindings = bindings.isolateScope; + } + } tDirectives.push(directive); match = directive; } @@ -8468,7 +9380,9 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { var templateDirectives = collectDirectives(compileNode, [], tempTemplateAttrs); if (isObject(origAsyncDirective.scope)) { - markDirectivesAsIsolate(templateDirectives); + // the original directive that caused the template to be loaded async required + // an isolate scope + markDirectiveScope(templateDirectives, true); } directives = templateDirectives.concat(directives); mergeTemplateAttributes(tAttrs, tempTemplateAttrs); @@ -8517,7 +9431,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { childBoundTranscludeFn = boundTranscludeFn; } afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, linkNode, $rootElement, - childBoundTranscludeFn, afterTemplateNodeLinkFn); + childBoundTranscludeFn); } linkQueue = null; }); @@ -8534,8 +9448,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (afterTemplateNodeLinkFn.transcludeOnThisElement) { childBoundTranscludeFn = createBoundTranscludeFn(scope, afterTemplateNodeLinkFn.transclude, boundTranscludeFn); } - afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, node, rootElement, childBoundTranscludeFn, - afterTemplateNodeLinkFn); + afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, node, rootElement, childBoundTranscludeFn); } }; } @@ -8599,7 +9512,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { switch (type) { case 'svg': case 'math': - var wrapper = document.createElement('div'); + var wrapper = window.document.createElement('div'); wrapper.innerHTML = '<' + type + '>' + template + ''; return wrapper.childNodes[0].childNodes; default: @@ -8739,41 +9652,33 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { parent.replaceChild(newNode, firstElementToRemove); } - // TODO(perf): what's this document fragment for? is it needed? can we at least reuse it? - var fragment = document.createDocumentFragment(); - fragment.appendChild(firstElementToRemove); + // Append all the `elementsToRemove` to a fragment. This will... + // - remove them from the DOM + // - allow them to still be traversed with .nextSibling + // - allow a single fragment.qSA to fetch all elements being removed + var fragment = window.document.createDocumentFragment(); + for (i = 0; i < removeCount; i++) { + fragment.appendChild(elementsToRemove[i]); + } if (jqLite.hasData(firstElementToRemove)) { // Copy over user data (that includes Angular's $scope etc.). Don't copy private // data here because there's no public interface in jQuery to do that and copying over // event listeners (which is the main use of private data) wouldn't work anyway. - jqLite(newNode).data(jqLite(firstElementToRemove).data()); + jqLite.data(newNode, jqLite.data(firstElementToRemove)); - // Remove data of the replaced element. We cannot just call .remove() - // on the element it since that would deallocate scope that is needed - // for the new node. Instead, remove the data "manually". - if (!jQuery) { - delete jqLite.cache[firstElementToRemove[jqLite.expando]]; - } else { - // jQuery 2.x doesn't expose the data storage. Use jQuery.cleanData to clean up after - // the replaced element. The cleanData version monkey-patched by Angular would cause - // the scope to be trashed and we do need the very same scope to work with the new - // element. However, we cannot just cache the non-patched version and use it here as - // that would break if another library patches the method after Angular does (one - // example is jQuery UI). Instead, set a flag indicating scope destroying should be - // skipped this one time. - skipDestroyOnNextJQueryCleanData = true; - jQuery.cleanData([firstElementToRemove]); - } + // Remove $destroy event listeners from `firstElementToRemove` + jqLite(firstElementToRemove).off('$destroy'); } - for (var k = 1, kk = elementsToRemove.length; k < kk; k++) { - var element = elementsToRemove[k]; - jqLite(element).remove(); // must do this way to clean up expando - fragment.appendChild(element); - delete elementsToRemove[k]; - } + // Cleanup any data/listeners on the elements and children. + // This includes invoking the $destroy event on any elements with listeners. + jqLite.cleanData(fragment.querySelectorAll('*')); + // Update the jqLite collection to only contain the `newNode` + for (i = 1; i < removeCount; i++) { + delete elementsToRemove[i]; + } elementsToRemove[0] = newNode; elementsToRemove.length = 1; } @@ -8795,15 +9700,16 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { // Set up $watches for isolate scope and controller bindings. This process // only occurs for isolate scopes and new scopes with controllerAs. - function initializeDirectiveBindings(scope, attrs, destination, bindings, - directive, newScope) { - var onNewScopeDestroyed; - forEach(bindings, function(definition, scopeName) { + function initializeDirectiveBindings(scope, attrs, destination, bindings, directive) { + var removeWatchCollection = []; + var initialChanges = {}; + var changes; + forEach(bindings, function initializeBinding(definition, scopeName) { var attrName = definition.attrName, optional = definition.optional, mode = definition.mode, // @, =, or & lastValue, - parentGet, parentSet, compare; + parentGet, parentSet, compare, removeWatch; switch (mode) { @@ -8812,16 +9718,24 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { destination[scopeName] = attrs[attrName] = void 0; } attrs.$observe(attrName, function(value) { - if (isString(value)) { + if (isString(value) || isBoolean(value)) { + var oldValue = destination[scopeName]; + recordChanges(scopeName, value, oldValue); destination[scopeName] = value; } }); attrs.$$observers[attrName].$$scope = scope; - if (isString(attrs[attrName])) { + lastValue = attrs[attrName]; + if (isString(lastValue)) { // If the attribute has been provided then we trigger an interpolation to ensure // the value is there for use in the link fn - destination[scopeName] = $interpolate(attrs[attrName])(scope); + destination[scopeName] = $interpolate(lastValue)(scope); + } else if (isBoolean(lastValue)) { + // If the attributes is one of the BOOLEAN_ATTR then Angular will have converted + // the value to boolean rather than a string, so we special case this situation + destination[scopeName] = lastValue; } + initialChanges[scopeName] = new SimpleChange(_UNINITIALIZED_VALUE, destination[scopeName]); break; case '=': @@ -8835,14 +9749,14 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (parentGet.literal) { compare = equals; } else { - compare = function(a, b) { return a === b || (a !== a && b !== b); }; + compare = function simpleCompare(a, b) { return a === b || (a !== a && b !== b); }; } parentSet = parentGet.assign || function() { // reset the change, or we will throw this exception on every $digest lastValue = destination[scopeName] = parentGet(scope); throw $compileMinErr('nonassign', - "Expression '{0}' used with directive '{1}' is non-assignable!", - attrs[attrName], directive.name); + "Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!", + attrs[attrName], attrName, directive.name); }; lastValue = destination[scopeName] = parentGet(scope); var parentValueWatch = function parentValueWatch(parentValue) { @@ -8859,14 +9773,37 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { return lastValue = parentValue; }; parentValueWatch.$stateful = true; - var unwatch; if (definition.collection) { - unwatch = scope.$watchCollection(attrs[attrName], parentValueWatch); + removeWatch = scope.$watchCollection(attrs[attrName], parentValueWatch); } else { - unwatch = scope.$watch($parse(attrs[attrName], parentValueWatch), null, parentGet.literal); + removeWatch = scope.$watch($parse(attrs[attrName], parentValueWatch), null, parentGet.literal); } - onNewScopeDestroyed = (onNewScopeDestroyed || []); - onNewScopeDestroyed.push(unwatch); + removeWatchCollection.push(removeWatch); + break; + + case '<': + if (!hasOwnProperty.call(attrs, attrName)) { + if (optional) break; + attrs[attrName] = void 0; + } + if (optional && !attrs[attrName]) break; + + parentGet = $parse(attrs[attrName]); + + destination[scopeName] = parentGet(scope); + initialChanges[scopeName] = new SimpleChange(_UNINITIALIZED_VALUE, destination[scopeName]); + + removeWatch = scope.$watch(parentGet, function parentValueWatchAction(newValue, oldValue) { + if (newValue === oldValue) { + // If the new and old values are identical then this is the first time the watch has been triggered + // So instead we use the current value on the destination as the old value + oldValue = destination[scopeName]; + } + recordChanges(scopeName, newValue, oldValue); + destination[scopeName] = newValue; + }, parentGet.literal); + + removeWatchCollection.push(removeWatch); break; case '&': @@ -8882,20 +9819,53 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { break; } }); - var destroyBindings = onNewScopeDestroyed ? function destroyBindings() { - for (var i = 0, ii = onNewScopeDestroyed.length; i < ii; ++i) { - onNewScopeDestroyed[i](); + + function recordChanges(key, currentValue, previousValue) { + if (isFunction(destination.$onChanges) && currentValue !== previousValue) { + // If we have not already scheduled the top level onChangesQueue handler then do so now + if (!onChangesQueue) { + scope.$$postDigest(flushOnChangesQueue); + onChangesQueue = []; + } + // If we have not already queued a trigger of onChanges for this controller then do so now + if (!changes) { + changes = {}; + onChangesQueue.push(triggerOnChangesHook); + } + // If the has been a change on this property already then we need to reuse the previous value + if (changes[key]) { + previousValue = changes[key].previousValue; + } + // Store this change + changes[key] = new SimpleChange(previousValue, currentValue); } - } : noop; - if (newScope && destroyBindings !== noop) { - newScope.$on('$destroy', destroyBindings); - return noop; } - return destroyBindings; + + function triggerOnChangesHook() { + destination.$onChanges(changes); + // Now clear the changes so that we schedule onChanges when more changes arrive + changes = undefined; + } + + return { + initialChanges: initialChanges, + removeWatches: removeWatchCollection.length && function removeWatches() { + for (var i = 0, ii = removeWatchCollection.length; i < ii; ++i) { + removeWatchCollection[i](); + } + } + }; } }]; } +function SimpleChange(previous, current) { + this.previousValue = previous; + this.currentValue = current; +} +SimpleChange.prototype.isFirstChange = function() { return this.previousValue === _UNINITIALIZED_VALUE; }; + + var PREFIX_REGEXP = /^((?:x|data)[\:\-_])/i; /** * Converts all accepted directives format into proper directive name. @@ -9001,7 +9971,7 @@ function removeComments(jqNodes) { var $controllerMinErr = minErr('$controller'); -var CNTRL_REG = /^(\S+)(\s+as\s+(\w+))?$/; +var CNTRL_REG = /^(\S+)(\s+as\s+([\w$]+))?$/; function identifierForController(controller, ident) { if (ident && isString(ident)) return ident; if (isString(controller)) { @@ -9025,6 +9995,15 @@ function $ControllerProvider() { var controllers = {}, globals = false; + /** + * @ngdoc method + * @name $controllerProvider#has + * @param {string} name Controller name to check. + */ + this.has = function(name) { + return controllers.hasOwnProperty(name); + }; + /** * @ngdoc method * @name $controllerProvider#register @@ -9081,7 +10060,7 @@ function $ControllerProvider() { * It's just a simple call to {@link auto.$injector $injector}, but extracted into * a service, so that one can override this service with [BC version](https://gist.github.com/1649788). */ - return function(expression, locals, later, ident) { + return function $controller(expression, locals, later, ident) { // PRIVATE API: // param `later` --- indicates that the controller's constructor is invoked at a later time. // If true, $controller will allocate the object with the correct @@ -9132,7 +10111,7 @@ function $ControllerProvider() { } var instantiate; - return instantiate = extend(function() { + return instantiate = extend(function $controllerInit() { var result = $injector.invoke(expression, instance, locals, constructor); if (result !== instance && (isObject(result) || isFunction(result))) { instance = result; @@ -9318,7 +10297,7 @@ function $HttpParamSerializerProvider() { forEachSorted(params, function(value, key) { if (value === null || isUndefined(value)) return; if (isArray(value)) { - forEach(value, function(v, k) { + forEach(value, function(v) { parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(v))); }); } else { @@ -9528,10 +10507,9 @@ function $HttpProvider() { * * Object containing default values for all {@link ng.$http $http} requests. * - * - **`defaults.cache`** - {Object} - an object built with {@link ng.$cacheFactory `$cacheFactory`} - * that will provide the cache for all requests who set their `cache` property to `true`. - * If you set the `defaults.cache = false` then only requests that specify their own custom - * cache object will be cached. See {@link $http#caching $http Caching} for more information. + * - **`defaults.cache`** - {boolean|Object} - A boolean value or object created with + * {@link ng.$cacheFactory `$cacheFactory`} to enable or disable caching of HTTP responses + * by default. See {@link $http#caching $http Caching} for more information. * * - **`defaults.xsrfCookieName`** - {string} - Name of cookie containing the XSRF token. * Defaults value is `'XSRF-TOKEN'`. @@ -9616,9 +10594,9 @@ function $HttpProvider() { * Configure `$http` service to return promises without the shorthand methods `success` and `error`. * This should be used to make sure that applications work without these methods. * - * Defaults to false. If no value is specified, returns the current configured value. + * Defaults to true. If no value is specified, returns the current configured value. * - * @param {boolean=} value If true, `$http` will return a normal promise without the `success` and `error` methods. + * @param {boolean=} value If true, `$http` will return a promise with the deprecated legacy `success` and `error` methods. * * @returns {boolean|Object} If a value is specified, returns the $httpProvider for chaining. * otherwise, returns the current configured value. @@ -9792,7 +10770,7 @@ function $HttpProvider() { * * ``` * module.run(function($http) { - * $http.defaults.headers.common.Authorization = 'Basic YmVlcDpib29w' + * $http.defaults.headers.common.Authorization = 'Basic YmVlcDpib29w'; * }); * ``` * @@ -9822,6 +10800,15 @@ function $HttpProvider() { * the transformed value (`function(data, headersGetter, status)`) or an array of such transformation functions, * which allows you to `push` or `unshift` a new transformation function into the transformation chain. * + *
+ * **Note:** Angular does not make a copy of the `data` parameter before it is passed into the `transformRequest` pipeline. + * That means changes to the properties of `data` are not local to the transform function (since Javascript passes objects by reference). + * For example, when calling `$http.get(url, $scope.myObject)`, modifications to the object's properties in a transformRequest + * function will be reflected on the scope and in any templates where the object is data-bound. + * To prevent this, transform functions should have no side-effects. + * If you need to modify properties, it is recommended to make a copy of the data, or create new object to return. + *
+ * * ### Default Transformations * * The `$httpProvider` provider and `$http` service expose `defaults.transformRequest` and @@ -9879,26 +10866,35 @@ function $HttpProvider() { * * ## Caching * - * To enable caching, set the request configuration `cache` property to `true` (to use default - * cache) or to a custom cache object (built with {@link ng.$cacheFactory `$cacheFactory`}). - * When the cache is enabled, `$http` stores the response from the server in the specified - * cache. The next time the same request is made, the response is served from the cache without - * sending a request to the server. + * {@link ng.$http `$http`} responses are not cached by default. To enable caching, you must + * set the config.cache value or the default cache value to TRUE or to a cache object (created + * with {@link ng.$cacheFactory `$cacheFactory`}). If defined, the value of config.cache takes + * precedence over the default cache value. * - * Note that even if the response is served from cache, delivery of the data is asynchronous in - * the same way that real requests are. + * In order to: + * * cache all responses - set the default cache value to TRUE or to a cache object + * * cache a specific response - set config.cache value to TRUE or to a cache object * - * If there are multiple GET requests for the same URL that should be cached using the same - * cache, but the cache is not populated yet, only one request to the server will be made and - * the remaining requests will be fulfilled using the response from the first request. + * If caching is enabled, but neither the default cache nor config.cache are set to a cache object, + * then the default `$cacheFactory($http)` object is used. * - * You can change the default cache to a new object (built with - * {@link ng.$cacheFactory `$cacheFactory`}) by updating the - * {@link ng.$http#defaults `$http.defaults.cache`} property. All requests who set - * their `cache` property to `true` will now use this cache object. + * The default cache value can be set by updating the + * {@link ng.$http#defaults `$http.defaults.cache`} property or the + * {@link $httpProvider#defaults `$httpProvider.defaults.cache`} property. + * + * When caching is enabled, {@link ng.$http `$http`} stores the response from the server using + * the relevant cache object. The next time the same request is made, the response is returned + * from the cache without sending a request to the server. + * + * Take note that: + * + * * Only GET and JSONP requests are cached. + * * The cache key is the request URL including search parameters; headers are not considered. + * * Cached responses are returned asynchronously, in the same way as responses from the server. + * * If multiple identical requests are made using the same cache, which is not yet populated, + * one request will be made to the server and remaining requests will return the same response. + * * A cache-control header on the response does not affect if or how responses are cached. * - * If you set the default cache to `false` then only requests that specify their own custom - * cache object will be cached. * * ## Interceptors * @@ -10020,13 +11016,13 @@ function $HttpProvider() { * * ### Cross Site Request Forgery (XSRF) Protection * - * [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) is a technique by which - * an unauthorized site can gain your user's private data. Angular provides a mechanism - * to counter XSRF. When performing XHR requests, the $http service reads a token from a cookie - * (by default, `XSRF-TOKEN`) and sets it as an HTTP header (`X-XSRF-TOKEN`). Since only - * JavaScript that runs on your domain could read the cookie, your server can be assured that - * the XHR came from JavaScript running on your domain. The header will not be set for - * cross-domain requests. + * [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) is an attack technique by + * which the attacker can trick an authenticated user into unknowingly executing actions on your + * website. Angular provides a mechanism to counter XSRF. When performing XHR requests, the + * $http service reads a token from a cookie (by default, `XSRF-TOKEN`) and sets it as an HTTP + * header (`X-XSRF-TOKEN`). Since only JavaScript that runs on your domain could read the + * cookie, your server can be assured that the XHR came from JavaScript running on your domain. + * The header will not be set for cross-domain requests. * * To take advantage of this, your server needs to set a token in a JavaScript readable session * cookie called `XSRF-TOKEN` on the first HTTP GET request. On subsequent XHR requests the @@ -10055,6 +11051,12 @@ function $HttpProvider() { * - **headers** – `{Object}` – Map of strings or functions which return strings representing * HTTP headers to send to the server. If the return value of a function is null, the * header will not be sent. Functions accept a config object as an argument. + * - **eventHandlers** - `{Object}` - Event listeners to be bound to the XMLHttpRequest object. + * To bind events to the XMLHttpRequest upload object, use `uploadEventHandlers`. + * The handler will be called in the context of a `$apply` block. + * - **uploadEventHandlers** - `{Object}` - Event listeners to be bound to the XMLHttpRequest upload + * object. To bind events to the XMLHttpRequest object, use `eventHandlers`. + * The handler will be called in the context of a `$apply` block. * - **xsrfHeaderName** – `{string}` – Name of HTTP header to populate with the XSRF token. * - **xsrfCookieName** – `{string}` – Name of cookie containing the XSRF token. * - **transformRequest** – @@ -10068,7 +11070,7 @@ function $HttpProvider() { * transform function or an array of such functions. The transform function takes the http * response body, headers and status and returns its transformed (typically deserialized) version. * See {@link ng.$http#overriding-the-default-transformations-per-request - * Overriding the Default TransformationjqLiks} + * Overriding the Default Transformations} * - **paramSerializer** - `{string|function(Object):string}` - A function used to * prepare the string representation of request parameters (specified as an object). * If specified as string, it is interpreted as function registered with the @@ -10076,10 +11078,9 @@ function $HttpProvider() { * by registering it as a {@link auto.$provide#service service}. * The default serializer is the {@link $httpParamSerializer $httpParamSerializer}; * alternatively, you can use the {@link $httpParamSerializerJQLike $httpParamSerializerJQLike} - * - **cache** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the - * GET request, otherwise if a cache instance built with - * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for - * caching. + * - **cache** – `{boolean|Object}` – A boolean value or object created with + * {@link ng.$cacheFactory `$cacheFactory`} to enable or disable caching of the HTTP response. + * See {@link $http#caching $http Caching} for more information. * - **timeout** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise} * that should abort the request when resolved. * - **withCredentials** - `{boolean}` - whether to set the `withCredentials` flag on the @@ -10185,10 +11186,14 @@ function $HttpProvider() { */ function $http(requestConfig) { - if (!angular.isObject(requestConfig)) { + if (!isObject(requestConfig)) { throw minErr('$http')('badreq', 'Http request configuration must be an object. Received: {0}', requestConfig); } + if (!isString(requestConfig.url)) { + throw minErr('$http')('badreq', 'Http request configuration url must be a string. Received: {0}', requestConfig.url); + } + var config = extend({ method: 'get', transformRequest: defaults.transformRequest, @@ -10270,11 +11275,8 @@ function $HttpProvider() { function transformResponse(response) { // make a copy since the response must be cacheable var resp = extend({}, response); - if (!response.data) { - resp.data = response.data; - } else { - resp.data = transformData(response.data, response.headers, response.status, config.transformResponse); - } + resp.data = transformData(response.data, response.headers, response.status, + config.transformResponse); return (isSuccess(response.status)) ? resp : $q.reject(resp); @@ -10304,7 +11306,7 @@ function $HttpProvider() { defHeaders = extend({}, defHeaders.common, defHeaders[lowercase(config.method)]); - // using for-in instead of forEach to avoid unecessary iteration after header has been found + // using for-in instead of forEach to avoid unnecessary iteration after header has been found defaultHeadersIteration: for (defHeaderName in defHeaders) { lowercaseDefHeaderName = lowercase(defHeaderName); @@ -10513,11 +11515,35 @@ function $HttpProvider() { } $httpBackend(config.method, url, reqData, done, reqHeaders, config.timeout, - config.withCredentials, config.responseType); + config.withCredentials, config.responseType, + createApplyHandlers(config.eventHandlers), + createApplyHandlers(config.uploadEventHandlers)); } return promise; + function createApplyHandlers(eventHandlers) { + if (eventHandlers) { + var applyHandlers = {}; + forEach(eventHandlers, function(eventHandler, key) { + applyHandlers[key] = function(event) { + if (useApplyAsync) { + $rootScope.$applyAsync(callEventHandler); + } else if ($rootScope.$$phase) { + callEventHandler(); + } else { + $rootScope.$apply(callEventHandler); + } + + function callEventHandler() { + eventHandler(event); + } + }; + }); + return applyHandlers; + } + } + /** * Callback registered to $httpBackend(): @@ -10638,7 +11664,7 @@ function $HttpBackendProvider() { function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDocument) { // TODO(vojta): fix the signature - return function(method, url, post, callback, headers, timeout, withCredentials, responseType) { + return function(method, url, post, callback, headers, timeout, withCredentials, responseType, eventHandlers, uploadEventHandlers) { $browser.$$incOutstandingRequestCount(); url = url || $browser.url(); @@ -10698,6 +11724,14 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc xhr.onerror = requestError; xhr.onabort = requestError; + forEach(eventHandlers, function(value, key) { + xhr.addEventListener(key, value); + }); + + forEach(uploadEventHandlers, function(value, key) { + xhr.upload.addEventListener(key, value); + }); + if (withCredentials) { xhr.withCredentials = true; } @@ -10803,8 +11837,16 @@ $interpolateMinErr.interr = function(text, err) { * * Used for configuring the interpolation markup. Defaults to `{{` and `}}`. * + *
+ * This feature is sometimes used to mix different markup languages, e.g. to wrap an Angular + * template within a Python Jinja template (or any other template language). Mixing templating + * languages is **very dangerous**. The embedding template language will not safely escape Angular + * expressions, so any user-controlled values in the template will cause Cross Site Scripting (XSS) + * security bugs! + *
+ * * @example - + -
+
//demo.label//
@@ -10903,6 +11945,15 @@ function $InterpolateProvider() { return value; } + //TODO: this is the same as the constantWatchDelegate in parse.js + function constantWatchDelegate(scope, listener, objectEquality, constantInterp) { + var unwatch; + return unwatch = scope.$watch(function constantInterpolateWatch(scope) { + unwatch(); + return constantInterp(scope); + }, listener, objectEquality); + } + /** * @ngdoc service * @name $interpolate @@ -10998,6 +12049,19 @@ function $InterpolateProvider() { * - `context`: evaluation context for all expressions embedded in the interpolated text */ function $interpolate(text, mustHaveExpression, trustedContext, allOrNothing) { + // Provide a quick exit and simplified result function for text with no interpolation + if (!text.length || text.indexOf(startSymbol) === -1) { + var constantInterp; + if (!mustHaveExpression) { + var unescapedText = unescapeText(text); + constantInterp = valueFn(unescapedText); + constantInterp.exp = text; + constantInterp.expressions = []; + constantInterp.$$watchDelegate = constantWatchDelegate; + } + return constantInterp; + } + allOrNothing = !!allOrNothing; var startIndex, endIndex, @@ -11134,8 +12198,8 @@ function $InterpolateProvider() { } function $IntervalProvider() { - this.$get = ['$rootScope', '$window', '$q', '$$q', - function($rootScope, $window, $q, $$q) { + this.$get = ['$rootScope', '$window', '$q', '$$q', '$browser', + function($rootScope, $window, $q, $$q, $browser) { var intervals = {}; @@ -11276,11 +12340,12 @@ function $IntervalProvider() { count = isDefined(count) ? count : 0; - promise.then(null, null, (!hasParams) ? fn : function() { - fn.apply(null, args); - }); - promise.$$intervalId = setInterval(function tick() { + if (skipApply) { + $browser.defer(callback); + } else { + $rootScope.$evalAsync(callback); + } deferred.notify(iteration++); if (count > 0 && iteration >= count) { @@ -11296,6 +12361,14 @@ function $IntervalProvider() { intervals[promise.$$intervalId] = deferred; return promise; + + function callback() { + if (!hasParams) { + fn(iteration); + } else { + fn.apply(null, args); + } + } } @@ -11908,9 +12981,9 @@ var locationPrototype = { * @description * This method is getter / setter. * - * Return hash fragment when called without any parameter. + * Returns the hash fragment when called without any parameters. * - * Change hash fragment when called with parameter and return `$location`. + * Changes the hash fragment when called with a parameter and returns `$location`. * * * ```js @@ -11931,8 +13004,8 @@ var locationPrototype = { * @name $location#replace * * @description - * If called, all changes to $location during current `$digest` will be replacing current history - * record, instead of adding new one. + * If called, all changes to $location during the current `$digest` will replace the current history + * record, instead of adding a new one. */ replace: function() { this.$$replace = true; @@ -12252,7 +13325,7 @@ function $LocationProvider() { var oldUrl = $location.absUrl(); var oldState = $location.$$state; var defaultPrevented; - + newUrl = trimEmptyHash(newUrl); $location.$$parse(newUrl); $location.$$state = newState; @@ -12535,23 +13608,22 @@ function ensureSafeMemberName(name, fullExpression) { return name; } -function getStringValue(name, fullExpression) { - // From the JavaScript docs: +function getStringValue(name) { // Property names must be strings. This means that non-string objects cannot be used // as keys in an object. Any non-string object, including a number, is typecasted // into a string via the toString method. + // -- MDN, https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Property_accessors#Property_names // - // So, to ensure that we are checking the same `name` that JavaScript would use, - // we cast it to a string, if possible. - // Doing `name + ''` can cause a repl error if the result to `toString` is not a string, - // this is, this will handle objects that misbehave. - name = name + ''; - if (!isString(name)) { - throw $parseMinErr('iseccst', - 'Cannot convert object to primitive value! ' - + 'Expression: {0}', fullExpression); - } - return name; + // So, to ensure that we are checking the same `name` that JavaScript would use, we cast it + // to a string. It's not always possible. If `name` is an object and its `toString` method is + // 'broken' (doesn't return a string, isn't a function, etc.), an error will be thrown: + // + // TypeError: Cannot convert object to primitive value + // + // For performance reasons, we don't catch this error here and allow it to propagate up the call + // stack. Note that you'll get the same error in JavaScript if you try to access a property using + // such a 'broken' object as a key. + return name + ''; } function ensureSafeObject(obj, fullExpression) { @@ -12638,7 +13710,7 @@ Lexer.prototype = { this.readString(ch); } else if (this.isNumber(ch) || ch === '.' && this.isNumber(this.peek())) { this.readNumber(); - } else if (this.isIdent(ch)) { + } else if (this.isIdentifierStart(this.peekMultichar())) { this.readIdent(); } else if (this.is(ch, '(){}[].,;:?')) { this.tokens.push({index: this.index, text: ch}); @@ -12682,12 +13754,49 @@ Lexer.prototype = { ch === '\n' || ch === '\v' || ch === '\u00A0'); }, - isIdent: function(ch) { + isIdentifierStart: function(ch) { + return this.options.isIdentifierStart ? + this.options.isIdentifierStart(ch, this.codePointAt(ch)) : + this.isValidIdentifierStart(ch); + }, + + isValidIdentifierStart: function(ch) { return ('a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || '_' === ch || ch === '$'); }, + isIdentifierContinue: function(ch) { + return this.options.isIdentifierContinue ? + this.options.isIdentifierContinue(ch, this.codePointAt(ch)) : + this.isValidIdentifierContinue(ch); + }, + + isValidIdentifierContinue: function(ch, cp) { + return this.isValidIdentifierStart(ch, cp) || this.isNumber(ch); + }, + + codePointAt: function(ch) { + if (ch.length === 1) return ch.charCodeAt(0); + /*jshint bitwise: false*/ + return (ch.charCodeAt(0) << 10) + ch.charCodeAt(1) - 0x35FDC00; + /*jshint bitwise: true*/ + }, + + peekMultichar: function() { + var ch = this.text.charAt(this.index); + var peek = this.peek(); + if (!peek) { + return ch; + } + var cp1 = ch.charCodeAt(0); + var cp2 = peek.charCodeAt(0); + if (cp1 >= 0xD800 && cp1 <= 0xDBFF && cp2 >= 0xDC00 && cp2 <= 0xDFFF) { + return ch + peek; + } + return ch; + }, + isExpOperator: function(ch) { return (ch === '-' || ch === '+' || this.isNumber(ch)); }, @@ -12736,12 +13845,13 @@ Lexer.prototype = { readIdent: function() { var start = this.index; + this.index += this.peekMultichar().length; while (this.index < this.text.length) { - var ch = this.text.charAt(this.index); - if (!(this.isIdent(ch) || this.isNumber(ch))) { + var ch = this.peekMultichar(); + if (!this.isIdentifierContinue(ch)) { break; } - this.index++; + this.index += ch.length; } this.tokens.push({ index: start, @@ -12812,6 +13922,7 @@ AST.ArrayExpression = 'ArrayExpression'; AST.Property = 'Property'; AST.ObjectExpression = 'ObjectExpression'; AST.ThisExpression = 'ThisExpression'; +AST.LocalsExpression = 'LocalsExpression'; // Internal use only AST.NGValueParameter = 'NGValueParameter'; @@ -12950,8 +14061,10 @@ AST.prototype = { primary = this.arrayDeclaration(); } else if (this.expect('{')) { primary = this.object(); - } else if (this.constants.hasOwnProperty(this.peek().text)) { - primary = copy(this.constants[this.consume().text]); + } else if (this.selfReferential.hasOwnProperty(this.peek().text)) { + primary = copy(this.selfReferential[this.consume().text]); + } else if (this.options.literals.hasOwnProperty(this.peek().text)) { + primary = { type: AST.Literal, value: this.options.literals[this.consume().text]}; } else if (this.peek().identifier) { primary = this.identifier(); } else if (this.peek().constant) { @@ -13103,16 +14216,9 @@ AST.prototype = { return false; }, - - /* `undefined` is not a constant, it is an identifier, - * but using it as an identifier is not supported - */ - constants: { - 'true': { type: AST.Literal, value: true }, - 'false': { type: AST.Literal, value: false }, - 'null': { type: AST.Literal, value: null }, - 'undefined': {type: AST.Literal, value: undefined }, - 'this': {type: AST.ThisExpression } + selfReferential: { + 'this': {type: AST.ThisExpression }, + '$locals': {type: AST.LocalsExpression } } }; @@ -13232,6 +14338,10 @@ function findConstantAndWatchExpressions(ast, $filter) { ast.constant = false; ast.toWatch = []; break; + case AST.LocalsExpression: + ast.constant = false; + ast.toWatch = []; + break; } } @@ -13475,6 +14585,9 @@ ASTCompiler.prototype = { intoId = intoId || this.nextId(); self.recurse(ast.object, left, undefined, function() { self.if_(self.notNull(left), function() { + if (create && create !== 1) { + self.addEnsureSafeAssignContext(left); + } if (ast.computed) { right = self.nextId(); self.recurse(ast.property, right); @@ -13556,7 +14669,7 @@ ASTCompiler.prototype = { right = this.nextId(); left = {}; if (!isAssignable(ast.left)) { - throw $parseMinErr('lval', 'Trying to assing a value to a non l-value'); + throw $parseMinErr('lval', 'Trying to assign a value to a non l-value'); } this.recurse(ast.left, undefined, left, function() { self.if_(self.notNull(left.context), function() { @@ -13598,6 +14711,10 @@ ASTCompiler.prototype = { this.assign(intoId, 's'); recursionFn('s'); break; + case AST.LocalsExpression: + this.assign(intoId, 'l'); + recursionFn('l'); + break; case AST.NGValueParameter: this.assign(intoId, 'v'); recursionFn('v'); @@ -13664,7 +14781,13 @@ ASTCompiler.prototype = { }, nonComputedMember: function(left, right) { - return left + '.' + right; + var SAFE_IDENTIFIER = /[$_a-zA-Z][$_a-zA-Z0-9]*/; + var UNSAFE_CHARACTERS = /[^$_a-zA-Z0-9]/g; + if (SAFE_IDENTIFIER.test(right)) { + return left + '.' + right; + } else { + return left + '["' + right.replace(UNSAFE_CHARACTERS, this.stringEscapeFn) + '"]'; + } }, computedMember: function(left, right) { @@ -13705,7 +14828,7 @@ ASTCompiler.prototype = { }, getStringValue: function(item) { - this.assign(item, 'getStringValue(' + item + ',text)'); + this.assign(item, 'getStringValue(' + item + ')'); }, ensureSafeAssignContext: function(item) { @@ -13789,7 +14912,7 @@ ASTInterpreter.prototype = { forEach(ast.body, function(expression) { expressions.push(self.recurse(expression.expression)); }); - var fn = ast.body.length === 0 ? function() {} : + var fn = ast.body.length === 0 ? noop : ast.body.length === 1 ? expressions[0] : function(scope, locals) { var lastValue; @@ -13925,8 +15048,12 @@ ASTInterpreter.prototype = { return function(scope) { return context ? {value: scope} : scope; }; + case AST.LocalsExpression: + return function(scope, locals) { + return context ? {value: locals} : locals; + }; case AST.NGValueParameter: - return function(scope, locals, assign, inputs) { + return function(scope, locals, assign) { return context ? {value: assign} : assign; }; } @@ -14089,8 +15216,11 @@ ASTInterpreter.prototype = { rhs = right(scope, locals, assign, inputs); rhs = getStringValue(rhs); ensureSafeMemberName(rhs, expression); - if (create && create !== 1 && lhs && !(lhs[rhs])) { - lhs[rhs] = {}; + if (create && create !== 1) { + ensureSafeAssignContext(lhs); + if (lhs && !(lhs[rhs])) { + lhs[rhs] = {}; + } } value = lhs[rhs]; ensureSafeObject(value, expression); @@ -14105,8 +15235,11 @@ ASTInterpreter.prototype = { nonComputedMember: function(left, right, expensiveChecks, context, create, expression) { return function(scope, locals, assign, inputs) { var lhs = left(scope, locals, assign, inputs); - if (create && create !== 1 && lhs && !(lhs[right])) { - lhs[right] = {}; + if (create && create !== 1) { + ensureSafeAssignContext(lhs); + if (lhs && !(lhs[right])) { + lhs[right] = {}; + } } var value = lhs != null ? lhs[right] : undefined; if (expensiveChecks || isPossiblyDangerousMemberName(right)) { @@ -14134,7 +15267,7 @@ var Parser = function(lexer, $filter, options) { this.lexer = lexer; this.$filter = $filter; this.options = options; - this.ast = new AST(this.lexer); + this.ast = new AST(lexer, options); this.astCompiler = options.csp ? new ASTInterpreter(this.ast, $filter) : new ASTCompiler(this.ast, $filter); }; @@ -14147,9 +15280,6 @@ Parser.prototype = { } }; -var getterFnCacheDefault = createMap(); -var getterFnCacheExpensive = createMap(); - function isPossiblyDangerousMemberName(name) { return name == 'constructor'; } @@ -14214,21 +15344,87 @@ function getValueOf(value) { function $ParseProvider() { var cacheDefault = createMap(); var cacheExpensive = createMap(); + var literals = { + 'true': true, + 'false': false, + 'null': null, + 'undefined': undefined + }; + var identStart, identContinue; + + /** + * @ngdoc method + * @name $parseProvider#addLiteral + * @description + * + * Configure $parse service to add literal values that will be present as literal at expressions. + * + * @param {string} literalName Token for the literal value. The literal name value must be a valid literal name. + * @param {*} literalValue Value for this literal. All literal values must be primitives or `undefined`. + * + **/ + this.addLiteral = function(literalName, literalValue) { + literals[literalName] = literalValue; + }; + + /** + * @ngdoc method + * @name $parseProvider#setIdentifierFns + * @description + * + * Allows defining the set of characters that are allowed in Angular expressions. The function + * `identifierStart` will get called to know if a given character is a valid character to be the + * first character for an identifier. The function `identifierContinue` will get called to know if + * a given character is a valid character to be a follow-up identifier character. The functions + * `identifierStart` and `identifierContinue` will receive as arguments the single character to be + * identifier and the character code point. These arguments will be `string` and `numeric`. Keep in + * mind that the `string` parameter can be two characters long depending on the character + * representation. It is expected for the function to return `true` or `false`, whether that + * character is allowed or not. + * + * Since this function will be called extensivelly, keep the implementation of these functions fast, + * as the performance of these functions have a direct impact on the expressions parsing speed. + * + * @param {function=} identifierStart The function that will decide whether the given character is + * a valid identifier start character. + * @param {function=} identifierContinue The function that will decide whether the given character is + * a valid identifier continue character. + */ + this.setIdentifierFns = function(identifierStart, identifierContinue) { + identStart = identifierStart; + identContinue = identifierContinue; + return this; + }; this.$get = ['$filter', function($filter) { var noUnsafeEval = csp().noUnsafeEval; var $parseOptions = { csp: noUnsafeEval, - expensiveChecks: false + expensiveChecks: false, + literals: copy(literals), + isIdentifierStart: isFunction(identStart) && identStart, + isIdentifierContinue: isFunction(identContinue) && identContinue }, $parseOptionsExpensive = { csp: noUnsafeEval, - expensiveChecks: true + expensiveChecks: true, + literals: copy(literals), + isIdentifierStart: isFunction(identStart) && identStart, + isIdentifierContinue: isFunction(identContinue) && identContinue }; + var runningChecksEnabled = false; - return function $parse(exp, interceptorFn, expensiveChecks) { + $parse.$$runningExpensiveChecks = function() { + return runningChecksEnabled; + }; + + return $parse; + + function $parse(exp, interceptorFn, expensiveChecks) { var parsedExpression, oneTime, cacheKey; + expensiveChecks = expensiveChecks || runningChecksEnabled; + switch (typeof exp) { case 'string': exp = exp.trim(); @@ -14254,6 +15450,9 @@ function $ParseProvider() { } else if (parsedExpression.inputs) { parsedExpression.$$watchDelegate = inputsWatchDelegate; } + if (expensiveChecks) { + parsedExpression = expensiveChecksInterceptor(parsedExpression); + } cache[cacheKey] = parsedExpression; } return addInterceptor(parsedExpression, interceptorFn); @@ -14262,9 +15461,33 @@ function $ParseProvider() { return addInterceptor(exp, interceptorFn); default: - return noop; + return addInterceptor(noop, interceptorFn); } - }; + } + + function expensiveChecksInterceptor(fn) { + if (!fn) return fn; + expensiveCheckFn.$$watchDelegate = fn.$$watchDelegate; + expensiveCheckFn.assign = expensiveChecksInterceptor(fn.assign); + expensiveCheckFn.constant = fn.constant; + expensiveCheckFn.literal = fn.literal; + for (var i = 0; fn.inputs && i < fn.inputs.length; ++i) { + fn.inputs[i] = expensiveChecksInterceptor(fn.inputs[i]); + } + expensiveCheckFn.inputs = fn.inputs; + + return expensiveCheckFn; + + function expensiveCheckFn(scope, locals, assign, inputs) { + var expensiveCheckOldValue = runningChecksEnabled; + runningChecksEnabled = true; + try { + return fn(scope, locals, assign, inputs); + } finally { + runningChecksEnabled = expensiveCheckOldValue; + } + } + } function expressionInputDirtyCheck(newValue, oldValueOfValue) { @@ -14381,25 +15604,22 @@ function $ParseProvider() { function constantWatchDelegate(scope, listener, objectEquality, parsedExpression) { var unwatch; return unwatch = scope.$watch(function constantWatch(scope) { - return parsedExpression(scope); - }, function constantListener(value, old, scope) { - if (isFunction(listener)) { - listener.apply(this, arguments); - } unwatch(); - }, objectEquality); + return parsedExpression(scope); + }, listener, objectEquality); } function addInterceptor(parsedExpression, interceptorFn) { if (!interceptorFn) return parsedExpression; var watchDelegate = parsedExpression.$$watchDelegate; + var useInputs = false; var regularWatch = watchDelegate !== oneTimeLiteralWatchDelegate && watchDelegate !== oneTimeWatchDelegate; var fn = regularWatch ? function regularInterceptedExpression(scope, locals, assign, inputs) { - var value = parsedExpression(scope, locals, assign, inputs); + var value = useInputs && inputs ? inputs[0] : parsedExpression(scope, locals, assign, inputs); return interceptorFn(value, scope, locals); } : function oneTimeInterceptedExpression(scope, locals, assign, inputs) { var value = parsedExpression(scope, locals, assign, inputs); @@ -14417,6 +15637,7 @@ function $ParseProvider() { // If there is an interceptor, but no watchDelegate then treat the interceptor like // we treat filters - it is assumed to be a pure function unless flagged with $stateful fn.$$watchDelegate = inputsWatchDelegate; + useInputs = !parsedExpression.inputs; fn.inputs = parsedExpression.inputs ? parsedExpression.inputs : [parsedExpression]; } @@ -14438,15 +15659,15 @@ function $ParseProvider() { * [Kris Kowal's Q](https://github.com/kriskowal/q). * * $q can be used in two fashions --- one which is more similar to Kris Kowal's Q or jQuery's Deferred - * implementations, and the other which resembles ES6 promises to some degree. + * implementations, and the other which resembles ES6 (ES2015) promises to some degree. * * # $q constructor * * The streamlined ES6 style promise is essentially just using $q as a constructor which takes a `resolver` - * function as the first argument. This is similar to the native Promise implementation from ES6 Harmony, + * function as the first argument. This is similar to the native Promise implementation from ES6, * see [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). * - * While the constructor-style use is supported, not all of the supporting methods from ES6 Harmony promises are + * While the constructor-style use is supported, not all of the supporting methods from ES6 promises are * available yet. * * It can be used like so: @@ -14478,6 +15699,8 @@ function $ParseProvider() { * * Note: progress/notify callbacks are not currently supported via the ES6-style interface. * + * Note: unlike ES6 behavior, an exception thrown in the constructor function will NOT implicitly reject the promise. + * * However, the more traditional CommonJS-style usage is still available, and documented below. * * [The CommonJS Promise proposal](http://wiki.commonjs.org/wiki/Promises) describes a promise as an @@ -14609,7 +15832,7 @@ function $ParseProvider() { * - Q has many more features than $q, but that comes at a cost of bytes. $q is tiny, but contains * all the important functionality needed for common async tasks. * - * # Testing + * # Testing * * ```js * it('should simulate promise', inject(function($q, $rootScope) { @@ -14666,18 +15889,6 @@ function $$QProvider() { */ function qFactory(nextTick, exceptionHandler) { var $qMinErr = minErr('$q', TypeError); - function callOnce(self, resolveFn, rejectFn) { - var called = false; - function wrap(fn) { - return function(value) { - if (called) return; - called = true; - fn.call(self, value); - }; - } - - return [wrap(resolveFn), wrap(rejectFn)]; - } /** * @ngdoc method @@ -14690,7 +15901,12 @@ function qFactory(nextTick, exceptionHandler) { * @returns {Deferred} Returns a new instance of deferred. */ var defer = function() { - return new Deferred(); + var d = new Deferred(); + //Necessary to support unbound execution :/ + d.resolve = simpleBind(d, d.resolve); + d.reject = simpleBind(d, d.reject); + d.notify = simpleBind(d, d.notify); + return d; }; function Promise() { @@ -14763,10 +15979,6 @@ function qFactory(nextTick, exceptionHandler) { function Deferred() { this.promise = new Promise(); - //Necessary to support unbound execution :/ - this.resolve = simpleBind(this, this.resolve); - this.reject = simpleBind(this, this.reject); - this.notify = simpleBind(this, this.notify); } extend(Deferred.prototype, { @@ -14784,23 +15996,34 @@ function qFactory(nextTick, exceptionHandler) { }, $$resolve: function(val) { - var then, fns; - - fns = callOnce(this, this.$$resolve, this.$$reject); + var then; + var that = this; + var done = false; try { if ((isObject(val) || isFunction(val))) then = val && val.then; if (isFunction(then)) { this.promise.$$state.status = -1; - then.call(val, fns[0], fns[1], this.notify); + then.call(val, resolvePromise, rejectPromise, simpleBind(this, this.notify)); } else { this.promise.$$state.value = val; this.promise.$$state.status = 1; scheduleProcessQueue(this.promise.$$state); } } catch (e) { - fns[1](e); + rejectPromise(e); exceptionHandler(e); } + + function resolvePromise(val) { + if (done) return; + done = true; + that.$$resolve(val); + } + function rejectPromise(val) { + if (done) return; + done = true; + that.$$reject(val); + } }, reject: function(reason) { @@ -14989,11 +16212,6 @@ function qFactory(nextTick, exceptionHandler) { throw $qMinErr('norslvr', "Expected resolverFn, got '{0}'", resolver); } - if (!(this instanceof Q)) { - // More useful when $Q is the Promise itself. - return new Q(resolver); - } - var deferred = new Deferred(); function resolveFn(value) { @@ -15009,6 +16227,10 @@ function qFactory(nextTick, exceptionHandler) { return deferred.promise; }; + // Let's make the instanceof operator work for promises, so that + // `new $q(fn) instanceof $q` would evaluate to true. + $Q.prototype = Promise.prototype; + $Q.defer = defer; $Q.reject = reject; $Q.when = when; @@ -15062,15 +16284,15 @@ function $$RAFProvider() { //rAF * exposed as $$____ properties * * Loop operations are optimized by using while(count--) { ... } - * - this means that in order to keep the same order of execution as addition we have to add + * - This means that in order to keep the same order of execution as addition we have to add * items to the array at the beginning (unshift) instead of at the end (push) * * Child scopes are created and removed often - * - Using an array would be slow since inserts in middle are expensive so we use linked list + * - Using an array would be slow since inserts in the middle are expensive; so we use linked lists * - * There are few watches then a lot of observers. This is why you don't want the observer to be - * implemented in the same way as watch. Watch requires return of initialization function which - * are expensive to construct. + * There are fewer watches than observers. This is why you don't want the observer to be implemented + * in the same way as watch. Watch requires return of the initialization function which is expensive + * to construct. */ @@ -15112,7 +16334,7 @@ function $$RAFProvider() { //rAF * Every application has a single root {@link ng.$rootScope.Scope scope}. * All other scopes are descendant scopes of the root scope. Scopes provide separation * between the model and the view, via a mechanism for watching the model for changes. - * They also provide an event emission/broadcast and subscription facility. See the + * They also provide event emission/broadcast and subscription facility. See the * {@link guide/scope developer guide on scopes}. */ function $RootScopeProvider() { @@ -15142,13 +16364,36 @@ function $RootScopeProvider() { return ChildScope; } - this.$get = ['$injector', '$exceptionHandler', '$parse', '$browser', - function($injector, $exceptionHandler, $parse, $browser) { + this.$get = ['$exceptionHandler', '$parse', '$browser', + function($exceptionHandler, $parse, $browser) { function destroyChildScope($event) { $event.currentScope.$$destroyed = true; } + function cleanUpScope($scope) { + + if (msie === 9) { + // There is a memory leak in IE9 if all child scopes are not disconnected + // completely when a scope is destroyed. So this code will recurse up through + // all this scopes children + // + // See issue https://github.com/angular/angular.js/issues/10706 + $scope.$$childHead && cleanUpScope($scope.$$childHead); + $scope.$$nextSibling && cleanUpScope($scope.$$nextSibling); + } + + // The code below works around IE9 and V8's memory leaks + // + // See: + // - https://code.google.com/p/v8/issues/detail?id=2073#c26 + // - https://github.com/angular/angular.js/issues/6794#issuecomment-38648909 + // - https://github.com/angular/angular.js/issues/1313#issuecomment-10378451 + + $scope.$parent = $scope.$$nextSibling = $scope.$$prevSibling = $scope.$$childHead = + $scope.$$childTail = $scope.$root = $scope.$$watchers = null; + } + /** * @ngdoc type * @name $rootScope.Scope @@ -15404,7 +16649,7 @@ function $RootScopeProvider() { * - `newVal` contains the current value of the `watchExpression` * - `oldVal` contains the previous value of the `watchExpression` * - `scope` refers to the current scope - * @param {boolean=} objectEquality Compare for object equality using {@link angular.equals} instead of + * @param {boolean=} [objectEquality=false] Compare for object equality using {@link angular.equals} instead of * comparing for reference equality. * @returns {function()} Returns a deregistration function for this listener. */ @@ -15769,13 +17014,13 @@ function $RootScopeProvider() { * */ $digest: function() { - var watch, value, last, + var watch, value, last, fn, get, watchers, length, dirty, ttl = TTL, next, current, target = this, watchLog = [], - logIdx, logMsg, asyncTask; + logIdx, asyncTask; beginPhase('$digest'); // Check for changes to browser url that happened in sync before the call to $digest @@ -15815,7 +17060,8 @@ function $RootScopeProvider() { // Most common watches are on primitives, in which case we can short // circuit it with === operator, only when === fails do we use .equals if (watch) { - if ((value = watch.get(current)) !== (last = watch.last) && + get = watch.get; + if ((value = get(current)) !== (last = watch.last) && !(watch.eq ? equals(value, last) : (typeof value === 'number' && typeof last === 'number' @@ -15823,7 +17069,8 @@ function $RootScopeProvider() { dirty = true; lastDirtyWatch = watch; watch.last = watch.eq ? copy(value, null) : value; - watch.fn(value, ((last === initWatchVal) ? value : last), current); + fn = watch.fn; + fn(value, ((last === initWatchVal) ? value : last), current); if (ttl < 5) { logIdx = 4 - ttl; if (!watchLog[logIdx]) watchLog[logIdx] = []; @@ -15945,16 +17192,9 @@ function $RootScopeProvider() { this.$on = this.$watch = this.$watchGroup = function() { return noop; }; this.$$listeners = {}; - // All of the code below is bogus code that works around V8's memory leak via optimized code - // and inline caches. - // - // see: - // - https://code.google.com/p/v8/issues/detail?id=2073#c26 - // - https://github.com/angular/angular.js/issues/6794#issuecomment-38648909 - // - https://github.com/angular/angular.js/issues/1313#issuecomment-10378451 - - this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead = - this.$$childTail = this.$root = this.$$watchers = null; + // Disconnect the next sibling to prevent `cleanUpScope` destroying those too + this.$$nextSibling = null; + cleanUpScope(this); }, /** @@ -16030,7 +17270,7 @@ function $RootScopeProvider() { }); } - asyncQueue.push({scope: this, expression: expr, locals: locals}); + asyncQueue.push({scope: this, expression: $parse(expr), locals: locals}); }, $$postDigest: function(fn) { @@ -16122,6 +17362,7 @@ function $RootScopeProvider() { $applyAsync: function(expr) { var scope = this; expr && applyAsyncQueue.push($applyAsyncExpression); + expr = $parse(expr); scheduleApplyAsync(); function $applyAsyncExpression() { @@ -16396,6 +17637,21 @@ function $RootScopeProvider() { }]; } +/** + * @ngdoc service + * @name $rootElement + * + * @description + * The root element of Angular application. This is either the element where {@link + * ng.directive:ngApp ngApp} was declared or the element passed into + * {@link angular.bootstrap}. The element represents the root element of application. It is also the + * location where the application's {@link auto.$injector $injector} service gets + * published, and can be retrieved using `$rootElement.injector()`. + */ + + +// the implementation is in angular.bootstrap + /** * @description * Private service to sanitize uris for links and images. Used by $compile and $sanitize. @@ -16610,13 +17866,15 @@ function $SceDelegateProvider() { * @kind function * * @param {Array=} whitelist When provided, replaces the resourceUrlWhitelist with the value - * provided. This must be an array or null. A snapshot of this array is used so further - * changes to the array are ignored. + * provided. This must be an array or null. A snapshot of this array is used so further + * changes to the array are ignored. * - * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items - * allowed in this array. + * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items + * allowed in this array. * - * Note: **an empty whitelist array will block all URLs**! + *
+ * **Note:** an empty whitelist array will block all URLs! + *
* * @return {Array} the currently set whitelist array. * @@ -16639,17 +17897,17 @@ function $SceDelegateProvider() { * @kind function * * @param {Array=} blacklist When provided, replaces the resourceUrlBlacklist with the value - * provided. This must be an array or null. A snapshot of this array is used so further - * changes to the array are ignored. + * provided. This must be an array or null. A snapshot of this array is used so further + * changes to the array are ignored. * - * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items - * allowed in this array. + * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items + * allowed in this array. * - * The typical usage for the blacklist is to **block - * [open redirects](http://cwe.mitre.org/data/definitions/601.html)** served by your domain as - * these would otherwise be trusted but actually return content from the redirected domain. + * The typical usage for the blacklist is to **block + * [open redirects](http://cwe.mitre.org/data/definitions/601.html)** served by your domain as + * these would otherwise be trusted but actually return content from the redirected domain. * - * Finally, **the blacklist overrides the whitelist** and has the final say. + * Finally, **the blacklist overrides the whitelist** and has the final say. * * @return {Array} the currently set blacklist array. * @@ -16808,6 +18066,11 @@ function $SceDelegateProvider() { * returns the originally supplied value if the queried context type is a supertype of the * created type. If this condition isn't satisfied, throws an exception. * + *
+ * Disabling auto-escaping is extremely dangerous, it usually creates a Cross Site Scripting + * (XSS) vulnerability in your application. + *
+ * * @param {string} type The kind of context in which this value is to be used. * @param {*} maybeTrusted The result of a prior {@link ng.$sceDelegate#trustAs * `$sceDelegate.trustAs`} call. @@ -16950,7 +18213,7 @@ function $SceDelegateProvider() { * By default, Angular only loads templates from the same domain and protocol as the application * document. This is done by calling {@link ng.$sce#getTrustedResourceUrl * $sce.getTrustedResourceUrl} on the template URL. To load templates from other domains and/or - * protocols, you may either either {@link ng.$sceDelegateProvider#resourceUrlWhitelist whitelist + * protocols, you may either {@link ng.$sceDelegateProvider#resourceUrlWhitelist whitelist * them} or {@link ng.$sce#trustAsResourceUrl wrap it} into a trusted value. * * *Please note*: @@ -17542,6 +18805,10 @@ function $SceProvider() { function $SnifferProvider() { this.$get = ['$window', '$document', function($window, $document) { var eventSupport = {}, + // Chrome Packaged Apps are not allowed to access `history.pushState`. They can be detected by + // the presence of `chrome.app.runtime` (see https://developer.chrome.com/apps/api_index) + isChromePackagedApp = $window.chrome && $window.chrome.app && $window.chrome.app.runtime, + hasHistoryPushState = !isChromePackagedApp && $window.history && $window.history.pushState, android = toInt((/android (\d+)/.exec(lowercase(($window.navigator || {}).userAgent)) || [])[1]), boxee = /Boxee/i.test(($window.navigator || {}).userAgent), @@ -17586,7 +18853,7 @@ function $SnifferProvider() { // so let's not use the history API also // We are purposefully using `!(android < 4)` to cover the case when `android` is undefined // jshint -W018 - history: !!($window.history && $window.history.pushState && !(android < 4) && !boxee), + history: !!(hasHistoryPushState && !(android < 4) && !boxee), // jshint +W018 hasEvent: function(event) { // IE9 implements 'input' event it's so fubared that we rather pretend that it doesn't have @@ -17612,29 +18879,66 @@ function $SnifferProvider() { }]; } -var $compileMinErr = minErr('$compile'); +var $templateRequestMinErr = minErr('$compile'); /** - * @ngdoc service - * @name $templateRequest - * + * @ngdoc provider + * @name $templateRequestProvider * @description - * The `$templateRequest` service runs security checks then downloads the provided template using - * `$http` and, upon success, stores the contents inside of `$templateCache`. If the HTTP request - * fails or the response data of the HTTP request is empty, a `$compile` error will be thrown (the - * exception can be thwarted by setting the 2nd parameter of the function to true). Note that the - * contents of `$templateCache` are trusted, so the call to `$sce.getTrustedUrl(tpl)` is omitted - * when `tpl` is of type string and `$templateCache` has the matching entry. + * Used to configure the options passed to the {@link $http} service when making a template request. * - * @param {string|TrustedResourceUrl} tpl The HTTP request template URL - * @param {boolean=} ignoreRequestError Whether or not to ignore the exception when the request fails or the template is empty - * - * @return {Promise} a promise for the HTTP response data of the given URL. - * - * @property {number} totalPendingRequests total amount of pending template requests being downloaded. + * For example, it can be used for specifying the "Accept" header that is sent to the server, when + * requesting a template. */ function $TemplateRequestProvider() { + + var httpOptions; + + /** + * @ngdoc method + * @name $templateRequestProvider#httpOptions + * @description + * The options to be passed to the {@link $http} service when making the request. + * You can use this to override options such as the "Accept" header for template requests. + * + * The {@link $templateRequest} will set the `cache` and the `transformResponse` properties of the + * options if not overridden here. + * + * @param {string=} value new value for the {@link $http} options. + * @returns {string|self} Returns the {@link $http} options when used as getter and self if used as setter. + */ + this.httpOptions = function(val) { + if (val) { + httpOptions = val; + return this; + } + return httpOptions; + }; + + /** + * @ngdoc service + * @name $templateRequest + * + * @description + * The `$templateRequest` service runs security checks then downloads the provided template using + * `$http` and, upon success, stores the contents inside of `$templateCache`. If the HTTP request + * fails or the response data of the HTTP request is empty, a `$compile` error will be thrown (the + * exception can be thwarted by setting the 2nd parameter of the function to true). Note that the + * contents of `$templateCache` are trusted, so the call to `$sce.getTrustedUrl(tpl)` is omitted + * when `tpl` is of type string and `$templateCache` has the matching entry. + * + * If you want to pass custom options to the `$http` service, such as setting the Accept header you + * can configure this via {@link $templateRequestProvider#httpOptions}. + * + * @param {string|TrustedResourceUrl} tpl The HTTP request template URL + * @param {boolean=} ignoreRequestError Whether or not to ignore the exception when the request fails or the template is empty + * + * @return {Promise} a promise for the HTTP response data of the given URL. + * + * @property {number} totalPendingRequests total amount of pending template requests being downloaded. + */ this.$get = ['$templateCache', '$http', '$q', '$sce', function($templateCache, $http, $q, $sce) { + function handleRequestFn(tpl, ignoreRequestError) { handleRequestFn.totalPendingRequests++; @@ -17657,12 +18961,10 @@ function $TemplateRequestProvider() { transformResponse = null; } - var httpOptions = { - cache: $templateCache, - transformResponse: transformResponse - }; - - return $http.get(tpl, httpOptions) + return $http.get(tpl, extend({ + cache: $templateCache, + transformResponse: transformResponse + }, httpOptions)) ['finally'](function() { handleRequestFn.totalPendingRequests--; }) @@ -17673,7 +18975,7 @@ function $TemplateRequestProvider() { function handleError(resp) { if (!ignoreRequestError) { - throw $compileMinErr('tpload', 'Failed to load template: {0} (HTTP status: {1} {2})', + throw $templateRequestMinErr('tpload', 'Failed to load template: {0} (HTTP status: {1} {2})', tpl, resp.status, resp.statusText); } return $q.reject(resp); @@ -17833,8 +19135,8 @@ function $TimeoutProvider() { * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise * will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block. * @param {...*=} Pass additional parameters to the executed function. - * @returns {Promise} Promise that will be resolved when the timeout is reached. The value this - * promise will be resolved with is the return value of the `fn` function. + * @returns {Promise} Promise that will be resolved when the timeout is reached. The promise + * will be resolved with the return value of the `fn` function. * */ function timeout(fn, delay, invokeApply) { @@ -17903,7 +19205,7 @@ function $TimeoutProvider() { // doesn't know about mocked locations and resolves URLs to the real document - which is // exactly the behavior needed here. There is little value is mocking these out for this // service. -var urlParsingNode = document.createElement("a"); +var urlParsingNode = window.document.createElement("a"); var originUrl = urlResolve(window.location.href); @@ -18510,6 +19812,10 @@ function getTypeForFilter(val) { return (val === null) ? 'null' : typeof val; } +var MAX_DIGITS = 22; +var DECIMAL_SEP = '.'; +var ZERO_CHAR = '0'; + /** * @ngdoc filter * @name currency @@ -18591,7 +19897,7 @@ function currencyFilter($locale) { * Formats a number as text. * * If the input is null or undefined, it will just be returned. - * If the input is infinite (Infinity/-Infinity) the Infinity symbol '∞' is returned. + * If the input is infinite (Infinity or -Infinity), the Infinity symbol '∞' or '-∞' is returned, respectively. * If the input is not a number an empty string is returned. * * @@ -18599,7 +19905,9 @@ function currencyFilter($locale) { * @param {(number|string)=} fractionSize Number of decimal places to round the number to. * If this is not provided then the fraction size is computed from the current locale's number * formatting pattern. In the case of the default locale, it will be 3. - * @returns {string} Number rounded to decimalPlaces and places a “,” after each third digit. + * @returns {string} Number rounded to `fractionSize` appropriately formatted based on the current + * locale (e.g., in the en_US locale it will have "." as the decimal separator and + * include "," group separators after each third digit). * * @example @@ -18634,8 +19942,6 @@ function currencyFilter($locale) { */ - - numberFilter.$inject = ['$locale']; function numberFilter($locale) { var formats = $locale.NUMBER_FORMATS; @@ -18649,103 +19955,227 @@ function numberFilter($locale) { }; } -var DECIMAL_SEP = '.'; -function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) { - if (isObject(number)) return ''; +/** + * Parse a number (as a string) into three components that can be used + * for formatting the number. + * + * (Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/) + * + * @param {string} numStr The number to parse + * @return {object} An object describing this number, containing the following keys: + * - d : an array of digits containing leading zeros as necessary + * - i : the number of the digits in `d` that are to the left of the decimal point + * - e : the exponent for numbers that would need more than `MAX_DIGITS` digits in `d` + * + */ +function parse(numStr) { + var exponent = 0, digits, numberOfIntegerDigits; + var i, j, zeros; - var isNegative = number < 0; - number = Math.abs(number); - - var isInfinity = number === Infinity; - if (!isInfinity && !isFinite(number)) return ''; - - var numStr = number + '', - formatedText = '', - hasExponent = false, - parts = []; - - if (isInfinity) formatedText = '\u221e'; - - if (!isInfinity && numStr.indexOf('e') !== -1) { - var match = numStr.match(/([\d\.]+)e(-?)(\d+)/); - if (match && match[2] == '-' && match[3] > fractionSize + 1) { - number = 0; - } else { - formatedText = numStr; - hasExponent = true; - } + // Decimal point? + if ((numberOfIntegerDigits = numStr.indexOf(DECIMAL_SEP)) > -1) { + numStr = numStr.replace(DECIMAL_SEP, ''); } - if (!isInfinity && !hasExponent) { - var fractionLen = (numStr.split(DECIMAL_SEP)[1] || '').length; + // Exponential form? + if ((i = numStr.search(/e/i)) > 0) { + // Work out the exponent. + if (numberOfIntegerDigits < 0) numberOfIntegerDigits = i; + numberOfIntegerDigits += +numStr.slice(i + 1); + numStr = numStr.substring(0, i); + } else if (numberOfIntegerDigits < 0) { + // There was no decimal point or exponent so it is an integer. + numberOfIntegerDigits = numStr.length; + } - // determine fractionSize if it is not specified - if (isUndefined(fractionSize)) { - fractionSize = Math.min(Math.max(pattern.minFrac, fractionLen), pattern.maxFrac); - } + // Count the number of leading zeros. + for (i = 0; numStr.charAt(i) == ZERO_CHAR; i++) {/* jshint noempty: false */} - // safely round numbers in JS without hitting imprecisions of floating-point arithmetics - // inspired by: - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round - number = +(Math.round(+(number.toString() + 'e' + fractionSize)).toString() + 'e' + -fractionSize); - - var fraction = ('' + number).split(DECIMAL_SEP); - var whole = fraction[0]; - fraction = fraction[1] || ''; - - var i, pos = 0, - lgroup = pattern.lgSize, - group = pattern.gSize; - - if (whole.length >= (lgroup + group)) { - pos = whole.length - lgroup; - for (i = 0; i < pos; i++) { - if ((pos - i) % group === 0 && i !== 0) { - formatedText += groupSep; - } - formatedText += whole.charAt(i); - } - } - - for (i = pos; i < whole.length; i++) { - if ((whole.length - i) % lgroup === 0 && i !== 0) { - formatedText += groupSep; - } - formatedText += whole.charAt(i); - } - - // format fraction part. - while (fraction.length < fractionSize) { - fraction += '0'; - } - - if (fractionSize && fractionSize !== "0") formatedText += decimalSep + fraction.substr(0, fractionSize); + if (i == (zeros = numStr.length)) { + // The digits are all zero. + digits = [0]; + numberOfIntegerDigits = 1; } else { - if (fractionSize > 0 && number < 1) { - formatedText = number.toFixed(fractionSize); - number = parseFloat(formatedText); - formatedText = formatedText.replace(DECIMAL_SEP, decimalSep); + // Count the number of trailing zeros + zeros--; + while (numStr.charAt(zeros) == ZERO_CHAR) zeros--; + + // Trailing zeros are insignificant so ignore them + numberOfIntegerDigits -= i; + digits = []; + // Convert string to array of digits without leading/trailing zeros. + for (j = 0; i <= zeros; i++, j++) { + digits[j] = +numStr.charAt(i); } } - if (number === 0) { - isNegative = false; + // If the number overflows the maximum allowed digits then use an exponent. + if (numberOfIntegerDigits > MAX_DIGITS) { + digits = digits.splice(0, MAX_DIGITS - 1); + exponent = numberOfIntegerDigits - 1; + numberOfIntegerDigits = 1; } - parts.push(isNegative ? pattern.negPre : pattern.posPre, - formatedText, - isNegative ? pattern.negSuf : pattern.posSuf); - return parts.join(''); + return { d: digits, e: exponent, i: numberOfIntegerDigits }; } -function padNumber(num, digits, trim) { +/** + * Round the parsed number to the specified number of decimal places + * This function changed the parsedNumber in-place + */ +function roundNumber(parsedNumber, fractionSize, minFrac, maxFrac) { + var digits = parsedNumber.d; + var fractionLen = digits.length - parsedNumber.i; + + // determine fractionSize if it is not specified; `+fractionSize` converts it to a number + fractionSize = (isUndefined(fractionSize)) ? Math.min(Math.max(minFrac, fractionLen), maxFrac) : +fractionSize; + + // The index of the digit to where rounding is to occur + var roundAt = fractionSize + parsedNumber.i; + var digit = digits[roundAt]; + + if (roundAt > 0) { + // Drop fractional digits beyond `roundAt` + digits.splice(Math.max(parsedNumber.i, roundAt)); + + // Set non-fractional digits beyond `roundAt` to 0 + for (var j = roundAt; j < digits.length; j++) { + digits[j] = 0; + } + } else { + // We rounded to zero so reset the parsedNumber + fractionLen = Math.max(0, fractionLen); + parsedNumber.i = 1; + digits.length = Math.max(1, roundAt = fractionSize + 1); + digits[0] = 0; + for (var i = 1; i < roundAt; i++) digits[i] = 0; + } + + if (digit >= 5) { + if (roundAt - 1 < 0) { + for (var k = 0; k > roundAt; k--) { + digits.unshift(0); + parsedNumber.i++; + } + digits.unshift(1); + parsedNumber.i++; + } else { + digits[roundAt - 1]++; + } + } + + // Pad out with zeros to get the required fraction length + for (; fractionLen < Math.max(0, fractionSize); fractionLen++) digits.push(0); + + + // Do any carrying, e.g. a digit was rounded up to 10 + var carry = digits.reduceRight(function(carry, d, i, digits) { + d = d + carry; + digits[i] = d % 10; + return Math.floor(d / 10); + }, 0); + if (carry) { + digits.unshift(carry); + parsedNumber.i++; + } +} + +/** + * Format a number into a string + * @param {number} number The number to format + * @param {{ + * minFrac, // the minimum number of digits required in the fraction part of the number + * maxFrac, // the maximum number of digits required in the fraction part of the number + * gSize, // number of digits in each group of separated digits + * lgSize, // number of digits in the last group of digits before the decimal separator + * negPre, // the string to go in front of a negative number (e.g. `-` or `(`)) + * posPre, // the string to go in front of a positive number + * negSuf, // the string to go after a negative number (e.g. `)`) + * posSuf // the string to go after a positive number + * }} pattern + * @param {string} groupSep The string to separate groups of number (e.g. `,`) + * @param {string} decimalSep The string to act as the decimal separator (e.g. `.`) + * @param {[type]} fractionSize The size of the fractional part of the number + * @return {string} The number formatted as a string + */ +function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) { + + if (!(isString(number) || isNumber(number)) || isNaN(number)) return ''; + + var isInfinity = !isFinite(number); + var isZero = false; + var numStr = Math.abs(number) + '', + formattedText = '', + parsedNumber; + + if (isInfinity) { + formattedText = '\u221e'; + } else { + parsedNumber = parse(numStr); + + roundNumber(parsedNumber, fractionSize, pattern.minFrac, pattern.maxFrac); + + var digits = parsedNumber.d; + var integerLen = parsedNumber.i; + var exponent = parsedNumber.e; + var decimals = []; + isZero = digits.reduce(function(isZero, d) { return isZero && !d; }, true); + + // pad zeros for small numbers + while (integerLen < 0) { + digits.unshift(0); + integerLen++; + } + + // extract decimals digits + if (integerLen > 0) { + decimals = digits.splice(integerLen); + } else { + decimals = digits; + digits = [0]; + } + + // format the integer digits with grouping separators + var groups = []; + if (digits.length >= pattern.lgSize) { + groups.unshift(digits.splice(-pattern.lgSize).join('')); + } + while (digits.length > pattern.gSize) { + groups.unshift(digits.splice(-pattern.gSize).join('')); + } + if (digits.length) { + groups.unshift(digits.join('')); + } + formattedText = groups.join(groupSep); + + // append the decimal digits + if (decimals.length) { + formattedText += decimalSep + decimals.join(''); + } + + if (exponent) { + formattedText += 'e+' + exponent; + } + } + if (number < 0 && !isZero) { + return pattern.negPre + formattedText + pattern.negSuf; + } else { + return pattern.posPre + formattedText + pattern.posSuf; + } +} + +function padNumber(num, digits, trim, negWrap) { var neg = ''; - if (num < 0) { - neg = '-'; - num = -num; + if (num < 0 || (negWrap && num <= 0)) { + if (negWrap) { + num = -num + 1; + } else { + num = -num; + neg = '-'; + } } num = '' + num; - while (num.length < digits) num = '0' + num; + while (num.length < digits) num = ZERO_CHAR + num; if (trim) { num = num.substr(num.length - digits); } @@ -18753,7 +20183,7 @@ function padNumber(num, digits, trim) { } -function dateGetter(name, size, offset, trim) { +function dateGetter(name, size, offset, trim, negWrap) { offset = offset || 0; return function(date) { var value = date['get' + name](); @@ -18761,14 +20191,15 @@ function dateGetter(name, size, offset, trim) { value += offset; } if (value === 0 && offset == -12) value = 12; - return padNumber(value, size, trim); + return padNumber(value, size, trim, negWrap); }; } -function dateStrGetter(name, shortForm) { +function dateStrGetter(name, shortForm, standAlone) { return function(date, formats) { var value = date['get' + name](); - var get = uppercase(shortForm ? ('SHORT' + name) : name); + var propPrefix = (standAlone ? 'STANDALONE' : '') + (shortForm ? 'SHORT' : ''); + var get = uppercase(propPrefix + name); return formats[get][value]; }; @@ -18823,13 +20254,14 @@ function longEraGetter(date, formats) { } var DATE_FORMATS = { - yyyy: dateGetter('FullYear', 4), - yy: dateGetter('FullYear', 2, 0, true), - y: dateGetter('FullYear', 1), + yyyy: dateGetter('FullYear', 4, 0, false, true), + yy: dateGetter('FullYear', 2, 0, true, true), + y: dateGetter('FullYear', 1, 0, false, true), MMMM: dateStrGetter('Month'), MMM: dateStrGetter('Month', true), MM: dateGetter('Month', 2, 1), M: dateGetter('Month', 1, 1), + LLLL: dateStrGetter('Month', false, true), dd: dateGetter('Date', 2), d: dateGetter('Date', 1), HH: dateGetter('Hours', 2), @@ -18855,7 +20287,7 @@ var DATE_FORMATS = { GGGG: longEraGetter }; -var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/, +var DATE_FORMATS_SPLIT = /((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/, NUMBER_STRING = /^\-?\d+$/; /** @@ -18875,6 +20307,7 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+| * * `'MMM'`: Month in year (Jan-Dec) * * `'MM'`: Month in year, padded (01-12) * * `'M'`: Month in year (1-12) + * * `'LLLL'`: Stand-alone month in year (January-December) * * `'dd'`: Day in month, padded (01-31) * * `'d'`: Day in month (1-31) * * `'EEEE'`: Day in Week,(Sunday-Saturday) @@ -19014,13 +20447,13 @@ function dateFilter($locale) { var dateTimezoneOffset = date.getTimezoneOffset(); if (timezone) { - dateTimezoneOffset = timezoneToOffset(timezone, date.getTimezoneOffset()); + dateTimezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset); date = convertTimezoneToLocal(date, timezone, true); } forEach(parts, function(value) { fn = DATE_FORMATS[value]; text += fn ? fn(date, $locale.DATETIME_FORMATS, dateTimezoneOffset) - : value.replace(/(^'|'$)/g, '').replace(/''/g, "'"); + : value === "''" ? "'" : value.replace(/(^'|'$)/g, '').replace(/''/g, "'"); }); return text; @@ -19201,7 +20634,7 @@ function limitToFilter() { if (!isArray(input) && !isString(input)) return input; begin = (!begin || isNaN(begin)) ? 0 : toInt(begin); - begin = (begin < 0 && begin >= -input.length) ? input.length + begin : begin; + begin = (begin < 0) ? Math.max(0, input.length + begin) : begin; if (limit >= 0) { return input.slice(begin, begin + limit); @@ -19224,8 +20657,9 @@ function limitToFilter() { * Orders a specified `array` by the `expression` predicate. It is ordered alphabetically * for strings and numerically for numbers. Note: if you notice numbers are not being sorted * as expected, make sure they are actually being saved as numbers and not strings. + * Array-like values (e.g. NodeLists, jQuery objects, TypedArrays, Strings, etc) are also supported. * - * @param {Array} array The array to sort. + * @param {Array} array The array (or array-like object) to sort. * @param {function(*)|string|Array.<(function(*)|string)>=} expression A predicate to be * used by the comparator to determine the order of elements. * @@ -19256,17 +20690,6 @@ function limitToFilter() { * `reverse` is not set, which means it defaults to `false`. -
@@ -19282,6 +20705,17 @@ function limitToFilter() {
+ + angular.module('orderByExample', []) + .controller('ExampleController', ['$scope', function($scope) { + $scope.friends = + [{name:'John', phone:'555-1212', age:10}, + {name:'Mary', phone:'555-9876', age:19}, + {name:'Mike', phone:'555-4321', age:21}, + {name:'Adam', phone:'555-5678', age:35}, + {name:'Julie', phone:'555-8765', age:29}]; + }]); +
* * The predicate and reverse parameters can be controlled dynamically through scope properties, @@ -19289,49 +20723,24 @@ function limitToFilter() { * @example - -
Sorting predicate = {{predicate}}; reverse = {{reverse}}

- [ unsorted ] + - - - + + + @@ -19341,6 +20750,31 @@ function limitToFilter() {
- Name - - - Phone Number - - - Age - - + + + + + + + + +
{{friend.name}}
+ + angular.module('orderByExample', []) + .controller('ExampleController', ['$scope', function($scope) { + $scope.friends = + [{name:'John', phone:'555-1212', age:10}, + {name:'Mary', phone:'555-9876', age:19}, + {name:'Mike', phone:'555-4321', age:21}, + {name:'Adam', phone:'555-5678', age:35}, + {name:'Julie', phone:'555-8765', age:29}]; + $scope.predicate = 'age'; + $scope.reverse = true; + $scope.order = function(predicate) { + $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false; + $scope.predicate = predicate; + }; + }]); + + + .sortorder:after { + content: '\25b2'; + } + .sortorder.reverse:after { + content: '\25bc'; + } +
* * It's also possible to call the orderBy filter manually, by injecting `$filter`, retrieving the @@ -19352,21 +20786,30 @@ function limitToFilter() { * @example -
- - - - - - - - - - - -
Name - (^)Phone NumberAge
{{friend.name}}{{friend.phone}}{{friend.age}}
-
+
+
Sorting predicate = {{predicate}}; reverse = {{reverse}}
+ + + + + + + + + + + +
+ + + + + + + + +
{{friend.name}}{{friend.phone}}{{friend.age}}
+
@@ -19380,19 +20823,33 @@ function limitToFilter() { { name: 'Adam', phone: '555-5678', age: 35 }, { name: 'Julie', phone: '555-8765', age: 29 } ]; - $scope.order = function(predicate, reverse) { - $scope.friends = orderBy($scope.friends, predicate, reverse); + $scope.order = function(predicate) { + $scope.predicate = predicate; + $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false; + $scope.friends = orderBy($scope.friends, predicate, $scope.reverse); }; - $scope.order('-age',false); + $scope.order('age', true); }]); + + + .sortorder:after { + content: '\25b2'; + } + .sortorder.reverse:after { + content: '\25bc'; + } +
*/ orderByFilter.$inject = ['$parse']; function orderByFilter($parse) { return function(array, sortPredicate, reverseOrder) { - if (!(isArrayLike(array))) return array; + if (array == null) return array; + if (!isArrayLike(array)) { + throw minErr('orderBy')('notarray', 'Expected array but received: {0}', array); + } if (!isArray(sortPredicate)) { sortPredicate = [sortPredicate]; } if (sortPredicate.length === 0) { sortPredicate = ['+']; } @@ -19715,20 +21172,7 @@ var htmlAnchorDirective = valueFn({ * {@link guide/expression expression} inside `ngDisabled` evaluates to truthy. * * A special directive is necessary because we cannot use interpolation inside the `disabled` - * attribute. The following example would make the button enabled on Chrome/Firefox - * but not on older IEs: - * - * ```html - * - *
- * - *
- * ``` - * - * This is because the HTML specification does not require browsers to preserve the values of - * boolean attributes such as `disabled` (Their presence means true and their absence means false.) - * If we put an Angular interpolation expression into such an attribute then the - * binding information would be lost when the browser removes the attribute. + * attribute. See the {@link guide/interpolation interpolation guide} for more info. * * @example @@ -19763,15 +21207,9 @@ var htmlAnchorDirective = valueFn({ * Note that this directive should not be used together with {@link ngModel `ngModel`}, * as this can lead to unexpected behavior. * - * ### Why do we need `ngChecked`? + * A special directive is necessary because we cannot use interpolation inside the `checked` + * attribute. See the {@link guide/interpolation interpolation guide} for more info. * - * The HTML specification does not require browsers to preserve the values of boolean attributes - * such as checked. (Their presence means true and their absence means false.) - * If we put an Angular interpolation expression into such an attribute then the - * binding information would be lost when the browser removes the attribute. - * The `ngChecked` directive solves this problem for the `checked` attribute. - * This complementary directive is not removed by the browser and so provides - * a permanent reliable place to store the binding information. * @example @@ -19800,13 +21238,12 @@ var htmlAnchorDirective = valueFn({ * @priority 100 * * @description - * The HTML specification does not require browsers to preserve the values of boolean attributes - * such as readonly. (Their presence means true and their absence means false.) - * If we put an Angular interpolation expression into such an attribute then the - * binding information would be lost when the browser removes the attribute. - * The `ngReadonly` directive solves this problem for the `readonly` attribute. - * This complementary directive is not removed by the browser and so provides - * a permanent reliable place to store the binding information. + * + * Sets the `readOnly` attribute on the element, if the expression inside `ngReadonly` is truthy. + * + * A special directive is necessary because we cannot use interpolation inside the `readOnly` + * attribute. See the {@link guide/interpolation interpolation guide} for more info. + * * @example @@ -19835,13 +21272,11 @@ var htmlAnchorDirective = valueFn({ * @priority 100 * * @description - * The HTML specification does not require browsers to preserve the values of boolean attributes - * such as selected. (Their presence means true and their absence means false.) - * If we put an Angular interpolation expression into such an attribute then the - * binding information would be lost when the browser removes the attribute. - * The `ngSelected` directive solves this problem for the `selected` attribute. - * This complementary directive is not removed by the browser and so provides - * a permanent reliable place to store the binding information. + * + * Sets the `selected` attribute on the element, if the expression inside `ngSelected` is truthy. + * + * A special directive is necessary because we cannot use interpolation inside the `selected` + * attribute. See the {@link guide/interpolation interpolation guide} for more info. * * @example @@ -19873,13 +21308,12 @@ var htmlAnchorDirective = valueFn({ * @priority 100 * * @description - * The HTML specification does not require browsers to preserve the values of boolean attributes - * such as open. (Their presence means true and their absence means false.) - * If we put an Angular interpolation expression into such an attribute then the - * binding information would be lost when the browser removes the attribute. - * The `ngOpen` directive solves this problem for the `open` attribute. - * This complementary directive is not removed by the browser and so provides - * a permanent reliable place to store the binding information. + * + * Sets the `open` attribute on the element, if the expression inside `ngOpen` is truthy. + * + * A special directive is necessary because we cannot use interpolation inside the `open` + * attribute. See the {@link guide/interpolation interpolation guide} for more info. + * * @example @@ -20125,7 +21559,7 @@ function FormController(element, attrs, $scope, $animate, $interpolate) { * * However, if the method is used programmatically, for example by adding dynamically created controls, * or controls that have been previously removed without destroying their corresponding DOM element, - * it's the developers responsiblity to make sure the current state propagates to the parent form. + * it's the developers responsibility to make sure the current state propagates to the parent form. * * For example, if an input control is added that is already `$dirty` and has `$error` properties, * calling `$setDirty()` and `$validate()` afterwards will propagate the state to the parent form. @@ -20335,13 +21769,9 @@ function FormController(element, attrs, $scope, $animate, $interpolate) { * * In Angular, forms can be nested. This means that the outer form is valid when all of the child * forms are valid as well. However, browsers do not allow nesting of `
` elements, so - * Angular provides the {@link ng.directive:ngForm `ngForm`} directive which behaves identically to - * `` but can be nested. This allows you to have nested forms, which is very useful when - * using Angular validation directives in forms that are dynamically generated using the - * {@link ng.directive:ngRepeat `ngRepeat`} directive. Since you cannot dynamically generate the `name` - * attribute of input elements using interpolation, you have to wrap each set of repeated inputs in an - * `ngForm` directive and nest these in an outer `form` element. - * + * Angular provides the {@link ng.directive:ngForm `ngForm`} directive, which behaves identically to + * `form` but can be nested. Nested forms can be useful, for example, if the validity of a sub-group + * of controls needs to be determined. * * # CSS classes * - `ng-valid` is set if the form is valid. @@ -20559,17 +21989,35 @@ var ngFormDirective = formDirectiveFactory(true); ngModelMinErr: false, */ -// Regex code is obtained from SO: https://stackoverflow.com/questions/3143070/javascript-regex-iso-datetime#answer-3143231 -var ISO_DATE_REGEXP = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/; -var URL_REGEXP = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/; +// Regex code was initially obtained from SO prior to modification: https://stackoverflow.com/questions/3143070/javascript-regex-iso-datetime#answer-3143231 +var ISO_DATE_REGEXP = /^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/; +// See valid URLs in RFC3987 (http://tools.ietf.org/html/rfc3987) +// Note: We are being more lenient, because browsers are too. +// 1. Scheme +// 2. Slashes +// 3. Username +// 4. Password +// 5. Hostname +// 6. Port +// 7. Path +// 8. Query +// 9. Fragment +// 1111111111111111 222 333333 44444 555555555555555555555555 666 77777777 8888888 999 +var URL_REGEXP = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i; var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i; var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/; -var DATE_REGEXP = /^(\d{4})-(\d{2})-(\d{2})$/; -var DATETIMELOCAL_REGEXP = /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/; -var WEEK_REGEXP = /^(\d{4})-W(\d\d)$/; -var MONTH_REGEXP = /^(\d{4})-(\d\d)$/; +var DATE_REGEXP = /^(\d{4,})-(\d{2})-(\d{2})$/; +var DATETIMELOCAL_REGEXP = /^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/; +var WEEK_REGEXP = /^(\d{4,})-W(\d\d)$/; +var MONTH_REGEXP = /^(\d{4,})-(\d\d)$/; var TIME_REGEXP = /^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/; +var PARTIAL_VALIDATION_EVENTS = 'keydown wheel mousedown'; +var PARTIAL_VALIDATION_TYPES = createMap(); +forEach('date,datetime-local,month,time,week'.split(','), function(type) { + PARTIAL_VALIDATION_TYPES[type] = true; +}); + var inputType = { /** @@ -20594,8 +22042,8 @@ var inputType = { * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string * that contains the regular expression body that will be converted to a regular expression * as in the ngPattern directive. - * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match - * a RegExp found by evaluating the Angular expression given in the attribute value. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue} + * does not match a RegExp found by evaluating the Angular expression given in the attribute value. * If the expression evaluates to a RegExp object, then this is used directly. * If the expression evaluates to a string, then it will be converted to a RegExp * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to @@ -20882,7 +22330,7 @@ var inputType = { * * @description * Input with time validation and transformation. In browsers that do not yet support - * the HTML5 date input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 + * the HTML5 time input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 * local time format (HH:mm:ss), for example: `14:57:00`. Model must be a Date object. This binding will always output a * Date object to the model of January 1, 1970, or local date `new Date(1970, 0, 1, HH, mm, ss)`. * @@ -20925,7 +22373,7 @@ var inputType = { }]); - +
@@ -21229,8 +22677,8 @@ var inputType = { * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string * that contains the regular expression body that will be converted to a regular expression * as in the ngPattern directive. - * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match - * a RegExp found by evaluating the Angular expression given in the attribute value. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue} + * does not match a RegExp found by evaluating the Angular expression given in the attribute value. * If the expression evaluates to a RegExp object, then this is used directly. * If the expression evaluates to a string, then it will be converted to a RegExp * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to @@ -21327,8 +22775,8 @@ var inputType = { * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string * that contains the regular expression body that will be converted to a regular expression * as in the ngPattern directive. - * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match - * a RegExp found by evaluating the Angular expression given in the attribute value. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue} + * does not match a RegExp found by evaluating the Angular expression given in the attribute value. * If the expression evaluates to a RegExp object, then this is used directly. * If the expression evaluates to a string, then it will be converted to a RegExp * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to @@ -21426,8 +22874,8 @@ var inputType = { * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string * that contains the regular expression body that will be converted to a regular expression * as in the ngPattern directive. - * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match - * a RegExp found by evaluating the Angular expression given in the attribute value. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue} + * does not match a RegExp found by evaluating the Angular expression given in the attribute value. * If the expression evaluates to a RegExp object, then this is used directly. * If the expression evaluates to a string, then it will be converted to a RegExp * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to @@ -21646,7 +23094,7 @@ function baseInputType(scope, element, attr, ctrl, $sniffer, $browser) { if (!$sniffer.android) { var composing = false; - element.on('compositionstart', function(data) { + element.on('compositionstart', function() { composing = true; }); @@ -21656,6 +23104,8 @@ function baseInputType(scope, element, attr, ctrl, $sniffer, $browser) { }); } + var timeout; + var listener = function(ev) { if (timeout) { $browser.defer.cancel(timeout); @@ -21685,8 +23135,6 @@ function baseInputType(scope, element, attr, ctrl, $sniffer, $browser) { if ($sniffer.hasEvent('input')) { element.on('input', listener); } else { - var timeout; - var deferListener = function(ev, input, origValue) { if (!timeout) { timeout = $browser.defer(function() { @@ -21718,6 +23166,26 @@ function baseInputType(scope, element, attr, ctrl, $sniffer, $browser) { // or form autocomplete on newer browser, we need "change" event to catch it element.on('change', listener); + // Some native input types (date-family) have the ability to change validity without + // firing any input/change events. + // For these event types, when native validators are present and the browser supports the type, + // check for validity changes on various DOM events. + if (PARTIAL_VALIDATION_TYPES[type] && ctrl.$$hasNativeValidators && type === attr.type) { + element.on(PARTIAL_VALIDATION_EVENTS, function(ev) { + if (!timeout) { + var validity = this[VALIDITY_STATE_PROPERTY]; + var origBadInput = validity.badInput; + var origTypeMismatch = validity.typeMismatch; + timeout = $browser.defer(function() { + timeout = null; + if (validity.badInput !== origBadInput || validity.typeMismatch !== origTypeMismatch) { + listener(ev); + } + }); + } + }); + } + ctrl.$render = function() { // Workaround for Firefox validation #12102. var value = ctrl.$isEmpty(ctrl.$viewValue) ? '' : ctrl.$viewValue; @@ -21887,11 +23355,7 @@ function badInputChecker(scope, element, attr, ctrl) { if (nativeValidation) { ctrl.$parsers.push(function(value) { var validity = element.prop(VALIDITY_STATE_PROPERTY) || {}; - // Detect bug in FF35 for input[email] (https://bugzilla.mozilla.org/show_bug.cgi?id=1064430): - // - also sets validity.badInput (should only be validity.typeMismatch). - // - see http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#e-mail-state-(type=email) - // - can ignore this case as we can still read out the erroneous email... - return validity.badInput && !validity.typeMismatch ? undefined : value; + return validity.badInput || validity.typeMismatch ? undefined : value; }); } } @@ -22063,8 +23527,8 @@ function checkboxInputType(scope, element, attr, ctrl, $sniffer, $browser, $filt * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of any * length. - * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match - * a RegExp found by evaluating the Angular expression given in the attribute value. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue} + * does not match a RegExp found by evaluating the Angular expression given in the attribute value. * If the expression evaluates to a RegExp object, then this is used directly. * If the expression evaluates to a string, then it will be converted to a RegExp * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to @@ -22102,8 +23566,8 @@ function checkboxInputType(scope, element, attr, ctrl, $sniffer, $browser, $filt * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of any * length. - * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match - * a RegExp found by evaluating the Angular expression given in the attribute value. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue} + * value does not match a RegExp found by evaluating the Angular expression given in the attribute value. * If the expression evaluates to a RegExp object, then this is used directly. * If the expression evaluates to a string, then it will be converted to a RegExp * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to @@ -22672,7 +24136,11 @@ function classDirective(name, selector) { updateClasses(oldClasses, newClasses); } } - oldVal = shallowCopy(newVal); + if (isArray(newVal)) { + oldVal = newVal.map(function(v) { return shallowCopy(v); }); + } else { + oldVal = shallowCopy(newVal); + } } } }; @@ -22742,9 +24210,10 @@ function classDirective(name, selector) { * new classes added. * * @animations - * **add** - happens just before the class is applied to the elements - * - * **remove** - happens just before the class is removed from the element + * | Animation | Occurs | + * |----------------------------------|-------------------------------------| + * | {@link ng.$animate#addClass addClass} | just before the class is applied to the element | + * | {@link ng.$animate#removeClass removeClass} | just before the class is removed from the element | * * @element ANY * @param {expression} ngClass {@link guide/expression Expression} to eval. The result @@ -23329,7 +24798,7 @@ var ngControllerDirective = [function() { * * * no-inline-style: this stops Angular from injecting CSS styles into the DOM * - * * no-unsafe-eval: this stops Angular from optimising $parse with unsafe eval of strings + * * no-unsafe-eval: this stops Angular from optimizing $parse with unsafe eval of strings * * You can use these values in the following combinations: * @@ -23346,7 +24815,7 @@ var ngControllerDirective = [function() { * inline styles. E.g. ``. * * * Specifying only `no-inline-style` tells Angular that we must not inject styles, but that we can - * run eval - no automcatic check for unsafe eval will occur. E.g. `` + * run eval - no automatic check for unsafe eval will occur. E.g. `` * * * Specifying both `no-unsafe-eval` and `no-inline-style` tells Angular that we must not inject * styles nor use eval, which is the same as an empty: ng-csp. @@ -24003,8 +25472,10 @@ forEach( * and `leave` effects. * * @animations - * enter - happens just after the `ngIf` contents change and a new DOM element is created and injected into the `ngIf` container - * leave - happens just before the `ngIf` contents are removed from the DOM + * | Animation | Occurs | + * |----------------------------------|-------------------------------------| + * | {@link ng.$animate#enter enter} | just after the `ngIf` contents change and a new DOM element is created and injected into the `ngIf` container | + * | {@link ng.$animate#leave leave} | just before the `ngIf` contents are removed from the DOM | * * @element ANY * @scope @@ -24045,7 +25516,7 @@ forEach( */ -var ngIfDirective = ['$animate', function($animate) { +var ngIfDirective = ['$animate', '$compile', function($animate, $compile) { return { multiElement: true, transclude: 'element', @@ -24061,7 +25532,7 @@ var ngIfDirective = ['$animate', function($animate) { if (!childScope) { $transclude(function(clone, newScope) { childScope = newScope; - clone[clone.length++] = document.createComment(' end ngIf: ' + $attr.ngIf + ' '); + clone[clone.length++] = $compile.$$createComment('end ngIf', $attr.ngIf); // Note: We only need the first/last node of the cloned nodes. // However, we need to keep the reference to the jqlite wrapper as it might be changed later // by a directive with templateUrl when its template arrives. @@ -24116,8 +25587,10 @@ var ngIfDirective = ['$animate', function($animate) { * access on some browsers. * * @animations - * enter - animation is used to bring new content into the browser. - * leave - animation is used to animate existing content away. + * | Animation | Occurs | + * |----------------------------------|-------------------------------------| + * | {@link ng.$animate#enter enter} | when the expression changes, on the new include | + * | {@link ng.$animate#leave leave} | when the expression changes, on the old include | * * The enter and leave animation occur concurrently. * @@ -24127,7 +25600,13 @@ var ngIfDirective = ['$animate', function($animate) { * @param {string} ngInclude|src angular expression evaluating to URL. If the source is a string constant, * make sure you wrap it in **single** quotes, e.g. `src="'myPartialTemplate.html'"`. * @param {string=} onload Expression to evaluate when a new partial is loaded. - * + *
+ * **Note:** When using onload on SVG elements in IE11, the browser will try to call + * a function with the name on the window element, which will usually throw a + * "function is undefined" error. To fix this, you can instead use `data-onload` or a + * different form that {@link guide/directive#normalization matches} `onload`. + *
+ * * @param {string=} autoscroll Whether `ngInclude` should call {@link ng.$anchorScroll * $anchorScroll} to scroll the viewport after the content is loaded. * @@ -24319,6 +25798,8 @@ var ngIncludeDirective = ['$templateRequest', '$anchorScroll', '$animate', //set the 2nd param to true to ignore the template request error so that the inner //contents and scope can be cleaned up. $templateRequest(src, true).then(function(response) { + if (scope.$$destroyed) return; + if (thisChangeId !== changeCounter) return; var newScope = scope.$new(); ctrl.template = response; @@ -24340,6 +25821,8 @@ var ngIncludeDirective = ['$templateRequest', '$anchorScroll', '$animate', currentScope.$emit('$includeContentLoaded', src); scope.$eval(onloadExp); }, function() { + if (scope.$$destroyed) return; + if (thisChangeId === changeCounter) { cleanupLastIncludeContent(); scope.$emit('$includeContentError', src); @@ -24368,12 +25851,12 @@ var ngIncludeFillContentDirective = ['$compile', priority: -400, require: 'ngInclude', link: function(scope, $element, $attr, ctrl) { - if (/SVG/.test($element[0].toString())) { + if (toString.call($element[0]).match(/SVG/)) { // WebKit: https://bugs.webkit.org/show_bug.cgi?id=135698 --- SVG elements do not // support innerHTML, so detect this here and try to generate the contents // specially. $element.empty(); - $compile(jqLiteBuildFragment(ctrl.template, document).childNodes)(scope, + $compile(jqLiteBuildFragment(ctrl.template, window.document).childNodes)(scope, function namespaceAdaptedClone(clone) { $element.append(clone); }, {futureParentElement: $element}); @@ -24597,7 +26080,9 @@ var VALID_CLASS = 'ng-valid', DIRTY_CLASS = 'ng-dirty', UNTOUCHED_CLASS = 'ng-untouched', TOUCHED_CLASS = 'ng-touched', - PENDING_CLASS = 'ng-pending'; + PENDING_CLASS = 'ng-pending', + EMPTY_CLASS = 'ng-empty', + NOT_EMPTY_CLASS = 'ng-not-empty'; var ngModelMinErr = minErr('ngModel'); @@ -24846,9 +26331,9 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$ }; ngModelSet = function($scope, newValue) { if (isFunction(parsedNgModel($scope))) { - invokeModelSetter($scope, {$$$p: ctrl.$modelValue}); + invokeModelSetter($scope, {$$$p: newValue}); } else { - parsedNgModelAssign($scope, ctrl.$modelValue); + parsedNgModelAssign($scope, newValue); } }; } else if (!parsedNgModel.assign) { @@ -24873,7 +26358,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$ * the `$viewValue` are different from last time. * * Since `ng-model` does not do a deep watch, `$render()` is only invoked if the values of - * `$modelValue` and `$viewValue` are actually different from their previous value. If `$modelValue` + * `$modelValue` and `$viewValue` are actually different from their previous values. If `$modelValue` * or `$viewValue` are objects (rather than a string or number) then `$render()` will not be * invoked if you only change a property on the objects. */ @@ -24901,6 +26386,17 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$ return isUndefined(value) || value === '' || value === null || value !== value; }; + this.$$updateEmptyClasses = function(value) { + if (ctrl.$isEmpty(value)) { + $animate.removeClass($element, NOT_EMPTY_CLASS); + $animate.addClass($element, EMPTY_CLASS); + } else { + $animate.removeClass($element, EMPTY_CLASS); + $animate.addClass($element, NOT_EMPTY_CLASS); + } + }; + + var currentValidationRunId = 0; /** @@ -25018,11 +26514,14 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$ * which may be caused by a pending debounced event or because the input is waiting for a some * future event. * - * If you have an input that uses `ng-model-options` to set up debounced events or events such - * as blur you can have a situation where there is a period when the `$viewValue` - * is out of synch with the ngModel's `$modelValue`. + * If you have an input that uses `ng-model-options` to set up debounced updates or updates that + * depend on special events such as blur, you can have a situation where there is a period when + * the `$viewValue` is out of sync with the ngModel's `$modelValue`. * - * In this case, you can run into difficulties if you try to update the ngModel's `$modelValue` + * In this case, you can use `$rollbackViewValue()` to manually cancel the debounced / future update + * and reset the input to the last committed view value. + * + * It is also possible that you run into difficulties if you try to update the ngModel's `$modelValue` * programmatically before these debounced/future events have resolved/occurred, because Angular's * dirty checking mechanism is not able to tell whether the model has actually changed or not. * @@ -25035,39 +26534,63 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$ * angular.module('cancel-update-example', []) * * .controller('CancelUpdateController', ['$scope', function($scope) { - * $scope.resetWithCancel = function(e) { + * $scope.model = {}; + * + * $scope.setEmpty = function(e, value, rollback) { * if (e.keyCode == 27) { - * $scope.myForm.myInput1.$rollbackViewValue(); - * $scope.myValue = ''; - * } - * }; - * $scope.resetWithoutCancel = function(e) { - * if (e.keyCode == 27) { - * $scope.myValue = ''; + * e.preventDefault(); + * if (rollback) { + * $scope.myForm[value].$rollbackViewValue(); + * } + * $scope.model[value] = ''; * } * }; * }]); * * *
- *

Try typing something in each input. See that the model only updates when you - * blur off the input. - *

- *

Now see what happens if you start typing then press the Escape key

+ *

Both of these inputs are only updated if they are blurred. Hitting escape should + * empty them. Follow these steps and observe the difference:

+ *
    + *
  1. Type something in the input. You will see that the model is not yet updated
  2. + *
  3. Press the Escape key. + *
      + *
    1. In the first example, nothing happens, because the model is already '', and no + * update is detected. If you blur the input, the model will be set to the current view. + *
    2. + *
    3. In the second example, the pending update is cancelled, and the input is set back + * to the last committed view value (''). Blurring the input does nothing. + *
    4. + *
    + *
  4. + *
* * - *

With $rollbackViewValue()

- *
- * myValue: "{{ myValue }}" + *
+ *

Without $rollbackViewValue():

+ * + * value1: "{{ model.value1 }}" + *
* - *

Without $rollbackViewValue()

- *
- * myValue: "{{ myValue }}" + *
+ *

With $rollbackViewValue():

+ * + * value2: "{{ model.value2 }}" + *
* *
*
+ + div { + display: table-cell; + } + div:nth-child(1) { + padding-right: 30px; + } + + * */ this.$rollbackViewValue = function() { @@ -25181,13 +26704,13 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$ forEach(ctrl.$asyncValidators, function(validator, name) { var promise = validator(modelValue, viewValue); if (!isPromiseLike(promise)) { - throw ngModelMinErr("$asyncValidators", + throw ngModelMinErr('nopromise', "Expected asynchronous validator to return a promise but got '{0}' instead.", promise); } setValidity(name, undefined); validatorPromises.push(promise.then(function() { setValidity(name, true); - }, function(error) { + }, function() { allValid = false; setValidity(name, false); })); @@ -25237,6 +26760,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$ if (ctrl.$$lastCommittedViewValue === viewValue && (viewValue !== '' || !ctrl.$$hasNativeValidators)) { return; } + ctrl.$$updateEmptyClasses(viewValue); ctrl.$$lastCommittedViewValue = viewValue; // change to dirty @@ -25335,7 +26859,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$ * However, custom controls might also pass objects to this method. In this case, we should make * a copy of the object before passing it to `$setViewValue`. This is because `ngModel` does not * perform a deep watch of objects, it only looks for a change of identity. If you only change - * the property of the object then ngModel will not realise that the object has changed and + * the property of the object then ngModel will not realize that the object has changed and * will not invoke the `$parsers` and `$validators` pipelines. For this reason, you should * not change properties of the copy once it has been passed to `$setViewValue`. * Otherwise you may cause the model value on the scope to change incorrectly. @@ -25419,6 +26943,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$ viewValue = formatters[idx](viewValue); } if (ctrl.$viewValue !== viewValue) { + ctrl.$$updateEmptyClasses(viewValue); ctrl.$viewValue = ctrl.$$lastCommittedViewValue = viewValue; ctrl.$render(); @@ -25449,7 +26974,8 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$ * require. * - Providing validation behavior (i.e. required, number, email, url). * - Keeping the state of the control (valid/invalid, dirty/pristine, touched/untouched, validation errors). - * - Setting related css classes on the element (`ng-valid`, `ng-invalid`, `ng-dirty`, `ng-pristine`, `ng-touched`, `ng-untouched`) including animations. + * - Setting related css classes on the element (`ng-valid`, `ng-invalid`, `ng-dirty`, `ng-pristine`, `ng-touched`, + * `ng-untouched`, `ng-empty`, `ng-not-empty`) including animations. * - Registering the control with its parent {@link ng.directive:form form}. * * Note: `ngModel` will try to bind to the property given by evaluating the expression on the @@ -25477,6 +27003,22 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$ * - {@link ng.directive:select select} * - {@link ng.directive:textarea textarea} * + * # Complex Models (objects or collections) + * + * By default, `ngModel` watches the model by reference, not value. This is important to know when + * binding inputs to models that are objects (e.g. `Date`) or collections (e.g. arrays). If only properties of the + * object or collection change, `ngModel` will not be notified and so the input will not be re-rendered. + * + * The model must be assigned an entirely new object or collection before a re-rendering will occur. + * + * Some directives have options that will cause them to use a custom `$watchCollection` on the model expression + * - for example, `ngOptions` will do so when a `track by` clause is included in the comprehension expression or + * if the select is given the `multiple` attribute. + * + * The `$watchCollection()` method only does a shallow comparison, meaning that changing properties deeper than the + * first level of the object (or only changing the properties of an item in the collection if it's an array) will still + * not trigger a re-rendering of the model. + * * # CSS classes * The following CSS classes are added and removed on the associated input/select/textarea element * depending on the validity of the model. @@ -25490,13 +27032,16 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$ * - `ng-touched`: the control has been blurred * - `ng-untouched`: the control hasn't been blurred * - `ng-pending`: any `$asyncValidators` are unfulfilled + * - `ng-empty`: the view does not contain a value or the value is deemed "empty", as defined + * by the {@link ngModel.NgModelController#$isEmpty} method + * - `ng-not-empty`: the view contains a non-empty value * * Keep in mind that ngAnimate can detect each of these classes when added and removed. * * ## Animation Hooks * * Animations within models are triggered when any of the associated CSS classes are added and removed - * on the input element which is attached to the model. These classes are: `.ng-pristine`, `.ng-dirty`, + * on the input element which is attached to the model. These classes include: `.ng-pristine`, `.ng-dirty`, * `.ng-invalid` and `.ng-valid` as well as any other validations that are performed on the model itself. * The animations that are triggered within ngModel are similar to how they work in ngClass and * animations can be hooked into using CSS transitions, keyframes as well as JS animations. @@ -25639,7 +27184,7 @@ var ngModelDirective = ['$rootScope', function($rootScope) { }); } - element.on('blur', function(ev) { + element.on('blur', function() { if (modelCtrl.$touched) return; if ($rootScope.$$phase) { @@ -25720,12 +27265,13 @@ var DEFAULT_REGEXP = /(\s+|^)default(\s+|$)/;
user.name = 
+
user.data = 
angular.module('optionsExample', []) .controller('ExampleController', ['$scope', function($scope) { - $scope.user = { name: 'say', data: '' }; + $scope.user = { name: 'John', data: '' }; $scope.cancel = function(e) { if (e.keyCode == 27) { @@ -25740,20 +27286,20 @@ var DEFAULT_REGEXP = /(\s+|^)default(\s+|$)/; var other = element(by.model('user.data')); it('should allow custom events', function() { - input.sendKeys(' hello'); + input.sendKeys(' Doe'); input.click(); - expect(model.getText()).toEqual('say'); + expect(model.getText()).toEqual('John'); other.click(); - expect(model.getText()).toEqual('say hello'); + expect(model.getText()).toEqual('John Doe'); }); it('should $rollbackViewValue when model changes', function() { - input.sendKeys(' hello'); - expect(input.getAttribute('value')).toEqual('say hello'); + input.sendKeys(' Doe'); + expect(input.getAttribute('value')).toEqual('John Doe'); input.sendKeys(protractor.Key.ESCAPE); - expect(input.getAttribute('value')).toEqual('say'); + expect(input.getAttribute('value')).toEqual('John'); other.click(); - expect(model.getText()).toEqual('say'); + expect(model.getText()).toEqual('John'); });
@@ -25779,7 +27325,7 @@ var DEFAULT_REGEXP = /(\s+|^)default(\s+|$)/; angular.module('optionsExample', []) .controller('ExampleController', ['$scope', function($scope) { - $scope.user = { name: 'say' }; + $scope.user = { name: 'Igor' }; }]);
@@ -26012,19 +27558,27 @@ var ngOptionsMinErr = minErr('ngOptions'); * * ## Complex Models (objects or collections) * - * **Note:** By default, `ngModel` watches the model by reference, not value. This is important when - * binding any input directive to a model that is an object or a collection. + * By default, `ngModel` watches the model by reference, not value. This is important to know when + * binding the select to a model that is an object or a collection. * - * Since this is a common situation for `ngOptions` the directive additionally watches the model using - * `$watchCollection` when the select has the `multiple` attribute or when there is a `track by` clause in - * the options expression. This allows ngOptions to trigger a re-rendering of the options even if the actual - * object/collection has not changed identity but only a property on the object or an item in the collection - * changes. + * One issue occurs if you want to preselect an option. For example, if you set + * the model to an object that is equal to an object in your collection, `ngOptions` won't be able to set the selection, + * because the objects are not identical. So by default, you should always reference the item in your collection + * for preselections, e.g.: `$scope.selected = $scope.collection[3]`. + * + * Another solution is to use a `track by` clause, because then `ngOptions` will track the identity + * of the item not by reference, but by the result of the `track by` expression. For example, if your + * collection items have an id property, you would `track by item.id`. + * + * A different issue with objects or collections is that ngModel won't detect if an object property or + * a collection item changes. For that reason, `ngOptions` additionally watches the model using + * `$watchCollection`, when the expression contains a `track by` clause or the the select has the `multiple` attribute. + * This allows ngOptions to trigger a re-rendering of the options even if the actual object/collection + * has not changed identity, but only a property on the object or an item in the collection changes. * * Note that `$watchCollection` does a shallow comparison of the properties of the object (or the items in the collection - * if the model is an array). This means that changing a property deeper inside the object/collection that the - * first level will not trigger a re-rendering. - * + * if the model is an array). This means that changing a property deeper than the first level inside the + * object/collection will not trigger a re-rendering. * * ## `select` **`as`** * @@ -26037,17 +27591,13 @@ var ngOptionsMinErr = minErr('ngOptions'); * ### `select` **`as`** and **`track by`** * *
- * Do not use `select` **`as`** and **`track by`** in the same expression. They are not designed to work together. + * Be careful when using `select` **`as`** and **`track by`** in the same expression. *
* - * Consider the following example: - * - * ```html - * - * ``` + * Given this array of items on the $scope: * * ```js - * $scope.values = [{ + * $scope.items = [{ * id: 1, * label: 'aLabel', * subItem: { name: 'aSubItem' } @@ -26056,20 +27606,33 @@ var ngOptionsMinErr = minErr('ngOptions'); * label: 'bLabel', * subItem: { name: 'bSubItem' } * }]; - * - * $scope.selected = { name: 'aSubItem' }; * ``` * - * With the purpose of preserving the selection, the **`track by`** expression is always applied to the element - * of the data source (to `item` in this example). To calculate whether an element is selected, we do the - * following: + * This will work: * - * 1. Apply **`track by`** to the elements in the array. In the example: `[1, 2]` - * 2. Apply **`track by`** to the already selected value in `ngModel`. - * In the example: this is not possible as **`track by`** refers to `item.id`, but the selected - * value from `ngModel` is `{name: 'aSubItem'}`, so the **`track by`** expression is applied to - * a wrong object, the selected element can't be found, ` + * ``` + * ```js + * $scope.selected = $scope.items[0]; + * ``` + * + * but this will not work: + * + * ```html + * + * ``` + * ```js + * $scope.selected = $scope.items[0].subItem; + * ``` + * + * In both examples, the **`track by`** expression is applied successfully to each `item` in the + * `items` array. Because the selected option has been set programmatically in the controller, the + * **`track by`** expression is also applied to the `ngModel` value. In the first example, the + * `ngModel` value is `items[0]` and the **`track by`** expression evaluates to `items[0].id` with + * no issue. In the second example, the `ngModel` value is `items[0].subItem` and the **`track by`** + * expression evaluates to `items[0].subItem.id` (which is undefined). As a result, the model value + * is not matched against any `
* ``` * - * You may use arbitrary expressions in `track by`, including references to custom functions + * You may also use arbitrary expressions in `track by`, including references to custom functions * on the scope: * ```html *
@@ -27034,10 +28567,14 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale, *
* ``` * - * If you are working with objects that have an identifier property, you can track + *
+ * If you are working with objects that have an identifier property, you should track * by the identifier instead of the whole object. Should you reload your data later, `ngRepeat` * will not have to rebuild the DOM elements for items it has already rendered, even if the - * JavaScript objects in the collection have been substituted for new ones: + * JavaScript objects in the collection have been substituted for new ones. For large collections, + * this significantly improves rendering performance. If you don't have a unique identifier, + * `track by $index` can also provide a performance boost. + *
* ```html *
* {{model.name}} @@ -27106,11 +28643,13 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale, * as **data-ng-repeat-start**, **x-ng-repeat-start** and **ng:repeat-start**). * * @animations - * **.enter** - when a new item is added to the list or when an item is revealed after a filter + * | Animation | Occurs | + * |----------------------------------|-------------------------------------| + * | {@link ng.$animate#enter enter} | when a new item is added to the list or when an item is revealed after a filter | + * | {@link ng.$animate#leave leave} | when an item is removed from the list or when an item is filtered out | + * | {@link ng.$animate#move move } | when an adjacent item is filtered out causing a reorder or when the item contents are reordered | * - * **.leave** - when an item is removed from the list or when an item is filtered out - * - * **.move** - when an adjacent item is filtered out causing a reorder or when the item contents are reordered + * See the example below for defining CSS animations with ngRepeat. * * @element ANY * @scope @@ -27164,22 +28703,11 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale, * For example: `item in items | filter : x | orderBy : order | limitTo : limit as results` . * * @example - * This example initializes the scope to a list of names and - * then uses `ngRepeat` to display every person: - + * This example uses `ngRepeat` to display a list of people. A filter is used to restrict the displayed + * results by name. New (entering) and removed (leaving) items are animated. + -
+
I have {{friends.length}} friends. They are:
    @@ -27192,6 +28720,22 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale,
+ + angular.module('ngRepeat', ['ngAnimate']).controller('repeatController', function($scope) { + $scope.friends = [ + {name:'John', age:25, gender:'boy'}, + {name:'Jessie', age:30, gender:'girl'}, + {name:'Johanna', age:28, gender:'girl'}, + {name:'Joy', age:15, gender:'girl'}, + {name:'Mary', age:28, gender:'girl'}, + {name:'Peter', age:95, gender:'boy'}, + {name:'Sebastian', age:50, gender:'boy'}, + {name:'Erika', age:27, gender:'girl'}, + {name:'Patrick', age:40, gender:'boy'}, + {name:'Samantha', age:60, gender:'girl'} + ]; + }); + .example-animate-container { background:white; @@ -27202,7 +28746,7 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale, } .animate-repeat { - line-height:40px; + line-height:30px; list-style:none; box-sizing:border-box; } @@ -27224,7 +28768,7 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale, .animate-repeat.ng-move.ng-move-active, .animate-repeat.ng-enter.ng-enter-active { opacity:1; - max-height:40px; + max-height:30px; } @@ -27251,7 +28795,7 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale, */ -var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { +var ngRepeatDirective = ['$parse', '$animate', '$compile', function($parse, $animate, $compile) { var NG_REMOVED = '$$NG_REMOVED'; var ngRepeatMinErr = minErr('ngRepeat'); @@ -27286,7 +28830,7 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { $$tlb: true, compile: function ngRepeatCompile($element, $attr) { var expression = $attr.ngRepeat; - var ngRepeatEndComment = document.createComment(' end ngRepeat: ' + expression + ' '); + var ngRepeatEndComment = $compile.$$createComment('end ngRepeat', expression); var match = expression.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/); @@ -27450,7 +28994,7 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { if (getBlockStart(block) != nextNode) { // existing item which got moved - $animate.move(getBlockNodes(block.clone), null, jqLite(previousNode)); + $animate.move(getBlockNodes(block.clone), null, previousNode); } previousNode = getBlockEnd(block); updateScope(block.scope, index, valueIdentifier, value, keyIdentifier, key, collectionLength); @@ -27462,8 +29006,7 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { var endNode = ngRepeatEndComment.cloneNode(false); clone[clone.length++] = endNode; - // TODO(perf): support naked previousNode in `enter` to avoid creation of jqLite wrapper? - $animate.enter(clone, null, jqLite(previousNode)); + $animate.enter(clone, null, previousNode); previousNode = endNode; // Note: We only need the first/last node of the cloned nodes. // However, we need to keep the reference to the jqlite wrapper as it might be changed later @@ -27566,12 +29109,14 @@ var NG_HIDE_IN_PROGRESS_CLASS = 'ng-hide-animate'; * .my-element.ng-hide-remove.ng-hide-remove-active { ... } * ``` * - * Keep in mind that, as of AngularJS version 1.3.0-beta.11, there is no need to change the display + * Keep in mind that, as of AngularJS version 1.3, there is no need to change the display * property to block during animation states--ngAnimate will handle the style toggling automatically for you. * * @animations - * addClass: `.ng-hide` - happens after the `ngShow` expression evaluates to a truthy value and the just before contents are set to visible - * removeClass: `.ng-hide` - happens after the `ngShow` expression evaluates to a non truthy value and just before the contents are set to hidden + * | Animation | Occurs | + * |----------------------------------|-------------------------------------| + * | {@link $animate#addClass addClass} `.ng-hide` | after the `ngShow` expression evaluates to a non truthy value and just before the contents are set to hidden | + * | {@link $animate#removeClass removeClass} `.ng-hide` | after the `ngShow` expression evaluates to a truthy value and just before contents are set to visible | * * @element ANY * @param {expression} ngShow If the {@link guide/expression expression} is truthy @@ -27730,12 +29275,15 @@ var ngShowDirective = ['$animate', function($animate) { * .my-element.ng-hide-remove.ng-hide-remove-active { ... } * ``` * - * Keep in mind that, as of AngularJS version 1.3.0-beta.11, there is no need to change the display + * Keep in mind that, as of AngularJS version 1.3, there is no need to change the display * property to block during animation states--ngAnimate will handle the style toggling automatically for you. * * @animations - * removeClass: `.ng-hide` - happens after the `ngHide` expression evaluates to a truthy value and just before the contents are set to hidden - * addClass: `.ng-hide` - happens after the `ngHide` expression evaluates to a non truthy value and just before the contents are set to visible + * | Animation | Occurs | + * |----------------------------------|-------------------------------------| + * | {@link $animate#addClass addClass} `.ng-hide` | after the `ngHide` expression evaluates to a truthy value and just before the contents are set to hidden | + * | {@link $animate#removeClass removeClass} `.ng-hide` | after the `ngHide` expression evaluates to a non truthy value and just before contents are set to visible | + * * * @element ANY * @param {expression} ngHide If the {@link guide/expression expression} is truthy then @@ -27897,8 +29445,10 @@ var ngStyleDirective = ngDirective(function(scope, element, attr) { *
* @animations - * enter - happens after the ngSwitch contents change and the matched child element is placed inside the container - * leave - happens just after the ngSwitch contents change and just before the former contents are removed from the DOM + * | Animation | Occurs | + * |----------------------------------|-------------------------------------| + * | {@link ng.$animate#enter enter} | after the ngSwitch contents change and the matched child element is placed inside the container | + * | {@link ng.$animate#leave leave} | after the ngSwitch contents change and just before the former contents are removed from the DOM | * * @usage * @@ -27997,7 +29547,7 @@ var ngStyleDirective = ngDirective(function(scope, element, attr) {
*/ -var ngSwitchDirective = ['$animate', function($animate) { +var ngSwitchDirective = ['$animate', '$compile', function($animate, $compile) { return { require: 'ngSwitch', @@ -28038,7 +29588,7 @@ var ngSwitchDirective = ['$animate', function($animate) { selectedTransclude.transclude(function(caseElement, selectedScope) { selectedScopes.push(selectedScope); var anchor = selectedTransclude.element; - caseElement[caseElement.length++] = document.createComment(' end ngSwitchWhen: '); + caseElement[caseElement.length++] = $compile.$$createComment('end ngSwitchWhen'); var block = { clone: caseElement }; selectedElements.push(block); @@ -28081,67 +29631,186 @@ var ngSwitchDefaultDirective = ngDirective({ * @description * Directive that marks the insertion point for the transcluded DOM of the nearest parent directive that uses transclusion. * - * Any existing content of the element that this directive is placed on will be removed before the transcluded content is inserted. + * You can specify that you want to insert a named transclusion slot, instead of the default slot, by providing the slot name + * as the value of the `ng-transclude` or `ng-transclude-slot` attribute. + * + * If the transcluded content is not empty (i.e. contains one or more DOM nodes, including whitespace text nodes), any existing + * content of this element will be removed before the transcluded content is inserted. + * If the transcluded content is empty, the existing content is left intact. This lets you provide fallback content in the case + * that no transcluded content is provided. * * @element ANY * - * @example - - - -
-
-
- {{text}} -
-
- - it('should have transcluded', function() { - var titleElement = element(by.model('title')); - titleElement.clear(); - titleElement.sendKeys('TITLE'); - var textElement = element(by.model('text')); - textElement.clear(); - textElement.sendKeys('TEXT'); - expect(element(by.binding('title')).getText()).toEqual('TITLE'); - expect(element(by.binding('text')).getText()).toEqual('TEXT'); - }); - -
+ * @param {string} ngTransclude|ngTranscludeSlot the name of the slot to insert at this point. If this is not provided, is empty + * or its value is the same as the name of the attribute then the default slot is used. * + * @example + * ### Basic transclusion + * This example demonstrates basic transclusion of content into a component directive. + * + * + * + *
+ *
+ *
+ * {{text}} + *
+ *
+ * + * it('should have transcluded', function() { + * var titleElement = element(by.model('title')); + * titleElement.clear(); + * titleElement.sendKeys('TITLE'); + * var textElement = element(by.model('text')); + * textElement.clear(); + * textElement.sendKeys('TEXT'); + * expect(element(by.binding('title')).getText()).toEqual('TITLE'); + * expect(element(by.binding('text')).getText()).toEqual('TEXT'); + * }); + * + *
+ * + * @example + * ### Transclude fallback content + * This example shows how to use `NgTransclude` with fallback content, that + * is displayed if no transcluded content is provided. + * + * + * + * + * + * + * + * + * Button2 + * + * + * + * it('should have different transclude element content', function() { + * expect(element(by.id('fallback')).getText()).toBe('Button1'); + * expect(element(by.id('modified')).getText()).toBe('Button2'); + * }); + * + * + * + * @example + * ### Multi-slot transclusion + * This example demonstrates using multi-slot transclusion in a component directive. + * + * + * + *
+ *
+ *
+ * + * {{title}} + *

{{text}}

+ *
+ *
+ *
+ * + * angular.module('multiSlotTranscludeExample', []) + * .directive('pane', function(){ + * return { + * restrict: 'E', + * transclude: { + * 'title': '?paneTitle', + * 'body': 'paneBody', + * 'footer': '?paneFooter' + * }, + * template: '
' + + * '
Fallback Title
' + + * '
' + + * '' + + * '
' + * }; + * }) + * .controller('ExampleController', ['$scope', function($scope) { + * $scope.title = 'Lorem Ipsum'; + * $scope.link = "https://google.com"; + * $scope.text = 'Neque porro quisquam est qui dolorem ipsum quia dolor...'; + * }]); + *
+ * + * it('should have transcluded the title and the body', function() { + * var titleElement = element(by.model('title')); + * titleElement.clear(); + * titleElement.sendKeys('TITLE'); + * var textElement = element(by.model('text')); + * textElement.clear(); + * textElement.sendKeys('TEXT'); + * expect(element(by.css('.title')).getText()).toEqual('TITLE'); + * expect(element(by.binding('text')).getText()).toEqual('TEXT'); + * expect(element(by.css('.footer')).getText()).toEqual('Fallback Footer'); + * }); + * + *
*/ +var ngTranscludeMinErr = minErr('ngTransclude'); var ngTranscludeDirective = ngDirective({ restrict: 'EAC', link: function($scope, $element, $attrs, controller, $transclude) { + + if ($attrs.ngTransclude === $attrs.$attr.ngTransclude) { + // If the attribute is of the form: `ng-transclude="ng-transclude"` + // then treat it like the default + $attrs.ngTransclude = ''; + } + + function ngTranscludeCloneAttachFn(clone) { + if (clone.length) { + $element.empty(); + $element.append(clone); + } + } + if (!$transclude) { - throw minErr('ngTransclude')('orphan', + throw ngTranscludeMinErr('orphan', 'Illegal use of ngTransclude directive in the template! ' + 'No parent directive that requires a transclusion found. ' + 'Element: {0}', startingTag($element)); } - $transclude(function(clone) { - $element.empty(); - $element.append(clone); - }); + // If there is no slot name defined or the slot name is not optional + // then transclude the slot + var slotName = $attrs.ngTransclude || $attrs.ngTranscludeSlot; + $transclude(ngTranscludeCloneAttachFn, null, slotName); } }); @@ -28195,6 +29864,15 @@ var scriptDirective = ['$templateCache', function($templateCache) { var noopNgModelController = { $setViewValue: noop, $render: noop }; +function chromeHack(optionElement) { + // Workaround for https://code.google.com/p/chromium/issues/detail?id=381459 + // Adding an
+ *
+ * + var required = element(by.binding('form.input.$error.required')); + var model = element(by.binding('model')); + var input = element(by.id('input')); + + it('should set the required error', function() { + expect(required.getText()).toContain('true'); + + input.sendKeys('123'); + expect(required.getText()).not.toContain('true'); + expect(model.getText()).toContain('123'); + }); + * + *
+ */ var requiredDirective = function() { return { restrict: 'A', @@ -28683,7 +30427,81 @@ var requiredDirective = function() { }; }; +/** + * @ngdoc directive + * @name ngPattern + * + * @description + * + * ngPattern adds the pattern {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}. + * It is most often used for text-based {@link input `input`} controls, but can also be applied to custom text-based controls. + * + * The validator sets the `pattern` error key if the {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`} + * does not match a RegExp which is obtained by evaluating the Angular expression given in the + * `ngPattern` attribute value: + * * If the expression evaluates to a RegExp object, then this is used directly. + * * If the expression evaluates to a string, then it will be converted to a RegExp after wrapping it + * in `^` and `$` characters. For instance, `"abc"` will be converted to `new RegExp('^abc$')`. + * + *
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. + *
+ * + *
+ * **Note:** This directive is also added when the plain `pattern` attribute is used, with two + * differences: + *
    + *
  1. + * `ngPattern` does not set the `pattern` attribute and therefore HTML5 constraint validation is + * not available. + *
  2. + *
  3. + * The `ngPattern` attribute must be an expression, while the `pattern` value must be + * interpolated. + *
  4. + *
+ *
+ * + * @example + * + * + * + *
+ *
+ * + * + *
+ * + *
+ *
+ * input valid? = {{form.input.$valid}}
+ * model = {{model}} + *
+ *
+ *
+ * + var model = element(by.binding('model')); + var input = element(by.id('input')); + it('should validate the input with the default pattern', function() { + input.sendKeys('aaa'); + expect(model.getText()).not.toContain('aaa'); + + input.clear().then(function() { + input.sendKeys('123'); + expect(model.getText()).toContain('123'); + }); + }); + * + *
+ */ var patternDirective = function() { return { restrict: 'A', @@ -28715,7 +30533,72 @@ var patternDirective = function() { }; }; +/** + * @ngdoc directive + * @name ngMaxlength + * + * @description + * + * ngMaxlength adds the maxlength {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}. + * It is most often used for text-based {@link input `input`} controls, but can also be applied to custom text-based controls. + * + * The validator sets the `maxlength` error key if the {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`} + * is longer than the integer obtained by evaluating the Angular expression given in the + * `ngMaxlength` attribute value. + * + *
+ * **Note:** This directive is also added when the plain `maxlength` attribute is used, with two + * differences: + *
    + *
  1. + * `ngMaxlength` does not set the `maxlength` attribute and therefore HTML5 constraint + * validation is not available. + *
  2. + *
  3. + * The `ngMaxlength` attribute must be an expression, while the `maxlength` value must be + * interpolated. + *
  4. + *
+ *
+ * + * @example + * + * + * + *
+ *
+ * + * + *
+ * + *
+ *
+ * input valid? = {{form.input.$valid}}
+ * model = {{model}} + *
+ *
+ *
+ * + var model = element(by.binding('model')); + var input = element(by.id('input')); + it('should validate the input with the default maxlength', function() { + input.sendKeys('abcdef'); + expect(model.getText()).not.toContain('abcdef'); + + input.clear().then(function() { + input.sendKeys('abcde'); + expect(model.getText()).toContain('abcde'); + }); + }); + * + *
+ */ var maxlengthDirective = function() { return { restrict: 'A', @@ -28736,6 +30619,70 @@ var maxlengthDirective = function() { }; }; +/** + * @ngdoc directive + * @name ngMinlength + * + * @description + * + * ngMinlength adds the minlength {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}. + * It is most often used for text-based {@link input `input`} controls, but can also be applied to custom text-based controls. + * + * The validator sets the `minlength` error key if the {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`} + * is shorter than the integer obtained by evaluating the Angular expression given in the + * `ngMinlength` attribute value. + * + *
+ * **Note:** This directive is also added when the plain `minlength` attribute is used, with two + * differences: + *
    + *
  1. + * `ngMinlength` does not set the `minlength` attribute and therefore HTML5 constraint + * validation is not available. + *
  2. + *
  3. + * The `ngMinlength` value must be an expression, while the `minlength` value must be + * interpolated. + *
  4. + *
+ *
+ * + * @example + * + * + * + *
+ *
+ * + * + *
+ * + *
+ *
+ * input valid? = {{form.input.$valid}}
+ * model = {{model}} + *
+ *
+ *
+ * + var model = element(by.binding('model')); + var input = element(by.id('input')); + + it('should validate the input with the default minlength', function() { + input.sendKeys('ab'); + expect(model.getText()).not.toContain('ab'); + + input.sendKeys('abc'); + expect(model.getText()).toContain('abc'); + }); + * + *
+ */ var minlengthDirective = function() { return { restrict: 'A', @@ -28757,7 +30704,9 @@ var minlengthDirective = function() { if (window.angular.bootstrap) { //AngularJS is already loaded, so we can return here... - console.log('WARNING: Tried to load angular more than once.'); + if (window.console) { + console.log('WARNING: Tried to load angular more than once.'); + } return; } @@ -28848,6 +30797,20 @@ $provide.value("$locale", { "Nov", "Dec" ], + "STANDALONEMONTH": [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], "WEEKENDRANGE": [ 5, 6 @@ -28891,14 +30854,15 @@ $provide.value("$locale", { ] }, "id": "en-us", + "localeID": "en_US", "pluralCat": function(n, opt_precision) { var i = n | 0; var vf = getVF(n, opt_precision); if (i == 1 && vf.v == 0) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;} }); }]); - jqLite(document).ready(function() { - angularInit(document, bootstrap); + jqLite(window.document).ready(function() { + angularInit(window.document, bootstrap); }); -})(window, document); +})(window); !window.angular.$$csp().noInlineStyle && window.angular.element(document.head).prepend(''); \ No newline at end of file diff --git a/Web/Scripts/angular.min.js b/Web/Scripts/angular.min.js index 272101e..b10e3e9 100644 --- a/Web/Scripts/angular.min.js +++ b/Web/Scripts/angular.min.js @@ -1,294 +1,314 @@ /* - AngularJS v1.4.7 - (c) 2010-2015 Google, Inc. http://angularjs.org + AngularJS v1.5.5 + (c) 2010-2016 Google, Inc. http://angularjs.org License: MIT */ -(function(Q,X,w){'use strict';function I(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.4.7/"+(b?b+"/":"")+a;for(a=1;a").append(b).html();try{return b[0].nodeType===Pa?F(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+F(b)})}catch(d){return F(c)}}function xc(b){try{return decodeURIComponent(b)}catch(a){}} -function yc(b){var a={};m((b||"").split("&"),function(b){var d,e,f;b&&(e=b=b.replace(/\+/g,"%20"),d=b.indexOf("="),-1!==d&&(e=b.substring(0,d),f=b.substring(d+1)),e=xc(e),A(e)&&(f=A(f)?xc(f):!0,ta.call(a,e)?J(a[e])?a[e].push(f):a[e]=[a[e],f]:a[e]=f))});return a}function Pb(b){var a=[];m(b,function(b,d){J(b)?m(b,function(b){a.push(la(d,!0)+(!0===b?"":"="+la(b,!0)))}):a.push(la(d,!0)+(!0===b?"":"="+la(b,!0)))});return a.length?a.join("&"):""}function ob(b){return la(b,!0).replace(/%26/gi,"&").replace(/%3D/gi, -"=").replace(/%2B/gi,"+")}function la(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Yd(b,a){var c,d,e=Qa.length;for(d=0;d/,">"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng");d=fb(a,c.strictDi);d.invoke(["$rootScope", -"$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;Q&&e.test(Q.name)&&(c.debugInfoEnabled=!0,Q.name=Q.name.replace(e,""));if(Q&&!f.test(Q.name))return d();Q.name=Q.name.replace(f,"");da.resumeBootstrap=function(b){m(b,function(b){a.push(b)});return d()};x(da.resumeDeferredBootstrap)&&da.resumeDeferredBootstrap()}function $d(){Q.name="NG_ENABLE_DEBUG_INFO!"+Q.name;Q.location.reload()} -function ae(b){b=da.element(b).injector();if(!b)throw Ea("test");return b.get("$$testability")}function Ac(b,a){a=a||"_";return b.replace(be,function(b,d){return(d?a:"")+b.toLowerCase()})}function ce(){var b;if(!Bc){var a=pb();(ra=v(a)?Q.jQuery:a?Q[a]:w)&&ra.fn.on?(B=ra,P(ra.fn,{scope:Ra.scope,isolateScope:Ra.isolateScope,controller:Ra.controller,injector:Ra.injector,inheritedData:Ra.inheritedData}),b=ra.cleanData,ra.cleanData=function(a){var d;if(Qb)Qb=!1;else for(var e=0,f;null!=(f=a[e]);e++)(d= -ra._data(f,"events"))&&d.$destroy&&ra(f).triggerHandler("$destroy");b(a)}):B=R;da.element=B;Bc=!0}}function qb(b,a,c){if(!b)throw Ea("areq",a||"?",c||"required");return b}function Sa(b,a,c){c&&J(b)&&(b=b[b.length-1]);qb(x(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ta(b,a){if("hasOwnProperty"===b)throw Ea("badname",a);}function Cc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,h=0;h")+d[2];for(d=d[0];d--;)c=c.lastChild;f=db(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";m(f,function(a){e.appendChild(a)});return e}function R(b){if(b instanceof R)return b;var a;G(b)&&(b=T(b), -a=!0);if(!(this instanceof R)){if(a&&"<"!=b.charAt(0))throw Tb("nosel");return new R(b)}if(a){a=X;var c;b=(c=Ef.exec(b))?[a.createElement(c[1])]:(c=Mc(b,a))?c.childNodes:[]}Nc(this,b)}function Ub(b){return b.cloneNode(!0)}function ub(b,a){a||vb(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;dk&&this.remove(r.key);return b}},get:function(a){if(k
").parent()[0])});var f= -S(a,b,a,c,d,e);W.$$addScopeClass(a);var g=null;return function(b,c,d){qb(b,"scope");d=d||{};var e=d.parentBoundTranscludeFn,h=d.transcludeControllers;d=d.futureParentElement;e&&e.$$boundTransclude&&(e=e.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==wa(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?B(Xb(g,B("
").append(a).html())):c?Ra.clone.call(a):a;if(h)for(var k in h)d.data("$"+k+"Controller",h[k].instance);W.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,e);return d}}function S(a, -b,c,d,e,f){function g(a,c,d,e){var f,k,l,r,n,t,O;if(q)for(O=Array(c.length),r=0;rD.priority)break;if(M=D.scope)D.templateUrl||(C(M)?(Q("new/isolated scope", -u||S,D,v),u=D):Q("new/isolated scope",u,D,v)),S=S||D;y=D.name;!D.templateUrl&&D.controller&&(M=D.controller,ba=ba||fa(),Q("'"+y+"' controller",ba[y],D,v),ba[y]=D);if(M=D.transclude)N=!0,D.$$tlb||(Q("transclusion",z,D,v),z=D),"element"==M?(ia=!0,H=D.priority,M=v,v=d.$$element=B(X.createComment(" "+y+": "+d[y]+" ")),b=v[0],U(f,ua.call(M,0),b),Ka=W(M,e,H,g&&g.name,{nonTlbTranscludeDirective:z})):(M=B(Ub(b)).contents(),v.empty(),Ka=W(M,e));if(D.template)if(m=!0,Q("template",L,D,v),L=D,M=x(D.template)? -D.template(v,d):D.template,M=ha(M),D.replace){g=D;M=Sb.test(M)?Xc(Xb(D.templateNamespace,T(M))):[];b=M[0];if(1!=M.length||b.nodeType!==pa)throw ga("tplrt",y,"");U(f,v,b);F={$attr:{}};M=ca(b,[],F);var Lf=a.splice(I+1,a.length-(I+1));u&&A(M);a=a.concat(M).concat(Lf);Yc(d,F);F=a.length}else v.html(M);if(D.templateUrl)m=!0,Q("template",L,D,v),L=D,D.replace&&(g=D),K=Mf(a.splice(I,a.length-I),v,d,f,N&&Ka,h,k,{controllerDirectives:ba,newScopeDirective:S!==D&&S,newIsolateScopeDirective:u,templateDirective:L, -nonTlbTranscludeDirective:z}),F=a.length;else if(D.compile)try{na=D.compile(v,d,Ka),x(na)?n(null,na,P,R):na&&n(na.pre,na.post,P,R)}catch(V){c(V,xa(v))}D.terminal&&(K.terminal=!0,H=Math.max(H,D.priority))}K.scope=S&&!0===S.scope;K.transcludeOnThisElement=N;K.templateOnThisElement=m;K.transclude=Ka;r.hasElementTranscludeDirective=ia;return K}function A(a){for(var b=0,c=a.length;bn.priority)&&-1!=n.restrict.indexOf(f)&&(k&&(n=Nb(n,{$$start:k,$$end:l})),b.push(n),h=n)}catch(H){c(H)}}return h}function I(b){if(e.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,f=c.length;d"+b+"";return c.childNodes[0].childNodes;default:return b}}function R(a,b){if("srcdoc"==b)return ia.HTML;var c=wa(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b|| -"ngSrc"==b))return ia.RESOURCE_URL}function V(a,c,d,e,f){var h=R(a,e);f=g[e]||f;var l=b(d,!0,h,f);if(l){if("multiple"===e&&"select"===wa(a))throw ga("selmulti",xa(a));c.push({priority:100,compile:function(){return{pre:function(a,c,g){c=g.$$observers||(g.$$observers=fa());if(k.test(e))throw ga("nodomevents");var r=g[e];r!==d&&(l=r&&b(r,!0,h,f),d=r);l&&(g[e]=l(a),(c[e]||(c[e]=[])).$$inter=!0,(g.$$observers&&g.$$observers[e].$$scope||a).$watch(l,function(a,b){"class"===e&&a!=b?g.$updateClass(a,b):g.$set(e, -a)}))}}}})}}function U(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g=a)return b;for(;a--;)8===b[a].nodeType&&Nf.call(b,a,1);return b}function Xe(){var b={},a=!1;this.register=function(a,d){Ta(a,"controller");C(a)?P(b,a):b[a]=d};this.allowGlobals=function(){a=!0};this.$get=["$injector","$window",function(c,d){function e(a,b,c,d){if(!a||!C(a.$scope))throw I("$controller")("noscp",d,b);a.$scope[b]=c}return function(f,h,g,l){var k,n,p;g=!0===g;l&&G(l)&&(p=l);if(G(f)){l=f.match(Vc);if(!l)throw Of("ctrlfmt",f); -n=l[1];p=p||l[3];f=b.hasOwnProperty(n)?b[n]:Cc(h.$scope,n,!0)||(a?Cc(d,n,!0):w);Sa(f,n,!0)}if(g)return g=(J(f)?f[f.length-1]:f).prototype,k=Object.create(g||null),p&&e(h,p,k,n||f.name),P(function(){var a=c.invoke(f,k,h,n);a!==k&&(C(a)||x(a))&&(k=a,p&&e(h,p,k,n||f.name));return k},{instance:k,identifier:p});k=c.instantiate(f,h,n);p&&e(h,p,k,n||f.name);return k}}]}function Ye(){this.$get=["$window",function(b){return B(b.document)}]}function Ze(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b, -arguments)}}]}function Yb(b){return C(b)?ea(b)?b.toISOString():eb(b):b}function df(){this.$get=function(){return function(b){if(!b)return"";var a=[];nc(b,function(b,d){null===b||v(b)||(J(b)?m(b,function(b,c){a.push(la(d)+"="+la(Yb(b)))}):a.push(la(d)+"="+la(Yb(b))))});return a.join("&")}}}function ef(){this.$get=function(){return function(b){function a(b,e,f){null===b||v(b)||(J(b)?m(b,function(b,c){a(b,e+"["+(C(b)?c:"")+"]")}):C(b)&&!ea(b)?nc(b,function(b,c){a(b,e+(f?"":"[")+c+(f?"":"]"))}):c.push(la(e)+ -"="+la(Yb(b))))}if(!b)return"";var c=[];a(b,"",!0);return c.join("&")}}}function Zb(b,a){if(G(b)){var c=b.replace(Pf,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf(ad))||(d=(d=c.match(Qf))&&Rf[d[0]].test(c));d&&(b=vc(c))}}return b}function bd(b){var a=fa(),c;G(b)?m(b.split("\n"),function(b){c=b.indexOf(":");var e=F(T(b.substr(0,c)));b=T(b.substr(c+1));e&&(a[e]=a[e]?a[e]+", "+b:b)}):C(b)&&m(b,function(b,c){var f=F(c),h=T(b);f&&(a[f]=a[f]?a[f]+", "+h:h)});return a}function cd(b){var a; -return function(c){a||(a=bd(b));return c?(c=a[F(c)],void 0===c&&(c=null),c):a}}function dd(b,a,c,d){if(x(d))return d(b,a,c);m(d,function(d){b=d(b,a,c)});return b}function cf(){var b=this.defaults={transformResponse:[Zb],transformRequest:[function(a){return C(a)&&"[object File]"!==va.call(a)&&"[object Blob]"!==va.call(a)&&"[object FormData]"!==va.call(a)?eb(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ja($b),put:ja($b),patch:ja($b)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN", -paramSerializer:"$httpParamSerializer"},a=!1;this.useApplyAsync=function(b){return A(b)?(a=!!b,this):a};var c=!0;this.useLegacyPromiseExtensions=function(a){return A(a)?(c=!!a,this):c};var d=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(e,f,h,g,l,k){function n(a){function d(a){var b=P({},a);b.data=a.data?dd(a.data,a.headers,a.status,f.transformResponse):a.data;a=a.status;return 200<=a&&300>a?b:l.reject(b)}function e(a,b){var c, -d={};m(a,function(a,e){x(a)?(c=a(b),null!=c&&(d[e]=c)):d[e]=a});return d}if(!da.isObject(a))throw I("$http")("badreq",a);var f=P({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse,paramSerializer:b.paramSerializer},a);f.headers=function(a){var c=b.headers,d=P({},a.headers),f,g,h,c=P({},c.common,c[F(a.method)]);a:for(f in c){g=F(f);for(h in d)if(F(h)===g)continue a;d[f]=c[f]}return e(d,ja(a))}(a);f.method=sb(f.method);f.paramSerializer=G(f.paramSerializer)?k.get(f.paramSerializer): -f.paramSerializer;var g=[function(a){var c=a.headers,e=dd(a.data,cd(c),w,a.transformRequest);v(e)&&m(c,function(a,b){"content-type"===F(b)&&delete c[b]});v(a.withCredentials)&&!v(b.withCredentials)&&(a.withCredentials=b.withCredentials);return p(a,e).then(d,d)},w],h=l.when(f);for(m(E,function(a){(a.request||a.requestError)&&g.unshift(a.request,a.requestError);(a.response||a.responseError)&&g.push(a.response,a.responseError)});g.length;){a=g.shift();var r=g.shift(),h=h.then(a,r)}c?(h.success=function(a){Sa(a, -"fn");h.then(function(b){a(b.data,b.status,b.headers,f)});return h},h.error=function(a){Sa(a,"fn");h.then(null,function(b){a(b.data,b.status,b.headers,f)});return h}):(h.success=ed("success"),h.error=ed("error"));return h}function p(c,d){function h(b,c,d,e){function f(){k(c,b,d,e)}L&&(200<=b&&300>b?L.put(ba,[b,c,bd(d),e]):L.remove(ba));a?g.$applyAsync(f):(f(),g.$$phase||g.$apply())}function k(a,b,d,e){b=-1<=b?b:0;(200<=b&&300>b?O.resolve:O.reject)({data:a,status:b,headers:cd(d),config:c,statusText:e})} -function p(a){k(a.data,a.status,ja(a.headers()),a.statusText)}function E(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var O=l.defer(),H=O.promise,L,m,S=c.headers,ba=r(c.url,c.paramSerializer(c.params));n.pendingRequests.push(c);H.then(E,E);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(L=C(c.cache)?c.cache:C(b.cache)?b.cache:t);L&&(m=L.get(ba),A(m)?m&&x(m.then)?m.then(p,p):J(m)?k(m[1],m[0],ja(m[2]),m[3]):k(m,200,{},"OK"):L.put(ba,H));v(m)&&((m= -fd(c.url)?f()[c.xsrfCookieName||b.xsrfCookieName]:w)&&(S[c.xsrfHeaderName||b.xsrfHeaderName]=m),e(c.method,ba,d,h,S,c.timeout,c.withCredentials,c.responseType));return H}function r(a,b){0=l&&(u.resolve(E), -t(q.$$intervalId),delete f[q.$$intervalId]);K||b.$apply()},g);f[q.$$intervalId]=u;return q}var f={};e.cancel=function(b){return b&&b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0):!1};return e}]}function ac(b){b=b.split("/");for(var a=b.length;a--;)b[a]=ob(b[a]);return b.join("/")}function gd(b,a){var c=Aa(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=Y(c.port)||Tf[c.protocol]||null}function hd(b,a){var c="/"!==b.charAt(0); -c&&(b="/"+b);var d=Aa(b);a.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname);a.$$search=yc(d.search);a.$$hash=decodeURIComponent(d.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function sa(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Ja(b){var a=b.indexOf("#");return-1==a?b:b.substr(0,a)}function Cb(b){return b.replace(/(#.+)|#$/,"$1")}function bc(b,a,c){this.$$html5=!0;c=c||"";gd(b,this);this.$$parse=function(b){var c=sa(a, -b);if(!G(c))throw Db("ipthprfx",b,a);hd(c,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var b=Pb(this.$$search),c=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=ac(this.$$path)+(b?"?"+b:"")+c;this.$$absUrl=a+this.$$url.substr(1)};this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,h;A(f=sa(b,d))?(h=f,h=A(f=sa(c,f))?a+(sa("/",f)||f):b+h):A(f=sa(a,d))?h=a+f:a==d+"/"&&(h=a);h&&this.$$parse(h);return!!h}}function cc(b,a,c){gd(b,this); -this.$$parse=function(d){var e=sa(b,d)||sa(a,d),f;v(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",v(e)&&(b=d,this.replace())):(f=sa(c,e),v(f)&&(f=e));hd(f,this);d=this.$$path;var e=b,h=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));h.exec(f)||(d=(f=h.exec(d))?f[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var a=Pb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=ac(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+(this.$$url?c+this.$$url:"")};this.$$parseLinkUrl= -function(a,c){return Ja(b)==Ja(a)?(this.$$parse(a),!0):!1}}function id(b,a,c){this.$$html5=!0;cc.apply(this,arguments);this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,h;b==Ja(d)?f=d:(h=sa(a,d))?f=b+c+h:a===d+"/"&&(f=a);f&&this.$$parse(f);return!!f};this.$$compose=function(){var a=Pb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=ac(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+c+this.$$url}}function Eb(b){return function(){return this[b]}}function jd(b, -a){return function(c){if(v(c))return this[b];this[b]=a(c);this.$$compose();return this}}function hf(){var b="",a={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(a){return A(a)?(b=a,this):b};this.html5Mode=function(b){return bb(b)?(a.enabled=b,this):C(b)?(bb(b.enabled)&&(a.enabled=b.enabled),bb(b.requireBase)&&(a.requireBase=b.requireBase),bb(b.rewriteLinks)&&(a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c, -d,e,f,h){function g(a,b,c){var e=k.url(),f=k.$$state;try{d.url(a,b,c),k.$$state=d.state()}catch(g){throw k.url(e),k.$$state=f,g;}}function l(a,b){c.$broadcast("$locationChangeSuccess",k.absUrl(),a,k.$$state,b)}var k,n;n=d.baseHref();var p=d.url(),r;if(a.enabled){if(!n&&a.requireBase)throw Db("nobase");r=p.substring(0,p.indexOf("/",p.indexOf("//")+2))+(n||"/");n=e.history?bc:id}else r=Ja(p),n=cc;var t=r.substr(0,Ja(r).lastIndexOf("/")+1);k=new n(r,t,"#"+b);k.$$parseLinkUrl(p,p);k.$$state=d.state(); -var E=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&&!b.metaKey&&!b.shiftKey&&2!=b.which&&2!=b.button){for(var e=B(b.target);"a"!==wa(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var g=e.prop("href"),l=e.attr("href")||e.attr("xlink:href");C(g)&&"[object SVGAnimatedString]"===g.toString()&&(g=Aa(g.animVal).href);E.test(g)||!g||e.attr("target")||b.isDefaultPrevented()||!k.$$parseLinkUrl(g,l)||(b.preventDefault(),k.absUrl()!=d.url()&&(c.$apply(),h.angular["ff-684208-preventDefault"]= -!0))}});Cb(k.absUrl())!=Cb(p)&&d.url(k.absUrl(),!0);var K=!0;d.onUrlChange(function(a,b){v(sa(t,a))?h.location.href=a:(c.$evalAsync(function(){var d=k.absUrl(),e=k.$$state,f;k.$$parse(a);k.$$state=b;f=c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented;k.absUrl()===a&&(f?(k.$$parse(d),k.$$state=e,g(d,!1,e)):(K=!1,l(d,e)))}),c.$$phase||c.$digest())});c.$watch(function(){var a=Cb(d.url()),b=Cb(k.absUrl()),f=d.state(),h=k.$$replace,r=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(K||r)K=!1, -c.$evalAsync(function(){var b=k.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,k.$$state,f).defaultPrevented;k.absUrl()===b&&(d?(k.$$parse(a),k.$$state=f):(r&&g(b,h,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function jf(){var b=!0,a=this;this.debugEnabled=function(a){return A(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a= -a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||y;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a=[];m(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function Xa(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"=== -b||"__proto__"===b)throw Z("isecfld",a);return b}function kd(b,a){b+="";if(!G(b))throw Z("iseccst",a);return b}function Ba(b,a){if(b){if(b.constructor===b)throw Z("isecfn",a);if(b.window===b)throw Z("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw Z("isecdom",a);if(b===Object)throw Z("isecobj",a);}return b}function ld(b,a){if(b){if(b.constructor===b)throw Z("isecfn",a);if(b===Uf||b===Vf||b===Wf)throw Z("isecff",a);}}function md(b,a){if(b&&(b===(0).constructor||b===(!1).constructor|| -b==="".constructor||b==={}.constructor||b===[].constructor||b===Function.constructor))throw Z("isecaf",a);}function Xf(b,a){return"undefined"!==typeof b?b:a}function nd(b,a){return"undefined"===typeof b?a:"undefined"===typeof a?b:b+a}function U(b,a){var c,d;switch(b.type){case s.Program:c=!0;m(b.body,function(b){U(b.expression,a);c=c&&b.expression.constant});b.constant=c;break;case s.Literal:b.constant=!0;b.toWatch=[];break;case s.UnaryExpression:U(b.argument,a);b.constant=b.argument.constant;b.toWatch= -b.argument.toWatch;break;case s.BinaryExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=b.left.toWatch.concat(b.right.toWatch);break;case s.LogicalExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=b.constant?[]:[b];break;case s.ConditionalExpression:U(b.test,a);U(b.alternate,a);U(b.consequent,a);b.constant=b.test.constant&&b.alternate.constant&&b.consequent.constant;b.toWatch=b.constant?[]:[b];break;case s.Identifier:b.constant= -!1;b.toWatch=[b];break;case s.MemberExpression:U(b.object,a);b.computed&&U(b.property,a);b.constant=b.object.constant&&(!b.computed||b.property.constant);b.toWatch=[b];break;case s.CallExpression:c=b.filter?!a(b.callee.name).$stateful:!1;d=[];m(b.arguments,function(b){U(b,a);c=c&&b.constant;b.constant||d.push.apply(d,b.toWatch)});b.constant=c;b.toWatch=b.filter&&!a(b.callee.name).$stateful?d:[b];break;case s.AssignmentExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant; -b.toWatch=[b];break;case s.ArrayExpression:c=!0;d=[];m(b.elements,function(b){U(b,a);c=c&&b.constant;b.constant||d.push.apply(d,b.toWatch)});b.constant=c;b.toWatch=d;break;case s.ObjectExpression:c=!0;d=[];m(b.properties,function(b){U(b.value,a);c=c&&b.value.constant;b.value.constant||d.push.apply(d,b.value.toWatch)});b.constant=c;b.toWatch=d;break;case s.ThisExpression:b.constant=!1,b.toWatch=[]}}function od(b){if(1==b.length){b=b[0].expression;var a=b.toWatch;return 1!==a.length?a:a[0]!==b?a:w}} -function pd(b){return b.type===s.Identifier||b.type===s.MemberExpression}function qd(b){if(1===b.body.length&&pd(b.body[0].expression))return{type:s.AssignmentExpression,left:b.body[0].expression,right:{type:s.NGValueParameter},operator:"="}}function rd(b){return 0===b.body.length||1===b.body.length&&(b.body[0].expression.type===s.Literal||b.body[0].expression.type===s.ArrayExpression||b.body[0].expression.type===s.ObjectExpression)}function sd(b,a){this.astBuilder=b;this.$filter=a}function td(b, -a){this.astBuilder=b;this.$filter=a}function Fb(b){return"constructor"==b}function dc(b){return x(b.valueOf)?b.valueOf():Yf.call(b)}function kf(){var b=fa(),a=fa();this.$get=["$filter",function(c){function d(a,b){return null==a||null==b?a===b:"object"===typeof a&&(a=dc(a),"object"===typeof a)?!1:a===b||a!==a&&b!==b}function e(a,b,c,e,f){var g=e.inputs,h;if(1===g.length){var k=d,g=g[0];return a.$watch(function(a){var b=g(a);d(b,k)||(h=e(a,w,w,[b]),k=b&&dc(b));return h},b,c,f)}for(var l=[],n=[],p=0, -m=g.length;p=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b,e,f=0,g=d.length;fa)for(b in l++,f)ta.call(e,b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$stateful=!0;var d=this,e,f,h,k=1 -t&&(D=4-t,u[D]||(u[D]=[]),u[D].push({msg:x(b.exp)?"fn: "+(b.exp.name||b.exp.toString()):b.exp,newVal:f,oldVal:g}));else if(b===d){r=!1;break a}}catch(y){h(y)}if(!(k=m.$$watchersCount&&m.$$childHead||m!==this&&m.$$nextSibling))for(;m!==this&&!(k=m.$$nextSibling);)m=m.$parent}while(m=k);if((r||z.length)&&!t--)throw q.$$phase=null,c("infdig",a,u);}while(r||z.length);for(q.$$phase=null;N.length;)try{N.shift()()}catch(A){h(A)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy"); -this.$$destroyed=!0;this===q&&l.$$applicationDestroyed();r(this,-this.$$watchersCount);for(var b in this.$$listenerCount)t(this,this.$$listenerCount[b],b);a&&a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a&&a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=y;this.$on= -this.$watch=this.$watchGroup=function(){return y};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}},$eval:function(a,b){return g(a)(this,b)},$evalAsync:function(a,b){q.$$phase||z.length||l.defer(function(){z.length&&q.$digest()});z.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){N.push(a)},$apply:function(a){try{p("$apply");try{return this.$eval(a)}finally{q.$$phase=null}}catch(b){h(b)}finally{try{q.$digest()}catch(c){throw h(c), -c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&w.push(b);u()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,t(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,f=!1,g={name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){g.defaultPrevented=!0},defaultPrevented:!1}, -k=db([g],arguments,1),l,n;do{d=e.$$listeners[a]||c;g.currentScope=e;l=0;for(n=d.length;lWa)throw Ca("iequirks");var d=ja(oa);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=$a);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs,f=d.getTrusted,h=d.trustAs;m(oa,function(a,b){var c=F(b);d[gb("parse_as_"+c)]=function(b){return e(a,b)};d[gb("get_trusted_"+c)]=function(b){return f(a,b)};d[gb("trust_as_"+ -c)]=function(b){return h(a,b)}});return d}]}function qf(){this.$get=["$window","$document",function(b,a){var c={},d=Y((/android (\d+)/.exec(F((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},h,g=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,n=!1;if(l){for(var p in l)if(k=g.exec(p)){h=k[0];h=h.substr(0,1).toUpperCase()+h.substr(1);break}h||(h="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||h+"Transition"in l);n=!!("animation"in l||h+"Animation"in -l);!d||k&&n||(k=G(l.webkitTransition),n=G(l.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"===a&&11>=Wa)return!1;if(v(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:Fa(),vendorPrefix:h,transitions:k,animations:n,android:d}}]}function sf(){this.$get=["$templateCache","$http","$q","$sce",function(b,a,c,d){function e(f,h){e.totalPendingRequests++;G(f)&&b.get(f)||(f=d.getTrustedResourceUrl(f));var g=a.defaults&&a.defaults.transformResponse; -J(g)?g=g.filter(function(a){return a!==Zb}):g===Zb&&(g=null);return a.get(f,{cache:b,transformResponse:g})["finally"](function(){e.totalPendingRequests--}).then(function(a){b.put(f,a.data);return a.data},function(a){if(!h)throw ga("tpload",f,a.status,a.statusText);return c.reject(a)})}e.totalPendingRequests=0;return e}]}function tf(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var h=[];m(a,function(a){var d= -da.element(a).data("$binding");d&&m(d,function(d){c?(new RegExp("(^|\\s)"+vd(b)+"(\\s|\\||$)")).test(d)&&h.push(a):-1!=d.indexOf(b)&&h.push(a)})});return h},findModels:function(a,b,c){for(var h=["ng-","data-ng-","ng\\:"],g=0;gb;b=Math.abs(b);var h=Infinity===b;if(!h&&!isFinite(b))return"";var g=b+"",l="",k=!1,n=[];h&&(l="\u221e");if(!h&&-1!==g.indexOf("e")){var p=g.match(/([\d\.]+)e(-?)(\d+)/);p&&"-"==p[2]&&p[3]>e+1?b=0:(l=g,k=!0)}if(h||k)0b&&(l=b.toFixed(e),b=parseFloat(l),l=l.replace(hc,d));else{h=(g.split(hc)[1]||"").length;v(e)&&(e=Math.min(Math.max(a.minFrac,h),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var h=(""+b).split(hc),g=h[0],h=h[1]||"",p=0, -r=a.lgSize,t=a.gSize;if(g.length>=r+t)for(p=g.length-r,k=0;kb&&(d="-",b=-b);for(b=""+b;b.length-c)e+=c;0===e&&-12==c&&(e=12);return Gb(e,a,d)}}function Hb(b,a){return function(c,d){var e=c["get"+b](),f=sb(a?"SHORT"+b:b);return d[f][e]}}function Ed(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function Fd(b){return function(a){var c=Ed(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return Gb(a,b)}}function ic(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function Ad(b){function a(a){var b;if(b= -a.match(c)){a=new Date(0);var f=0,h=0,g=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=Y(b[9]+b[10]),h=Y(b[9]+b[11]));g.call(a,Y(b[1]),Y(b[2])-1,Y(b[3]));f=Y(b[4]||0)-f;h=Y(b[5]||0)-h;g=Y(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,h,g,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e,f){var h="",g=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;G(c)&&(c= -fg.test(c)?Y(c):a(c));V(c)&&(c=new Date(c));if(!ea(c)||!isFinite(c.getTime()))return c;for(;e;)(k=gg.exec(e))?(g=db(g,k,1),e=g.pop()):(g.push(e),e=null);var n=c.getTimezoneOffset();f&&(n=wc(f,c.getTimezoneOffset()),c=Ob(c,f,!0));m(g,function(a){l=hg[a];h+=l?l(c,b.DATETIME_FORMATS,n):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return h}}function ag(){return function(b,a){v(a)&&(a=2);return eb(b,a)}}function bg(){return function(b,a,c){a=Infinity===Math.abs(Number(a))?Number(a):Y(a);if(isNaN(a))return b; -V(b)&&(b=b.toString());if(!J(b)&&!G(b))return b;c=!c||isNaN(c)?0:Y(c);c=0>c&&c>=-b.length?b.length+c:c;return 0<=a?b.slice(c,c+a):0===c?b.slice(a,b.length):b.slice(Math.max(0,c+a),c)}}function Cd(b){function a(a,c){c=c?-1:1;return a.map(function(a){var d=1,g=$a;if(x(a))g=a;else if(G(a)){if("+"==a.charAt(0)||"-"==a.charAt(0))d="-"==a.charAt(0)?-1:1,a=a.substring(1);if(""!==a&&(g=b(a),g.constant))var l=g(),g=function(a){return a[l]}}return{get:g,descending:d*c}})}function c(a){switch(typeof a){case "number":case "boolean":case "string":return!0; -default:return!1}}return function(b,e,f){if(!Da(b))return b;J(e)||(e=[e]);0===e.length&&(e=["+"]);var h=a(e,f);h.push({get:function(){return{}},descending:f?-1:1});b=Array.prototype.map.call(b,function(a,b){return{value:a,predicateValues:h.map(function(d){var e=d.get(a);d=typeof e;if(null===e)d="string",e="null";else if("string"===d)e=e.toLowerCase();else if("object"===d)a:{if("function"===typeof e.valueOf&&(e=e.valueOf(),c(e)))break a;if(qc(e)&&(e=e.toString(),c(e)))break a;e=b}return{value:e,type:d}})}}); -b.sort(function(a,b){for(var c=0,d=0,e=h.length;db||37<=b&&40>=b||n(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut",n)}a.on("change",l);d.$render=function(){var b=d.$isEmpty(d.$viewValue)? -"":d.$viewValue;a.val()!==b&&a.val(b)}}function Kb(b,a){return function(c,d){var e,f;if(ea(c))return c;if(G(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(ig.test(c))return new Date(c);b.lastIndex=0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},m(e,function(b,c){c=s};h.$observe("min",function(a){s=r(a);g.$validate()})}if(A(h.max)||h.ngMax){var u;g.$validators.max=function(a){return!p(a)||v(u)||c(a)<=u};h.$observe("max",function(a){u=r(a);g.$validate()})}}}function Id(b,a,c,d){(d.$$hasNativeValidators=C(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?w:b})}function Jd(b,a,c,d,e){if(A(d)){b= -b(d);if(!b.constant)throw lb("constexpr",c,d);return b(a)}return e}function kc(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/,Sb=/<|&#?\w+;/,Cf=/<([\w:-]+)/,Df=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, -ma={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ma.optgroup=ma.option;ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead;ma.th=ma.td;var Ra=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===X.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),R(Q).on("load",a))}, -toString:function(){var b=[];m(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?B(this[b]):B(this[this.length+b])},length:0,push:kg,sort:[].sort,splice:[].splice},Bb={};m("multiple selected checked disabled readOnly required open".split(" "),function(b){Bb[F(b)]=b});var Sc={};m("input select option textarea button form details".split(" "),function(b){Sc[b]=!0});var $c={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"}; -m({data:Vb,removeData:vb,hasData:function(b){for(var a in hb[b.ng339])return!0;return!1}},function(b,a){R[a]=b});m({data:Vb,inheritedData:Ab,scope:function(b){return B.data(b,"$scope")||Ab(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return B.data(b,"$isolateScope")||B.data(b,"$isolateScopeNoTemplate")},controller:Pc,injector:function(b){return Ab(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:xb,css:function(b,a,c){a=gb(a);if(A(c))b.style[a]=c;else return b.style[a]}, -attr:function(b,a,c){var d=b.nodeType;if(d!==Pa&&2!==d&&8!==d)if(d=F(a),Bb[d])if(A(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||y).specified?d:w;else if(A(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?w:b},prop:function(b,a,c){if(A(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(v(b)){var d=a.nodeType;return d===pa||d===Pa?a.textContent:""}a.textContent=b}b.$dv="";return b}(), -val:function(b,a){if(v(a)){if(b.multiple&&"select"===wa(b)){var c=[];m(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(v(a))return b.innerHTML;ub(b,!0);b.innerHTML=a},empty:Qc},function(b,a){R.prototype[a]=function(a,d){var e,f,h=this.length;if(b!==Qc&&v(2==b.length&&b!==xb&&b!==Pc?a:d)){if(C(a)){for(e=0;e <= >= && || ! = |".split(" "),function(a){Lb[a]=!0});var rg={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},ec=function(a){this.options=a};ec.prototype={constructor:ec,lex:function(a){this.text=a;this.index=0;for(this.tokens= -[];this.index=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"=== -a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=A(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw Z("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.index","<=",">=");)a={type:s.BinaryExpression,operator:c.text, -left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a={type:s.BinaryExpression,operator:c.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a={type:s.BinaryExpression,operator:c.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:s.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()}, -primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.constants.hasOwnProperty(this.peek().text)?a=ha(this.constants[this.consume().text]):this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var c;c=this.expect("(","[",".");)"("===c.text?(a={type:s.CallExpression,callee:a,arguments:this.parseArguments()}, -this.consume(")")):"["===c.text?(a={type:s.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===c.text?a={type:s.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var c={type:s.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return c},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.expression()); -while(this.expect(","))}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:s.Identifier,name:a.text}},constant:function(){return{type:s.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:s.ArrayExpression,elements:a}},object:function(){var a=[],c;if("}"!==this.peekToken().text){do{if(this.peek("}"))break; -c={type:s.Property,kind:"init"};this.peek().constant?c.key=this.constant():this.peek().identifier?c.key=this.identifier():this.throwError("invalid key",this.peek());this.consume(":");c.value=this.expression();a.push(c)}while(this.expect(","))}this.consume("}");return{type:s.ObjectExpression,properties:a}},throwError:function(a,c){throw Z("syntax",c.text,a,c.index+1,this.text,this.text.substring(c.index));},consume:function(a){if(0===this.tokens.length)throw Z("ueoe",this.text);var c=this.expect(a); -c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},peekToken:function(){if(0===this.tokens.length)throw Z("ueoe",this.text);return this.tokens[0]},peek:function(a,c,d,e){return this.peekAhead(0,a,c,d,e)},peekAhead:function(a,c,d,e,f){if(this.tokens.length>a){a=this.tokens[a];var h=a.text;if(h===c||h===d||h===e||h===f||!(c||d||e||f))return a}return!1},expect:function(a,c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},constants:{"true":{type:s.Literal,value:!0}, -"false":{type:s.Literal,value:!1},"null":{type:s.Literal,value:null},undefined:{type:s.Literal,value:w},"this":{type:s.ThisExpression}}};sd.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:c,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};U(e,d.$filter);var f="",h;this.stage="assign";if(h=qd(e))this.state.computing="assign",f=this.nextId(),this.recurse(h,f),this.return_(f),f="fn.assign="+this.generateFunction("assign", -"s,v,l");h=od(e.body);d.stage="inputs";m(h,function(a,c){var e="fn"+c;d.state[e]={vars:[],body:[],own:{}};d.state.computing=e;var f=d.nextId();d.recurse(a,f);d.return_(f);d.state.inputs.push(e);a.watchId=c});this.state.computing="fn";this.stage="main";this.recurse(e);f='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+f+this.watchFns()+"return fn;";f=(new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue", -"ensureSafeAssignContext","ifDefined","plus","text",f))(this.$filter,Xa,Ba,ld,kd,md,Xf,nd,a);this.state=this.stage=w;f.literal=rd(e);f.constant=e.constant;return f},USE:"use",STRICT:"strict",watchFns:function(){var a=[],c=this.state.inputs,d=this;m(c,function(c){a.push("var "+c+"="+d.generateFunction(c,"s"))});c.length&&a.push("fn.inputs=["+c.join(",")+"];");return a.join("")},generateFunction:function(a,c){return"function("+c+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a= -[],c=this;m(this.state.filters,function(d,e){a.push(d+"=$filter("+c.escape(e)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,c,d,e,f,h){var g,l,k=this,n,p;e=e||y;if(!h&&A(a.watchId))c=c||this.nextId(),this.if_("i",this.lazyAssign(c,this.computedMember("i",a.watchId)),this.lazyRecurse(a,c,d,e,f,!0));else switch(a.type){case s.Program:m(a.body, -function(c,d){k.recurse(c.expression,w,w,function(a){l=a});d!==a.body.length-1?k.current().body.push(l,";"):k.return_(l)});break;case s.Literal:p=this.escape(a.value);this.assign(c,p);e(p);break;case s.UnaryExpression:this.recurse(a.argument,w,w,function(a){l=a});p=a.operator+"("+this.ifDefined(l,0)+")";this.assign(c,p);e(p);break;case s.BinaryExpression:this.recurse(a.left,w,w,function(a){g=a});this.recurse(a.right,w,w,function(a){l=a});p="+"===a.operator?this.plus(g,l):"-"===a.operator?this.ifDefined(g, -0)+a.operator+this.ifDefined(l,0):"("+g+")"+a.operator+"("+l+")";this.assign(c,p);e(p);break;case s.LogicalExpression:c=c||this.nextId();k.recurse(a.left,c);k.if_("&&"===a.operator?c:k.not(c),k.lazyRecurse(a.right,c));e(c);break;case s.ConditionalExpression:c=c||this.nextId();k.recurse(a.test,c);k.if_(c,k.lazyRecurse(a.alternate,c),k.lazyRecurse(a.consequent,c));e(c);break;case s.Identifier:c=c||this.nextId();d&&(d.context="inputs"===k.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l", -a.name)+"?l:s"),d.computed=!1,d.name=a.name);Xa(a.name);k.if_("inputs"===k.stage||k.not(k.getHasOwnProperty("l",a.name)),function(){k.if_("inputs"===k.stage||"s",function(){f&&1!==f&&k.if_(k.not(k.nonComputedMember("s",a.name)),k.lazyAssign(k.nonComputedMember("s",a.name),"{}"));k.assign(c,k.nonComputedMember("s",a.name))})},c&&k.lazyAssign(c,k.nonComputedMember("l",a.name)));(k.state.expensiveChecks||Fb(a.name))&&k.addEnsureSafeObject(c);e(c);break;case s.MemberExpression:g=d&&(d.context=this.nextId())|| -this.nextId();c=c||this.nextId();k.recurse(a.object,g,w,function(){k.if_(k.notNull(g),function(){if(a.computed)l=k.nextId(),k.recurse(a.property,l),k.getStringValue(l),k.addEnsureSafeMemberName(l),f&&1!==f&&k.if_(k.not(k.computedMember(g,l)),k.lazyAssign(k.computedMember(g,l),"{}")),p=k.ensureSafeObject(k.computedMember(g,l)),k.assign(c,p),d&&(d.computed=!0,d.name=l);else{Xa(a.property.name);f&&1!==f&&k.if_(k.not(k.nonComputedMember(g,a.property.name)),k.lazyAssign(k.nonComputedMember(g,a.property.name), -"{}"));p=k.nonComputedMember(g,a.property.name);if(k.state.expensiveChecks||Fb(a.property.name))p=k.ensureSafeObject(p);k.assign(c,p);d&&(d.computed=!1,d.name=a.property.name)}},function(){k.assign(c,"undefined")});e(c)},!!f);break;case s.CallExpression:c=c||this.nextId();a.filter?(l=k.filter(a.callee.name),n=[],m(a.arguments,function(a){var c=k.nextId();k.recurse(a,c);n.push(c)}),p=l+"("+n.join(",")+")",k.assign(c,p),e(c)):(l=k.nextId(),g={},n=[],k.recurse(a.callee,l,g,function(){k.if_(k.notNull(l), -function(){k.addEnsureSafeFunction(l);m(a.arguments,function(a){k.recurse(a,k.nextId(),w,function(a){n.push(k.ensureSafeObject(a))})});g.name?(k.state.expensiveChecks||k.addEnsureSafeObject(g.context),p=k.member(g.context,g.name,g.computed)+"("+n.join(",")+")"):p=l+"("+n.join(",")+")";p=k.ensureSafeObject(p);k.assign(c,p)},function(){k.assign(c,"undefined")});e(c)}));break;case s.AssignmentExpression:l=this.nextId();g={};if(!pd(a.left))throw Z("lval");this.recurse(a.left,w,g,function(){k.if_(k.notNull(g.context), -function(){k.recurse(a.right,l);k.addEnsureSafeObject(k.member(g.context,g.name,g.computed));k.addEnsureSafeAssignContext(g.context);p=k.member(g.context,g.name,g.computed)+a.operator+l;k.assign(c,p);e(c||p)})},1);break;case s.ArrayExpression:n=[];m(a.elements,function(a){k.recurse(a,k.nextId(),w,function(a){n.push(a)})});p="["+n.join(",")+"]";this.assign(c,p);e(p);break;case s.ObjectExpression:n=[];m(a.properties,function(a){k.recurse(a.value,k.nextId(),w,function(c){n.push(k.escape(a.key.type=== -s.Identifier?a.key.name:""+a.key.value)+":"+c)})});p="{"+n.join(",")+"}";this.assign(c,p);e(p);break;case s.ThisExpression:this.assign(c,"s");e("s");break;case s.NGValueParameter:this.assign(c,"v"),e("v")}},getHasOwnProperty:function(a,c){var d=a+"."+c,e=this.current().own;e.hasOwnProperty(d)||(e[d]=this.nextId(!1,a+"&&("+this.escape(c)+" in "+a+")"));return e[d]},assign:function(a,c){if(a)return this.current().body.push(a,"=",c,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]= -this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,c){return"ifDefined("+a+","+this.escape(c)+")"},plus:function(a,c){return"plus("+a+","+c+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,c,d){if(!0===a)c();else{var e=this.current().body;e.push("if(",a,"){");c();e.push("}");d&&(e.push("else{"),d(),e.push("}"))}},not:function(a){return"!("+a+")"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,c){return a+"."+c},computedMember:function(a, -c){return a+"["+c+"]"},member:function(a,c,d){return d?this.computedMember(a,c):this.nonComputedMember(a,c)},addEnsureSafeObject:function(a){this.current().body.push(this.ensureSafeObject(a),";")},addEnsureSafeMemberName:function(a){this.current().body.push(this.ensureSafeMemberName(a),";")},addEnsureSafeFunction:function(a){this.current().body.push(this.ensureSafeFunction(a),";")},addEnsureSafeAssignContext:function(a){this.current().body.push(this.ensureSafeAssignContext(a),";")},ensureSafeObject:function(a){return"ensureSafeObject("+ -a+",text)"},ensureSafeMemberName:function(a){return"ensureSafeMemberName("+a+",text)"},ensureSafeFunction:function(a){return"ensureSafeFunction("+a+",text)"},getStringValue:function(a){this.assign(a,"getStringValue("+a+",text)")},ensureSafeAssignContext:function(a){return"ensureSafeAssignContext("+a+",text)"},lazyRecurse:function(a,c,d,e,f,h){var g=this;return function(){g.recurse(a,c,d,e,f,h)}},lazyAssign:function(a,c){var d=this;return function(){d.assign(a,c)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g, -stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(G(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(V(a))return a.toString();if(!0===a)return"true";if(!1===a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw Z("esc");},nextId:function(a,c){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(c?"="+c:""));return d},current:function(){return this.state[this.state.computing]}}; -td.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.expression=a;this.expensiveChecks=c;U(e,d.$filter);var f,h;if(f=qd(e))h=this.recurse(f);f=od(e.body);var g;f&&(g=[],m(f,function(a,c){var e=d.recurse(a);a.input=e;g.push(e);a.watchId=c}));var l=[];m(e.body,function(a){l.push(d.recurse(a.expression))});f=0===e.body.length?function(){}:1===e.body.length?l[0]:function(a,c){var d;m(l,function(e){d=e(a,c)});return d};h&&(f.assign=function(a,c,d){return h(a,d,c)});g&&(f.inputs= -g);f.literal=rd(e);f.constant=e.constant;return f},recurse:function(a,c,d){var e,f,h=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case s.Literal:return this.value(a.value,c);case s.UnaryExpression:return f=this.recurse(a.argument),this["unary"+a.operator](f,c);case s.BinaryExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e,f,c);case s.LogicalExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e, -f,c);case s.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),c);case s.Identifier:return Xa(a.name,h.expression),h.identifier(a.name,h.expensiveChecks||Fb(a.name),c,d,h.expression);case s.MemberExpression:return e=this.recurse(a.object,!1,!!d),a.computed||(Xa(a.property.name,h.expression),f=a.property.name),a.computed&&(f=this.recurse(a.property)),a.computed?this.computedMember(e,f,c,d,h.expression):this.nonComputedMember(e,f, -h.expensiveChecks,c,d,h.expression);case s.CallExpression:return g=[],m(a.arguments,function(a){g.push(h.recurse(a))}),a.filter&&(f=this.$filter(a.callee.name)),a.filter||(f=this.recurse(a.callee,!0)),a.filter?function(a,d,e,h){for(var r=[],m=0;m":function(a,c,d){return function(e,f,h,g){e=a(e,f,h,g)>c(e,f,h,g);return d?{value:e}:e}},"binary<=":function(a,c,d){return function(e,f,h,g){e=a(e,f,h,g)<=c(e,f,h,g);return d?{value:e}:e}},"binary>=":function(a,c,d){return function(e,f,h,g){e=a(e,f,h,g)>=c(e,f,h,g);return d?{value:e}:e}},"binary&&":function(a,c,d){return function(e, -f,h,g){e=a(e,f,h,g)&&c(e,f,h,g);return d?{value:e}:e}},"binary||":function(a,c,d){return function(e,f,h,g){e=a(e,f,h,g)||c(e,f,h,g);return d?{value:e}:e}},"ternary?:":function(a,c,d,e){return function(f,h,g,l){f=a(f,h,g,l)?c(f,h,g,l):d(f,h,g,l);return e?{value:f}:f}},value:function(a,c){return function(){return c?{context:w,name:w,value:a}:a}},identifier:function(a,c,d,e,f){return function(h,g,l,k){h=g&&a in g?g:h;e&&1!==e&&h&&!h[a]&&(h[a]={});g=h?h[a]:w;c&&Ba(g,f);return d?{context:h,name:a,value:g}: -g}},computedMember:function(a,c,d,e,f){return function(h,g,l,k){var n=a(h,g,l,k),p,m;null!=n&&(p=c(h,g,l,k),p=kd(p),Xa(p,f),e&&1!==e&&n&&!n[p]&&(n[p]={}),m=n[p],Ba(m,f));return d?{context:n,name:p,value:m}:m}},nonComputedMember:function(a,c,d,e,f,h){return function(g,l,k,n){g=a(g,l,k,n);f&&1!==f&&g&&!g[c]&&(g[c]={});l=null!=g?g[c]:w;(d||Fb(c))&&Ba(l,h);return e?{context:g,name:c,value:l}:l}},inputs:function(a,c){return function(d,e,f,h){return h?h[c]:a(d,e,f)}}};var fc=function(a,c,d){this.lexer= -a;this.$filter=c;this.options=d;this.ast=new s(this.lexer);this.astCompiler=d.csp?new td(this.ast,c):new sd(this.ast,c)};fc.prototype={constructor:fc,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};fa();fa();var Yf=Object.prototype.valueOf,Ca=I("$sce"),oa={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},ga=I("$compile"),$=X.createElement("a"),xd=Aa(Q.location.href);yd.$inject=["$document"];Kc.$inject=["$provide"];zd.$inject=["$locale"];Bd.$inject= -["$locale"];var hc=".",hg={yyyy:aa("FullYear",4),yy:aa("FullYear",2,0,!0),y:aa("FullYear",1),MMMM:Hb("Month"),MMM:Hb("Month",!0),MM:aa("Month",2,1),M:aa("Month",1,1),dd:aa("Date",2),d:aa("Date",1),HH:aa("Hours",2),H:aa("Hours",1),hh:aa("Hours",2,-12),h:aa("Hours",1,-12),mm:aa("Minutes",2),m:aa("Minutes",1),ss:aa("Seconds",2),s:aa("Seconds",1),sss:aa("Milliseconds",3),EEEE:Hb("Day"),EEE:Hb("Day",!0),a:function(a,c){return 12>a.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a,c,d){a=-1*d;return a=(0<= -a?"+":"")+(Gb(Math[0=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},gg=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,fg=/^\-?\d+$/;Ad.$inject=["$locale"];var cg=qa(F),dg=qa(sb);Cd.$inject=["$parse"];var he=qa({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"=== -va.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),tb={};m(Bb,function(a,c){function d(a,d,f){a.$watch(f[e],function(a){f.$set(c,!!a)})}if("multiple"!=a){var e=ya("ng-"+c),f=d;"checked"===a&&(f=function(a,c,f){f.ngModel!==f[e]&&d(a,c,f)});tb[e]=function(){return{restrict:"A",priority:100,link:f}}}});m($c,function(a,c){tb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(jg))){f.$set("ngPattern", -new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});m(["src","srcset","href"],function(a){var c=ya("ng-"+a);tb[c]=function(){return{priority:99,link:function(d,e,f){var h=a,g=a;"href"===a&&"[object SVGAnimatedString]"===va.call(e.prop("href"))&&(g="xlinkHref",f.$attr[g]="xlink:href",h=null);f.$observe(c,function(c){c?(f.$set(g,c),Wa&&h&&e.prop(h,f[g])):"href"===a&&f.$set(g,null)})}}}});var Ib={$addControl:y,$$renameControl:function(a,c){a.$name=c},$removeControl:y,$setValidity:y, -$setDirty:y,$setPristine:y,$setSubmitted:y};Gd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Od=function(a){return["$timeout","$parse",function(c,d){function e(a){return""===a?d('this[""]').assign:d(a).assign||y}return{name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:Gd,compile:function(d,h){d.addClass(Ya).addClass(mb);var g=h.name?"name":a&&h.ngForm?"ngForm":!1;return{pre:function(a,d,f,h){var m=h[0];if(!("action"in f)){var t=function(c){a.$apply(function(){m.$commitViewValue(); -m.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",t,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",t,!1)},0,!1)})}(h[1]||m.$$parentForm).$addControl(m);var s=g?e(m.$name):y;g&&(s(a,m),f.$observe(g,function(c){m.$name!==c&&(s(a,w),m.$$parentForm.$$renameControl(m,c),s=e(m.$name),s(a,m))}));d.on("$destroy",function(){m.$$parentForm.$removeControl(m);s(a,w);P(m,Ib)})}}}}}]},ie=Od(),ve=Od(!0),ig=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/, -sg=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,tg=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,ug=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Pd=/^(\d{4})-(\d{2})-(\d{2})$/,Qd=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,lc=/^(\d{4})-W(\d\d)$/,Rd=/^(\d{4})-(\d\d)$/,Sd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Td={text:function(a,c,d,e,f,h){jb(a,c,d,e,f,h);jc(e)},date:kb("date", -Pd,Kb(Pd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":kb("datetimelocal",Qd,Kb(Qd,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:kb("time",Sd,Kb(Sd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:kb("week",lc,function(a,c){if(ea(a))return a;if(G(a)){lc.lastIndex=0;var d=lc.exec(a);if(d){var e=+d[1],f=+d[2],h=d=0,g=0,l=0,k=Ed(e),f=7*(f-1);c&&(d=c.getHours(),h=c.getMinutes(),g=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,h,g,l)}}return NaN},"yyyy-Www"), -month:kb("month",Rd,Kb(Rd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,h){Id(a,c,d,e);jb(a,c,d,e,f,h);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:ug.test(a)?parseFloat(a):w});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!V(a))throw lb("numfmt",a);a=a.toString()}return a});if(A(d.min)||d.ngMin){var g;e.$validators.min=function(a){return e.$isEmpty(a)||v(g)||a>=g};d.$observe("min",function(a){A(a)&&!V(a)&&(a=parseFloat(a,10));g=V(a)&&!isNaN(a)?a:w;e.$validate()})}if(A(d.max)|| -d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||v(l)||a<=l};d.$observe("max",function(a){A(a)&&!V(a)&&(a=parseFloat(a,10));l=V(a)&&!isNaN(a)?a:w;e.$validate()})}},url:function(a,c,d,e,f,h){jb(a,c,d,e,f,h);jc(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||sg.test(d)}},email:function(a,c,d,e,f,h){jb(a,c,d,e,f,h);jc(e);e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||tg.test(d)}},radio:function(a,c, -d,e){v(d.name)&&c.attr("name",++nb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,h,g,l){var k=Jd(l,a,"ngTrueValue",d.ngTrueValue,!0),n=Jd(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&&a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return ka(a, -k)});e.$parsers.push(function(a){return a?k:n})},hidden:y,button:y,submit:y,reset:y,file:y},Ec=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,h,g,l){l[0]&&(Td[F(g.type)]||Td.text)(f,h,g,l[0],c,a,d,e)}}}}],vg=/^(true|false|\d+)$/,Ne=function(){return{restrict:"A",priority:100,compile:function(a,c){return vg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value", -a)})}}}},ne=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=v(a)?"":a})}}}}],pe=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,h){d=a(f.attr(h.$attr.ngBindTemplate));c.$$addBindingInfo(f,d.expressions);f=f[0];h.$observe("ngBindTemplate",function(a){f.textContent=v(a)?"":a})}}}}],oe=["$sce","$parse", -"$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var h=c(f.ngBindHtml),g=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(g,function(){e.html(a.getTrustedHtml(h(c))||"")})}}}}],Me=qa({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),qe=kc("",!0),se=kc("Odd",0),re=kc("Even",1),te=Na({compile:function(a,c){c.$set("ngCloak", -w);a.removeClass("ng-cloak")}}),ue=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Jc={},wg={blur:!0,focus:!0};m("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=ya("ng-"+a);Jc[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,h){var g=d(h[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){g(c,{$event:d})}; -wg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var xe=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,h){var g,l,k;c.$watch(e.ngIf,function(c){c?l||h(function(c,f){l=f;c[c.length++]=X.createComment(" end ngIf: "+e.ngIf+" ");g={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),g&&(k=rb(g.clone),a.leave(k).then(function(){k=null}),g=null))})}}}],ye=["$templateRequest","$anchorScroll", -"$animate",function(a,c,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:da.noop,compile:function(e,f){var h=f.ngInclude||f.src,g=f.onload||"",l=f.autoscroll;return function(e,f,m,r,t){var s=0,v,u,q,z=function(){u&&(u.remove(),u=null);v&&(v.$destroy(),v=null);q&&(d.leave(q).then(function(){u=null}),u=q,q=null)};e.$watch(h,function(h){var m=function(){!A(l)||l&&!e.$eval(l)||c()},p=++s;h?(a(h,!0).then(function(a){if(p===s){var c=e.$new();r.template=a;a=t(c,function(a){z(); -d.enter(a,null,f).then(m)});v=c;q=a;v.$emit("$includeContentLoaded",h);e.$eval(g)}},function(){p===s&&(z(),e.$emit("$includeContentError",h))}),e.$emit("$includeContentRequested",h)):(z(),r.template=null)})}}}}],Pe=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Mc(f.template,X).childNodes)(c,function(a){d.append(a)},{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],ze=Na({priority:450, -compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),Le=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",h="false"!==d.ngTrim,g=h?T(f):f;e.$parsers.push(function(a){if(!v(a)){var c=[];a&&m(a.split(g),function(a){a&&c.push(h?T(a):a)});return c}});e.$formatters.push(function(a){return J(a)?a.join(f):w});e.$isEmpty=function(a){return!a||!a.length}}}},mb="ng-valid",Kd="ng-invalid",Ya="ng-pristine",Jb="ng-dirty",Md= -"ng-pending",lb=I("ngModel"),xg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,h,g,l,k,n){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=w;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending= -w;this.$name=n(d.name||"",!1)(a);this.$$parentForm=Ib;var p=f(d.ngModel),r=p.assign,t=p,s=r,K=null,u,q=this;this.$$setOptions=function(a){if((q.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");t=function(a){var d=p(a);x(d)&&(d=c(a));return d};s=function(a,c){x(p(a))?g(a,{$$$p:q.$modelValue}):r(a,q.$modelValue)}}else if(!p.assign)throw lb("nonassign",d.ngModel,xa(e));};this.$render=y;this.$isEmpty=function(a){return v(a)||""===a||null===a||a!==a};var z=0;Hd({ctrl:this,$element:e, -set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},$animate:h});this.$setPristine=function(){q.$dirty=!1;q.$pristine=!0;h.removeClass(e,Jb);h.addClass(e,Ya)};this.$setDirty=function(){q.$dirty=!0;q.$pristine=!1;h.removeClass(e,Ya);h.addClass(e,Jb);q.$$parentForm.$setDirty()};this.$setUntouched=function(){q.$touched=!1;q.$untouched=!0;h.setClass(e,"ng-untouched","ng-touched")};this.$setTouched=function(){q.$touched=!0;q.$untouched=!1;h.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue= -function(){g.cancel(K);q.$viewValue=q.$$lastCommittedViewValue;q.$render()};this.$validate=function(){if(!V(q.$modelValue)||!isNaN(q.$modelValue)){var a=q.$$rawModelValue,c=q.$valid,d=q.$modelValue,e=q.$options&&q.$options.allowInvalid;q.$$runValidators(a,q.$$lastCommittedViewValue,function(f){e||c===f||(q.$modelValue=f?a:w,q.$modelValue!==d&&q.$$writeModelToScope())})}};this.$$runValidators=function(a,c,d){function e(){var d=!0;m(q.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d? -!0:(m(q.$asyncValidators,function(a,c){g(c,null)}),!1)}function f(){var d=[],e=!0;m(q.$asyncValidators,function(f,h){var k=f(a,c);if(!k||!x(k.then))throw lb("$asyncValidators",k);g(h,w);d.push(k.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},y):h(!0)}function g(a,c){l===z&&q.$setValidity(a,c)}function h(a){l===z&&d(a)}z++;var l=z;(function(){var a=q.$$parserName||"parse";if(v(u))g(a,null);else return u||(m(q.$validators,function(a,c){g(c,null)}),m(q.$asyncValidators, -function(a,c){g(c,null)})),g(a,u),u;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=q.$viewValue;g.cancel(K);if(q.$$lastCommittedViewValue!==a||""===a&&q.$$hasNativeValidators)q.$$lastCommittedViewValue=a,q.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=q.$$lastCommittedViewValue;if(u=v(c)?w:!0)for(var d=0;df||e.$isEmpty(c)||c.length<=f}}}}},Hc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=Y(a)||0;e.$validate()}); -e.$validators.minlength=function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};Q.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(ce(),ee(da),da.module("ngLocale",[],["$provide",function(a){function c(a){a+="";var c=a.indexOf(".");return-1==c?0:a.length-c-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "), -SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3, -maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",pluralCat:function(a,e){var f=a|0,h=e;w===h&&(h=Math.min(c(a),3));Math.pow(10,h);return 1==f&&0==h?"one":"other"}})}]),B(X).ready(function(){Zd(X,zc)}))})(window,document);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(''); +(function(v){'use strict';function O(a){return function(){var b=arguments[0],d;d="["+(a?a+":":"")+b+"] http://errors.angularjs.org/1.5.5/"+(a?a+"/":"")+b;for(b=1;b").append(a).html();try{return a[0].nodeType===Ma?P(d):d.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+P(b)})}catch(c){return P(d)}} +function wc(a){try{return decodeURIComponent(a)}catch(b){}}function xc(a){var b={};q((a||"").split("&"),function(a){var c,e,f;a&&(e=a=a.replace(/\+/g,"%20"),c=a.indexOf("="),-1!==c&&(e=a.substring(0,c),f=a.substring(c+1)),e=wc(e),x(e)&&(f=x(f)?wc(f):!0,ua.call(b,e)?K(b[e])?b[e].push(f):b[e]=[b[e],f]:b[e]=f))});return b}function Rb(a){var b=[];q(a,function(a,c){K(a)?q(a,function(a){b.push(ja(c,!0)+(!0===a?"":"="+ja(a,!0)))}):b.push(ja(c,!0)+(!0===a?"":"="+ja(a,!0)))});return b.length?b.join("&"):""} +function ob(a){return ja(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ja(a,b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,b?"%20":"+")}function de(a,b){var d,c,e=Na.length;for(c=0;c/,">"));}b=b||[];b.unshift(["$provide",function(b){b.value("$rootElement",a)}]);d.debugInfoEnabled&&b.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]); +b.unshift("ng");c=bb(b,d.strictDi);c.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;v&&e.test(v.name)&&(d.debugInfoEnabled=!0,v.name=v.name.replace(e,""));if(v&&!f.test(v.name))return c();v.name=v.name.replace(f,"");ea.resumeBootstrap=function(a){q(a,function(a){b.push(a)});return c()};E(ea.resumeDeferredBootstrap)&&ea.resumeDeferredBootstrap()}function fe(){v.name= +"NG_ENABLE_DEBUG_INFO!"+v.name;v.location.reload()}function ge(a){a=ea.element(a).injector();if(!a)throw Aa("test");return a.get("$$testability")}function zc(a,b){b=b||"_";return a.replace(he,function(a,c){return(c?b:"")+a.toLowerCase()})}function ie(){var a;if(!Ac){var b=pb();(Z=y(b)?v.jQuery:b?v[b]:void 0)&&Z.fn.on?(B=Z,R(Z.fn,{scope:Oa.scope,isolateScope:Oa.isolateScope,controller:Oa.controller,injector:Oa.injector,inheritedData:Oa.inheritedData}),a=Z.cleanData,Z.cleanData=function(b){for(var c, +e=0,f;null!=(f=b[e]);e++)(c=Z._data(f,"events"))&&c.$destroy&&Z(f).triggerHandler("$destroy");a(b)}):B=U;ea.element=B;Ac=!0}}function qb(a,b,d){if(!a)throw Aa("areq",b||"?",d||"required");return a}function Pa(a,b,d){d&&K(a)&&(a=a[a.length-1]);qb(E(a),b,"not a function, got "+(a&&"object"===typeof a?a.constructor.name||"Object":typeof a));return a}function Qa(a,b){if("hasOwnProperty"===a)throw Aa("badname",b);}function Bc(a,b,d){if(!b)return a;b=b.split(".");for(var c,e=a,f=b.length,g=0;g")+c[2];for(c=c[0];c--;)d=d.lastChild;f=$a(f,d.childNodes);d=e.firstChild;d.textContent=""}else f.push(b.createTextNode(a));e.textContent="";e.innerHTML="";q(f,function(a){e.appendChild(a)}); +return e}function Mc(a,b){var d=a.parentNode;d&&d.replaceChild(b,a);b.appendChild(a)}function U(a){if(a instanceof U)return a;var b;F(a)&&(a=V(a),b=!0);if(!(this instanceof U)){if(b&&"<"!=a.charAt(0))throw Ub("nosel");return new U(a)}if(b){b=v.document;var d;a=(d=Mf.exec(a))?[b.createElement(d[1])]:(d=Lc(a,b))?d.childNodes:[]}Nc(this,a)}function Vb(a){return a.cloneNode(!0)}function ub(a,b){b||db(a);if(a.querySelectorAll)for(var d=a.querySelectorAll("*"),c=0,e=d.length;c=Ca?!1:"function"===typeof a&&/^(?:class\s|constructor\()/.test(Function.prototype.toString.call(a));return d?(c.unshift(null),new (Function.prototype.bind.apply(a,c))):a.apply(b,c)},instantiate:function(a,b,c){var d=K(a)?a[a.length-1]:a;a=e(a,b,c);a.unshift(null);return new (Function.prototype.bind.apply(d, +a))},get:d,annotate:bb.$$annotate,has:function(b){return m.hasOwnProperty(b+"Provider")||a.hasOwnProperty(b)}}}b=!0===b;var k={},l=[],n=new Ra([],!0),m={$provide:{provider:d(c),factory:d(f),service:d(function(a,b){return f(a,["$injector",function(a){return a.instantiate(b)}])}),value:d(function(a,b){return f(a,da(b),!1)}),constant:d(function(a,b){Qa(a,"constant");m[a]=b;N[a]=b}),decorator:function(a,b){var c=r.get(a+"Provider"),d=c.$get;c.$get=function(){var a=w.invoke(d,c);return w.invoke(b,null, +{$delegate:a})}}}},r=m.$injector=h(m,function(a,b){ea.isString(b)&&l.push(b);throw Ga("unpr",l.join(" <- "));}),N={},M=h(N,function(a,b){var c=r.get(a+"Provider",b);return w.invoke(c.$get,c,void 0,a)}),w=M;m.$injectorProvider={$get:da(M)};var p=g(a),w=M.get("$injector");w.strictDi=b;q(p,function(a){a&&w.invoke(a)});return w}function We(){var a=!0;this.disableAutoScrolling=function(){a=!1};this.$get=["$window","$location","$rootScope",function(b,d,c){function e(a){var b=null;Array.prototype.some.call(a, +function(a){if("a"===va(a))return b=a,!0});return b}function f(a){if(a){a.scrollIntoView();var c;c=g.yOffset;E(c)?c=c():Ob(c)?(c=c[0],c="fixed"!==b.getComputedStyle(c).position?0:c.getBoundingClientRect().bottom):Q(c)||(c=0);c&&(a=a.getBoundingClientRect().top,b.scrollBy(0,a-c))}else b.scrollTo(0,0)}function g(a){a=F(a)?a:d.hash();var b;a?(b=h.getElementById(a))?f(b):(b=e(h.getElementsByName(a)))?f(b):"top"===a&&f(null):f(null)}var h=b.document;a&&c.$watch(function(){return d.hash()},function(a,b){a=== +b&&""===a||Of(function(){c.$evalAsync(g)})});return g}]}function fb(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;K(a)&&(a=a.join(" "));K(b)&&(b=b.join(" "));return a+" "+b}function Xf(a){F(a)&&(a=a.split(" "));var b=T();q(a,function(a){a.length&&(b[a]=!0)});return b}function Ha(a){return G(a)?a:{}}function Yf(a,b,d,c){function e(a){try{a.apply(null,za.call(arguments,1))}finally{if(M--,0===M)for(;w.length;)try{w.pop()()}catch(b){d.error(b)}}}function f(){u=null;g();h()}function g(){p=I(); +p=y(p)?null:p;pa(p,L)&&(p=L);L=p}function h(){if(t!==k.url()||H!==p)t=k.url(),H=p,q(J,function(a){a(k.url(),p)})}var k=this,l=a.location,n=a.history,m=a.setTimeout,r=a.clearTimeout,N={};k.isMock=!1;var M=0,w=[];k.$$completeOutstandingRequest=e;k.$$incOutstandingRequestCount=function(){M++};k.notifyWhenNoOutstandingRequests=function(a){0===M?a():w.push(a)};var p,H,t=l.href,z=b.find("base"),u=null,I=c.history?function(){try{return n.state}catch(a){}}:C;g();H=p;k.url=function(b,d,e){y(e)&&(e=null);l!== +a.location&&(l=a.location);n!==a.history&&(n=a.history);if(b){var f=H===e;if(t===b&&(!c.history||f))return k;var h=t&&Ia(t)===Ia(b);t=b;H=e;if(!c.history||h&&f){if(!h||u)u=b;d?l.replace(b):h?(d=l,e=b.indexOf("#"),e=-1===e?"":b.substr(e),d.hash=e):l.href=b;l.href!==b&&(u=b)}else n[d?"replaceState":"pushState"](e,"",b),g(),H=p;return k}return u||l.href.replace(/%27/g,"'")};k.state=function(){return p};var J=[],D=!1,L=null;k.onUrlChange=function(b){if(!D){if(c.history)B(a).on("popstate",f);B(a).on("hashchange", +f);D=!0}J.push(b);return b};k.$$applicationDestroyed=function(){B(a).off("hashchange popstate",f)};k.$$checkUrlChange=h;k.baseHref=function(){var a=z.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""};k.defer=function(a,b){var c;M++;c=m(function(){delete N[c];e(a)},b||0);N[c]=!0;return c};k.defer.cancel=function(a){return N[a]?(delete N[a],r(a),e(C),!0):!1}}function cf(){this.$get=["$window","$log","$sniffer","$document",function(a,b,d,c){return new Yf(a,c,b,d)}]}function df(){this.$get= +function(){function a(a,c){function e(a){a!=m&&(r?r==a&&(r=a.n):r=a,f(a.n,a.p),f(a,m),m=a,m.n=null)}function f(a,b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(a in b)throw O("$cacheFactory")("iid",a);var g=0,h=R({},c,{id:a}),k=T(),l=c&&c.capacity||Number.MAX_VALUE,n=T(),m=null,r=null;return b[a]={put:function(a,b){if(!y(b)){if(ll&&this.remove(r.key);return b}},get:function(a){if(l";b=na.firstChild.attributes;var d=b[0];b.removeNamedItem(d.name);d.value=c;a.attributes.setNamedItem(d)}function A(a,b){try{a.addClass(b)}catch(c){}}function ba(a,b,c,d,e){a instanceof B||(a=B(a));for(var f=/\S+/,g=0,h=a.length;g").append(a).html())):c?Oa.clone.call(a):a;if(g)for(var h in g)d.data("$"+h+"Controller",g[h].instance);ba.$$addScopeInfo(d,b);c&&c(d,b);l&&l(b,d,d,f);return d}}function s(a,b,c,d,e,f){function g(a, +c,d,e){var f,k,l,m,n,t,p;if(r)for(p=Array(c.length),m=0;mA.priority)break;if(v=A.scope)A.templateUrl||(G(v)?(W("new/isolated scope",D||r,A,z),D=A):W("new/isolated scope",D,A,z)),r=r||A;M=A.name;if(!ka&&(A.replace&&(A.templateUrl||A.template)||A.transclude&&!A.$$tlb)){for(v=F+1;ka=a[v++];)if(ka.transclude&&!ka.$$tlb||ka.replace&&(ka.templateUrl||ka.template)){C=!0;break}ka=!0}!A.templateUrl&&A.controller&&(v=A.controller,I=I||T(),W("'"+M+"' controller",I[M],A,z),I[M]=A);if(v=A.transclude)if(u=!0,A.$$tlb||(W("transclusion",w,A,z),w=A),"element"==v)H= +!0,t=A.priority,$=z,z=d.$$element=B(ba.$$createComment(M,d[M])),b=z[0],da(f,za.call($,0),b),$[0].$$parentNode=$[0].parentNode,s=Yb(C,$,e,t,g&&g.name,{nonTlbTranscludeDirective:w});else{var la=T();$=B(Vb(b)).contents();if(G(v)){$=[];var Y=T(),X=T();q(v,function(a,b){var c="?"===a.charAt(0);a=c?a.substring(1):a;Y[a]=b;la[b]=null;X[b]=c});q(z.contents(),function(a){var b=Y[xa(va(a))];b?(X[b]=!0,la[b]=la[b]||[],la[b].push(a)):$.push(a)});q(X,function(a,b){if(!a)throw ga("reqslot",b);});for(var Z in la)la[Z]&& +(la[Z]=Yb(C,la[Z],e))}z.empty();s=Yb(C,$,e,void 0,void 0,{needsNewScope:A.$$isolateScope||A.$$newScope});s.$$slots=la}if(A.template)if(L=!0,W("template",J,A,z),J=A,v=E(A.template)?A.template(z,d):A.template,v=ta(v),A.replace){g=A;$=Tb.test(v)?Yc(ca(A.templateNamespace,V(v))):[];b=$[0];if(1!=$.length||1!==b.nodeType)throw ga("tplrt",M,"");da(f,z,b);Ba={$attr:{}};v=x(b,[],Ba);var ea=a.splice(F+1,a.length-(F+1));(D||r)&&Zc(v,D,r);a=a.concat(v).concat(ea);U(d,Ba);Ba=a.length}else z.html(v);if(A.templateUrl)L= +!0,W("template",J,A,z),J=A,A.replace&&(g=A),n=aa(a.splice(F,a.length-F),z,d,f,u&&s,h,k,{controllerDirectives:I,newScopeDirective:r!==A&&r,newIsolateScopeDirective:D,templateDirective:J,nonTlbTranscludeDirective:w}),Ba=a.length;else if(A.compile)try{Sa=A.compile(z,d,s),E(Sa)?m(null,Sa,P,Q):Sa&&m(Sa.pre,Sa.post,P,Q)}catch(fa){c(fa,wa(z))}A.terminal&&(n.terminal=!0,t=Math.max(t,A.priority))}n.scope=r&&!0===r.scope;n.transcludeOnThisElement=u;n.templateOnThisElement=L;n.transclude=s;l.hasElementTranscludeDirective= +H;return n}function gb(a,b,c,d){var e;if(F(b)){var f=b.match(k);b=b.substring(f[0].length);var g=f[1]||f[3],f="?"===f[2];"^^"===g?c=c.parent():e=(e=d&&d[b])&&e.instance;if(!e){var h="$"+b+"Controller";e=g?c.inheritedData(h):c.data(h)}if(!e&&!f)throw ga("ctreq",b,a);}else if(K(b))for(e=[],g=0,f=b.length;gn.priority)&&-1!=n.restrict.indexOf(g)){l&&(n=Pb(n,{$$start:l,$$end:m}));if(!n.$$bindings){var I= +n,D=n,A=n.name,J={isolateScope:null,bindToController:null};G(D.scope)&&(!0===D.bindToController?(J.bindToController=d(D.scope,A,!0),J.isolateScope={}):J.isolateScope=d(D.scope,A,!1));G(D.bindToController)&&(J.bindToController=d(D.bindToController,A,!0));if(G(J.bindToController)){var w=D.controller,z=D.controllerAs;if(!w)throw ga("noctrl",A);if(!Uc(w,z))throw ga("noident",A);}var u=I.$$bindings=J;G(u.isolateScope)&&(n.$$isolateBindings=u.isolateScope)}b.push(n);k=n}}catch(L){c(L)}}return k}function Q(b){if(e.hasOwnProperty(b))for(var c= +a.get(b+"Directive"),d=0,f=c.length;d"+b+"";return c.childNodes[0].childNodes;default:return b}}function ea(a,b){if("srcdoc"==b)return I.HTML;var c=va(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return I.RESOURCE_URL}function fa(a,c,d,e,f){var g=ea(a,e);f=h[e]||f;var k=b(d,!0,g,f);if(k){if("multiple"===e&&"select"===va(a))throw ga("selmulti",wa(a));c.push({priority:100,compile:function(){return{pre:function(a, +c,h){c=h.$$observers||(h.$$observers=T());if(l.test(e))throw ga("nodomevents");var m=h[e];m!==d&&(k=m&&b(m,!0,g,f),d=m);k&&(h[e]=k(a),(c[e]||(c[e]=[])).$$inter=!0,(h.$$observers&&h.$$observers[e].$$scope||a).$watch(k,function(a,b){"class"===e&&a!=b?h.$updateClass(a,b):h.$set(e,a)}))}}}})}}function da(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g=b)return a;for(;b--;)8===a[b].nodeType&&Zf.call(a,b,1);return a}function Uc(a, +b){if(b&&F(b))return b;if(F(a)){var d=bd.exec(a);if(d)return d[3]}}function ef(){var a={},b=!1;this.has=function(b){return a.hasOwnProperty(b)};this.register=function(b,c){Qa(b,"controller");G(b)?R(a,b):a[b]=c};this.allowGlobals=function(){b=!0};this.$get=["$injector","$window",function(d,c){function e(a,b,c,d){if(!a||!G(a.$scope))throw O("$controller")("noscp",d,b);a.$scope[b]=c}return function(f,g,h,k){var l,n,m;h=!0===h;k&&F(k)&&(m=k);if(F(f)){k=f.match(bd);if(!k)throw $f("ctrlfmt",f);n=k[1];m= +m||k[3];f=a.hasOwnProperty(n)?a[n]:Bc(g.$scope,n,!0)||(b?Bc(c,n,!0):void 0);Pa(f,n,!0)}if(h)return h=(K(f)?f[f.length-1]:f).prototype,l=Object.create(h||null),m&&e(g,m,l,n||f.name),R(function(){var a=d.invoke(f,l,g,n);a!==l&&(G(a)||E(a))&&(l=a,m&&e(g,m,l,n||f.name));return l},{instance:l,identifier:m});l=d.instantiate(f,g,n);m&&e(g,m,l,n||f.name);return l}}]}function ff(){this.$get=["$window",function(a){return B(a.document)}]}function gf(){this.$get=["$log",function(a){return function(b,d){a.error.apply(a, +arguments)}}]}function $b(a){return G(a)?fa(a)?a.toISOString():ab(a):a}function mf(){this.$get=function(){return function(a){if(!a)return"";var b=[];pc(a,function(a,c){null===a||y(a)||(K(a)?q(a,function(a){b.push(ja(c)+"="+ja($b(a)))}):b.push(ja(c)+"="+ja($b(a))))});return b.join("&")}}}function nf(){this.$get=function(){return function(a){function b(a,e,f){null===a||y(a)||(K(a)?q(a,function(a,c){b(a,e+"["+(G(a)?c:"")+"]")}):G(a)&&!fa(a)?pc(a,function(a,c){b(a,e+(f?"":"[")+c+(f?"":"]"))}):d.push(ja(e)+ +"="+ja($b(a))))}if(!a)return"";var d=[];b(a,"",!0);return d.join("&")}}}function ac(a,b){if(F(a)){var d=a.replace(ag,"").trim();if(d){var c=b("Content-Type");(c=c&&0===c.indexOf(cd))||(c=(c=d.match(bg))&&cg[c[0]].test(d));c&&(a=uc(d))}}return a}function dd(a){var b=T(),d;F(a)?q(a.split("\n"),function(a){d=a.indexOf(":");var e=P(V(a.substr(0,d)));a=V(a.substr(d+1));e&&(b[e]=b[e]?b[e]+", "+a:a)}):G(a)&&q(a,function(a,d){var f=P(d),g=V(a);f&&(b[f]=b[f]?b[f]+", "+g:g)});return b}function ed(a){var b; +return function(d){b||(b=dd(a));return d?(d=b[P(d)],void 0===d&&(d=null),d):b}}function fd(a,b,d,c){if(E(c))return c(a,b,d);q(c,function(c){a=c(a,b,d)});return a}function lf(){var a=this.defaults={transformResponse:[ac],transformRequest:[function(a){return G(a)&&"[object File]"!==ma.call(a)&&"[object Blob]"!==ma.call(a)&&"[object FormData]"!==ma.call(a)?ab(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ha(bc),put:ha(bc),patch:ha(bc)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN", +paramSerializer:"$httpParamSerializer"},b=!1;this.useApplyAsync=function(a){return x(a)?(b=!!a,this):b};var d=!0;this.useLegacyPromiseExtensions=function(a){return x(a)?(d=!!a,this):d};var c=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(e,f,g,h,k,l){function n(b){function c(a){var b=R({},a);b.data=fd(a.data,a.headers,a.status,f.transformResponse);a=a.status;return 200<=a&&300>a?b:k.reject(b)}function e(a,b){var c,d={};q(a,function(a, +e){E(a)?(c=a(b),null!=c&&(d[e]=c)):d[e]=a});return d}if(!G(b))throw O("$http")("badreq",b);if(!F(b.url))throw O("$http")("badreq",b.url);var f=R({method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse,paramSerializer:a.paramSerializer},b);f.headers=function(b){var c=a.headers,d=R({},b.headers),f,g,h,c=R({},c.common,c[P(b.method)]);a:for(f in c){g=P(f);for(h in d)if(P(h)===g)continue a;d[f]=c[f]}return e(d,ha(b))}(b);f.method=sb(f.method);f.paramSerializer=F(f.paramSerializer)? +l.get(f.paramSerializer):f.paramSerializer;var g=[function(b){var d=b.headers,e=fd(b.data,ed(d),void 0,b.transformRequest);y(e)&&q(d,function(a,b){"content-type"===P(b)&&delete d[b]});y(b.withCredentials)&&!y(a.withCredentials)&&(b.withCredentials=a.withCredentials);return m(b,e).then(c,c)},void 0],h=k.when(f);for(q(M,function(a){(a.request||a.requestError)&&g.unshift(a.request,a.requestError);(a.response||a.responseError)&&g.push(a.response,a.responseError)});g.length;){b=g.shift();var n=g.shift(), +h=h.then(b,n)}d?(h.success=function(a){Pa(a,"fn");h.then(function(b){a(b.data,b.status,b.headers,f)});return h},h.error=function(a){Pa(a,"fn");h.then(null,function(b){a(b.data,b.status,b.headers,f)});return h}):(h.success=gd("success"),h.error=gd("error"));return h}function m(c,d){function g(a){if(a){var c={};q(a,function(a,d){c[d]=function(c){function d(){a(c)}b?h.$applyAsync(d):h.$$phase?d():h.$apply(d)}});return c}}function l(a,c,d,e){function f(){m(c,a,d,e)}L&&(200<=a&&300>a?L.put(A,[a,c,dd(d), +e]):L.remove(A));b?h.$applyAsync(f):(f(),h.$$phase||h.$apply())}function m(a,b,d,e){b=-1<=b?b:0;(200<=b&&300>b?J.resolve:J.reject)({data:a,status:b,headers:ed(d),config:c,statusText:e})}function u(a){m(a.data,a.status,ha(a.headers()),a.statusText)}function I(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var J=k.defer(),D=J.promise,L,S,M=c.headers,A=r(c.url,c.paramSerializer(c.params));n.pendingRequests.push(c);D.then(I,I);!c.cache&&!a.cache||!1===c.cache||"GET"!==c.method&& +"JSONP"!==c.method||(L=G(c.cache)?c.cache:G(a.cache)?a.cache:N);L&&(S=L.get(A),x(S)?S&&E(S.then)?S.then(u,u):K(S)?m(S[1],S[0],ha(S[2]),S[3]):m(S,200,{},"OK"):L.put(A,D));y(S)&&((S=hd(c.url)?f()[c.xsrfCookieName||a.xsrfCookieName]:void 0)&&(M[c.xsrfHeaderName||a.xsrfHeaderName]=S),e(c.method,A,d,l,M,c.timeout,c.withCredentials,c.responseType,g(c.eventHandlers),g(c.uploadEventHandlers)));return D}function r(a,b){0=l&&(t.resolve(p), +w(z.$$intervalId),delete g[z.$$intervalId]);H||a.$apply()},k);g[z.$$intervalId]=t;return z}var g={};f.cancel=function(a){return a&&a.$$intervalId in g?(g[a.$$intervalId].reject("canceled"),b.clearInterval(a.$$intervalId),delete g[a.$$intervalId],!0):!1};return f}]}function cc(a){a=a.split("/");for(var b=a.length;b--;)a[b]=ob(a[b]);return a.join("/")}function id(a,b){var d=ra(a);b.$$protocol=d.protocol;b.$$host=d.hostname;b.$$port=X(d.port)||eg[d.protocol]||null}function jd(a,b){var d="/"!==a.charAt(0); +d&&(a="/"+a);var c=ra(a);b.$$path=decodeURIComponent(d&&"/"===c.pathname.charAt(0)?c.pathname.substring(1):c.pathname);b.$$search=xc(c.search);b.$$hash=decodeURIComponent(c.hash);b.$$path&&"/"!=b.$$path.charAt(0)&&(b.$$path="/"+b.$$path)}function na(a,b){if(0===b.indexOf(a))return b.substr(a.length)}function Ia(a){var b=a.indexOf("#");return-1==b?a:a.substr(0,b)}function hb(a){return a.replace(/(#.+)|#$/,"$1")}function dc(a,b,d){this.$$html5=!0;d=d||"";id(a,this);this.$$parse=function(a){var d=na(b, +a);if(!F(d))throw Eb("ipthprfx",a,b);jd(d,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var a=Rb(this.$$search),d=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=cc(this.$$path)+(a?"?"+a:"")+d;this.$$absUrl=b+this.$$url.substr(1)};this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;x(f=na(a,c))?(g=f,g=x(f=na(d,f))?b+(na("/",f)||f):a+g):x(f=na(b,c))?g=b+f:b==c+"/"&&(g=b);g&&this.$$parse(g);return!!g}}function ec(a,b,d){id(a,this); +this.$$parse=function(c){var e=na(a,c)||na(b,c),f;y(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",y(e)&&(a=c,this.replace())):(f=na(d,e),y(f)&&(f=e));jd(f,this);c=this.$$path;var e=a,g=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));g.exec(f)||(c=(f=g.exec(c))?f[1]:c);this.$$path=c;this.$$compose()};this.$$compose=function(){var b=Rb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=cc(this.$$path)+(b?"?"+b:"")+e;this.$$absUrl=a+(this.$$url?d+this.$$url:"")};this.$$parseLinkUrl= +function(b,d){return Ia(a)==Ia(b)?(this.$$parse(b),!0):!1}}function kd(a,b,d){this.$$html5=!0;ec.apply(this,arguments);this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;a==Ia(c)?f=c:(g=na(b,c))?f=a+d+g:b===c+"/"&&(f=b);f&&this.$$parse(f);return!!f};this.$$compose=function(){var b=Rb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=cc(this.$$path)+(b?"?"+b:"")+e;this.$$absUrl=a+d+this.$$url}}function Fb(a){return function(){return this[a]}}function ld(a, +b){return function(d){if(y(d))return this[a];this[a]=b(d);this.$$compose();return this}}function qf(){var a="",b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return x(b)?(a=b,this):a};this.html5Mode=function(a){return Da(a)?(b.enabled=a,this):G(a)?(Da(a.enabled)&&(b.enabled=a.enabled),Da(a.requireBase)&&(b.requireBase=a.requireBase),Da(a.rewriteLinks)&&(b.rewriteLinks=a.rewriteLinks),this):b};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(d, +c,e,f,g){function h(a,b,d){var e=l.url(),f=l.$$state;try{c.url(a,b,d),l.$$state=c.state()}catch(g){throw l.url(e),l.$$state=f,g;}}function k(a,b){d.$broadcast("$locationChangeSuccess",l.absUrl(),a,l.$$state,b)}var l,n;n=c.baseHref();var m=c.url(),r;if(b.enabled){if(!n&&b.requireBase)throw Eb("nobase");r=m.substring(0,m.indexOf("/",m.indexOf("//")+2))+(n||"/");n=e.history?dc:kd}else r=Ia(m),n=ec;var N=r.substr(0,Ia(r).lastIndexOf("/")+1);l=new n(r,N,"#"+a);l.$$parseLinkUrl(m,m);l.$$state=c.state(); +var q=/^\s*(javascript|mailto):/i;f.on("click",function(a){if(b.rewriteLinks&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&2!=a.which&&2!=a.button){for(var e=B(a.target);"a"!==va(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href"),k=e.attr("href")||e.attr("xlink:href");G(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=ra(h.animVal).href);q.test(h)||!h||e.attr("target")||a.isDefaultPrevented()||!l.$$parseLinkUrl(h,k)||(a.preventDefault(),l.absUrl()!=c.url()&&(d.$apply(),g.angular["ff-684208-preventDefault"]= +!0))}});hb(l.absUrl())!=hb(m)&&c.url(l.absUrl(),!0);var w=!0;c.onUrlChange(function(a,b){y(na(N,a))?g.location.href=a:(d.$evalAsync(function(){var c=l.absUrl(),e=l.$$state,f;a=hb(a);l.$$parse(a);l.$$state=b;f=d.$broadcast("$locationChangeStart",a,c,b,e).defaultPrevented;l.absUrl()===a&&(f?(l.$$parse(c),l.$$state=e,h(c,!1,e)):(w=!1,k(c,e)))}),d.$$phase||d.$digest())});d.$watch(function(){var a=hb(c.url()),b=hb(l.absUrl()),f=c.state(),g=l.$$replace,m=a!==b||l.$$html5&&e.history&&f!==l.$$state;if(w|| +m)w=!1,d.$evalAsync(function(){var b=l.absUrl(),c=d.$broadcast("$locationChangeStart",b,a,l.$$state,f).defaultPrevented;l.absUrl()===b&&(c?(l.$$parse(a),l.$$state=f):(m&&h(b,g,f===l.$$state?null:l.$$state),k(a,f)))});l.$$replace=!1});return l}]}function rf(){var a=!0,b=this;this.debugEnabled=function(b){return x(b)?(a=b,this):a};this.$get=["$window",function(d){function c(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&& +(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=d.console||{},e=b[a]||b.log||C;a=!1;try{a=!!e.apply}catch(k){}return a?function(){var a=[];q(arguments,function(b){a.push(c(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){a&&c.apply(b,arguments)}}()}}]}function Ta(a,b){if("__defineGetter__"===a||"__defineSetter__"===a||"__lookupGetter__"===a||"__lookupSetter__"=== +a||"__proto__"===a)throw ca("isecfld",b);return a}function fg(a){return a+""}function sa(a,b){if(a){if(a.constructor===a)throw ca("isecfn",b);if(a.window===a)throw ca("isecwindow",b);if(a.children&&(a.nodeName||a.prop&&a.attr&&a.find))throw ca("isecdom",b);if(a===Object)throw ca("isecobj",b);}return a}function md(a,b){if(a){if(a.constructor===a)throw ca("isecfn",b);if(a===gg||a===hg||a===ig)throw ca("isecff",b);}}function Gb(a,b){if(a&&(a===(0).constructor||a===(!1).constructor||a==="".constructor|| +a==={}.constructor||a===[].constructor||a===Function.constructor))throw ca("isecaf",b);}function jg(a,b){return"undefined"!==typeof a?a:b}function nd(a,b){return"undefined"===typeof a?b:"undefined"===typeof b?a:a+b}function aa(a,b){var d,c;switch(a.type){case s.Program:d=!0;q(a.body,function(a){aa(a.expression,b);d=d&&a.expression.constant});a.constant=d;break;case s.Literal:a.constant=!0;a.toWatch=[];break;case s.UnaryExpression:aa(a.argument,b);a.constant=a.argument.constant;a.toWatch=a.argument.toWatch; +break;case s.BinaryExpression:aa(a.left,b);aa(a.right,b);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case s.LogicalExpression:aa(a.left,b);aa(a.right,b);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.constant?[]:[a];break;case s.ConditionalExpression:aa(a.test,b);aa(a.alternate,b);aa(a.consequent,b);a.constant=a.test.constant&&a.alternate.constant&&a.consequent.constant;a.toWatch=a.constant?[]:[a];break;case s.Identifier:a.constant= +!1;a.toWatch=[a];break;case s.MemberExpression:aa(a.object,b);a.computed&&aa(a.property,b);a.constant=a.object.constant&&(!a.computed||a.property.constant);a.toWatch=[a];break;case s.CallExpression:d=a.filter?!b(a.callee.name).$stateful:!1;c=[];q(a.arguments,function(a){aa(a,b);d=d&&a.constant;a.constant||c.push.apply(c,a.toWatch)});a.constant=d;a.toWatch=a.filter&&!b(a.callee.name).$stateful?c:[a];break;case s.AssignmentExpression:aa(a.left,b);aa(a.right,b);a.constant=a.left.constant&&a.right.constant; +a.toWatch=[a];break;case s.ArrayExpression:d=!0;c=[];q(a.elements,function(a){aa(a,b);d=d&&a.constant;a.constant||c.push.apply(c,a.toWatch)});a.constant=d;a.toWatch=c;break;case s.ObjectExpression:d=!0;c=[];q(a.properties,function(a){aa(a.value,b);d=d&&a.value.constant;a.value.constant||c.push.apply(c,a.value.toWatch)});a.constant=d;a.toWatch=c;break;case s.ThisExpression:a.constant=!1;a.toWatch=[];break;case s.LocalsExpression:a.constant=!1,a.toWatch=[]}}function od(a){if(1==a.length){a=a[0].expression; +var b=a.toWatch;return 1!==b.length?b:b[0]!==a?b:void 0}}function pd(a){return a.type===s.Identifier||a.type===s.MemberExpression}function qd(a){if(1===a.body.length&&pd(a.body[0].expression))return{type:s.AssignmentExpression,left:a.body[0].expression,right:{type:s.NGValueParameter},operator:"="}}function rd(a){return 0===a.body.length||1===a.body.length&&(a.body[0].expression.type===s.Literal||a.body[0].expression.type===s.ArrayExpression||a.body[0].expression.type===s.ObjectExpression)}function sd(a, +b){this.astBuilder=a;this.$filter=b}function td(a,b){this.astBuilder=a;this.$filter=b}function Hb(a){return"constructor"==a}function fc(a){return E(a.valueOf)?a.valueOf():kg.call(a)}function sf(){var a=T(),b=T(),d={"true":!0,"false":!1,"null":null,undefined:void 0},c,e;this.addLiteral=function(a,b){d[a]=b};this.setIdentifierFns=function(a,b){c=a;e=b;return this};this.$get=["$filter",function(f){function g(c,d,e){var g,k,D;e=e||H;switch(typeof c){case "string":D=c=c.trim();var q=e?b:a;g=q[D];if(!g){":"=== +c.charAt(0)&&":"===c.charAt(1)&&(k=!0,c=c.substring(2));g=e?p:w;var S=new gc(g);g=(new hc(S,f,g)).parse(c);g.constant?g.$$watchDelegate=r:k?g.$$watchDelegate=g.literal?m:n:g.inputs&&(g.$$watchDelegate=l);e&&(g=h(g));q[D]=g}return N(g,d);case "function":return N(c,d);default:return N(C,d)}}function h(a){function b(c,d,e,f){var g=H;H=!0;try{return a(c,d,e,f)}finally{H=g}}if(!a)return a;b.$$watchDelegate=a.$$watchDelegate;b.assign=h(a.assign);b.constant=a.constant;b.literal=a.literal;for(var c=0;a.inputs&& +c=this.promise.$$state.status&&d&&d.length&&a(function(){for(var a,e,f=0,g=d.length;f +a)for(b in l++,f)ua.call(e,b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$stateful=!0;var d=this,e,f,h,k=1N&&(y=4-N,x[y]||(x[y]=[]),x[y].push({msg:E(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,newVal:g,oldVal:k}));else if(a===c){q=!1;break a}}catch(F){f(F)}if(!(r=u.$$watchersCount&& +u.$$childHead||u!==this&&u.$$nextSibling))for(;u!==this&&!(r=u.$$nextSibling);)u=u.$parent}while(u=r);if((q||t.length)&&!N--)throw H.$$phase=null,d("infdig",b,x);}while(q||t.length);for(H.$$phase=null;z.length;)try{z.shift()()}catch(B){f(B)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this===H&&h.$$applicationDestroyed();r(this,-this.$$watchersCount);for(var b in this.$$listenerCount)N(this,this.$$listenerCount[b],b);a&&a.$$childHead== +this&&(a.$$childHead=this.$$nextSibling);a&&a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=C;this.$on=this.$watch=this.$watchGroup=function(){return C};this.$$listeners={};this.$$nextSibling=null;l(this)}},$eval:function(a,b){return g(a)(this,b)},$evalAsync:function(a,b){H.$$phase|| +t.length||h.defer(function(){t.length&&H.$digest()});t.push({scope:this,expression:g(a),locals:b})},$$postDigest:function(a){z.push(a)},$apply:function(a){try{m("$apply");try{return this.$eval(a)}finally{H.$$phase=null}}catch(b){f(b)}finally{try{H.$digest()}catch(c){throw f(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&u.push(b);a=g(a);p()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]= +0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,N(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,g=!1,h={name:a,targetScope:e,stopPropagation:function(){g=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=$a([h],arguments,1),l,n;do{d=e.$$listeners[a]||c;h.currentScope=e;l=0;for(n=d.length;lCa)throw ta("iequirks");var c=ha(oa);c.isEnabled=function(){return a};c.trustAs=d.trustAs;c.getTrusted=d.getTrusted;c.valueOf=d.valueOf;a||(c.trustAs=c.getTrusted=function(a,b){return b}, +c.valueOf=Xa);c.parseAs=function(a,d){var e=b(d);return e.literal&&e.constant?e:b(d,function(b){return c.getTrusted(a,b)})};var e=c.parseAs,f=c.getTrusted,g=c.trustAs;q(oa,function(a,b){var d=P(b);c[cb("parse_as_"+d)]=function(b){return e(a,b)};c[cb("get_trusted_"+d)]=function(b){return f(a,b)};c[cb("trust_as_"+d)]=function(b){return g(a,b)}});return c}]}function yf(){this.$get=["$window","$document",function(a,b){var d={},c=!(a.chrome&&a.chrome.app&&a.chrome.app.runtime)&&a.history&&a.history.pushState, +e=X((/android (\d+)/.exec(P((a.navigator||{}).userAgent))||[])[1]),f=/Boxee/i.test((a.navigator||{}).userAgent),g=b[0]||{},h,k=/^(Moz|webkit|ms)(?=[A-Z])/,l=g.body&&g.body.style,n=!1,m=!1;if(l){for(var r in l)if(n=k.exec(r)){h=n[0];h=h.substr(0,1).toUpperCase()+h.substr(1);break}h||(h="WebkitOpacity"in l&&"webkit");n=!!("transition"in l||h+"Transition"in l);m=!!("animation"in l||h+"Animation"in l);!e||n&&m||(n=F(l.webkitTransition),m=F(l.webkitAnimation))}return{history:!(!c||4>e||f),hasEvent:function(a){if("input"=== +a&&11>=Ca)return!1;if(y(d[a])){var b=g.createElement("div");d[a]="on"+a in b}return d[a]},csp:Ea(),vendorPrefix:h,transitions:n,animations:m,android:e}}]}function Af(){var a;this.httpOptions=function(b){return b?(a=b,this):a};this.$get=["$templateCache","$http","$q","$sce",function(b,d,c,e){function f(g,h){f.totalPendingRequests++;F(g)&&b.get(g)||(g=e.getTrustedResourceUrl(g));var k=d.defaults&&d.defaults.transformResponse;K(k)?k=k.filter(function(a){return a!==ac}):k===ac&&(k=null);return d.get(g, +R({cache:b,transformResponse:k},a))["finally"](function(){f.totalPendingRequests--}).then(function(a){b.put(g,a.data);return a.data},function(a){if(!h)throw mg("tpload",g,a.status,a.statusText);return c.reject(a)})}f.totalPendingRequests=0;return f}]}function Bf(){this.$get=["$rootScope","$browser","$location",function(a,b,d){return{findBindings:function(a,b,d){a=a.getElementsByClassName("ng-binding");var g=[];q(a,function(a){var c=ea.element(a).data("$binding");c&&q(c,function(c){d?(new RegExp("(^|\\s)"+ +vd(b)+"(\\s|\\||$)")).test(c)&&g.push(a):-1!=c.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,d){for(var g=["ng-","data-ng-","ng\\:"],h=0;hc&&(c=e),c+=+a.slice(e+1),a=a.substring(0,e)):0>c&&(c=a.length);for(e=0;a.charAt(e)==jc;e++);if(e==(g=a.length))d=[0],c=1;else{for(g--;a.charAt(g)==jc;)g--;c-=e;d=[];for(f=0;e<=g;e++,f++)d[f]=+a.charAt(e)}c>Fd&&(d=d.splice(0,Fd-1),b=c-1,c=1);return{d:d,e:b,i:c}}function ug(a,b,d,c){var e=a.d,f=e.length-a.i;b=y(b)?Math.min(Math.max(d,f),c):+b;d=b+a.i;c=e[d];if(0d-1){for(c=0;c>d;c--)e.unshift(0),a.i++;e.unshift(1);a.i++}else e[d-1]++;for(;fh;)k.unshift(0),h++;0=b.lgSize&&h.unshift(k.splice(-b.lgSize).join(""));k.length>b.gSize;)h.unshift(k.splice(-b.gSize).join(""));k.length&&h.unshift(k.join(""));k=h.join(d);f.length&&(k+=c+f.join(""));e&&(k+="e+"+e)}return 0>a&&!g?b.negPre+k+b.negSuf:b.posPre+k+b.posSuf}function Ib(a,b,d,c){var e="";if(0>a||c&&0>=a)c?a=-a+1:(a=-a,e="-");for(a=""+a;a.length-d)f+=d;0===f&&-12==d&&(f=12);return Ib(f,b,c,e)}}function ib(a,b,d){return function(c,e){var f=c["get"+a](),g=sb((d?"STANDALONE":"")+(b?"SHORT":"")+a);return e[g][f]}}function Gd(a){var b=(new Date(a,0,1)).getDay();return new Date(a,0,(4>=b?5:12)-b)}function Hd(a){return function(b){var d=Gd(b.getFullYear());b=+new Date(b.getFullYear(),b.getMonth(),b.getDate()+(4-b.getDay()))-+d;b=1+Math.round(b/6048E5);return Ib(b,a)}}function kc(a,b){return 0>=a.getFullYear()? +b.ERAS[0]:b.ERAS[1]}function Ad(a){function b(a){var b;if(b=a.match(d)){a=new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,k=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=X(b[9]+b[10]),g=X(b[9]+b[11]));h.call(a,X(b[1]),X(b[2])-1,X(b[3]));f=X(b[4]||0)-f;g=X(b[5]||0)-g;h=X(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));k.call(a,f,g,h,b)}return a}var d=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,d,f){var g="",h= +[],k,l;d=d||"mediumDate";d=a.DATETIME_FORMATS[d]||d;F(c)&&(c=vg.test(c)?X(c):b(c));Q(c)&&(c=new Date(c));if(!fa(c)||!isFinite(c.getTime()))return c;for(;d;)(l=wg.exec(d))?(h=$a(h,l,1),d=h.pop()):(h.push(d),d=null);var n=c.getTimezoneOffset();f&&(n=vc(f,n),c=Qb(c,f,!0));q(h,function(b){k=xg[b];g+=k?k(c,a.DATETIME_FORMATS,n):"''"===b?"'":b.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function og(){return function(a,b){y(b)&&(b=2);return ab(a,b)}}function pg(){return function(a,b,d){b=Infinity=== +Math.abs(Number(b))?Number(b):X(b);if(isNaN(b))return a;Q(a)&&(a=a.toString());if(!K(a)&&!F(a))return a;d=!d||isNaN(d)?0:X(d);d=0>d?Math.max(0,a.length+d):d;return 0<=b?a.slice(d,d+b):0===d?a.slice(b,a.length):a.slice(Math.max(0,d+b),d)}}function Cd(a){function b(b,d){d=d?-1:1;return b.map(function(b){var c=1,h=Xa;if(E(b))h=b;else if(F(b)){if("+"==b.charAt(0)||"-"==b.charAt(0))c="-"==b.charAt(0)?-1:1,b=b.substring(1);if(""!==b&&(h=a(b),h.constant))var k=h(),h=function(a){return a[k]}}return{get:h, +descending:c*d}})}function d(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}return function(a,e,f){if(null==a)return a;if(!ya(a))throw O("orderBy")("notarray",a);K(e)||(e=[e]);0===e.length&&(e=["+"]);var g=b(e,f);g.push({get:function(){return{}},descending:f?-1:1});a=Array.prototype.map.call(a,function(a,b){return{value:a,predicateValues:g.map(function(c){var e=c.get(a);c=typeof e;if(null===e)c="string",e="null";else if("string"===c)e=e.toLowerCase();else if("object"=== +c)a:{if("function"===typeof e.valueOf&&(e=e.valueOf(),d(e)))break a;if(rc(e)&&(e=e.toString(),d(e)))break a;e=b}return{value:e,type:c}})}});a.sort(function(a,b){for(var c=0,d=0,e=g.length;db||37<=b&&40>=b||n(a,this,this.value)});if(e.hasEvent("paste"))b.on("paste cut",n)}b.on("change",l);if(Kd[g]&&c.$$hasNativeValidators&&g===d.type)b.on("keydown wheel mousedown",function(a){if(!k){var b=this.validity,c=b.badInput,d=b.typeMismatch;k=f.defer(function(){k=null;b.badInput===c&&b.typeMismatch===d||l(a)})}});c.$render=function(){var a=c.$isEmpty(c.$viewValue)?"":c.$viewValue;b.val()!==a&&b.val(a)}}function Lb(a,b){return function(d,c){var e,f;if(fa(d))return d;if(F(d)){'"'==d.charAt(0)&& +'"'==d.charAt(d.length-1)&&(d=d.substring(1,d.length-1));if(yg.test(d))return new Date(d);a.lastIndex=0;if(e=a.exec(d))return e.shift(),f=c?{yyyy:c.getFullYear(),MM:c.getMonth()+1,dd:c.getDate(),HH:c.getHours(),mm:c.getMinutes(),ss:c.getSeconds(),sss:c.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},q(e,function(a,c){c= +w};g.$observe("min",function(a){w=r(a);h.$validate()})}if(x(g.max)||g.ngMax){var p;h.$validators.max=function(a){return!m(a)||y(p)||d(a)<=p};g.$observe("max",function(a){p=r(a);h.$validate()})}}}function Ld(a,b,d,c){(c.$$hasNativeValidators=G(b[0].validity))&&c.$parsers.push(function(a){var c=b.prop("validity")||{};return c.badInput||c.typeMismatch?void 0:a})}function Md(a,b,d,c,e){if(x(c)){a=a(c);if(!a.constant)throw lb("constexpr",d,c);return a(b)}return e}function mc(a,b){a="ngClass"+a;return["$animate", +function(d){function c(a,b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/,Tb=/<|&#?\w+;/,Kf=/<([\w:-]+)/,Lf=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, +ia={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ia.optgroup=ia.option;ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead;ia.th=ia.td;var Sf=v.Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)},Oa=U.prototype={ready:function(a){function b(){d||(d=!0,a())}var d=!1;"complete"=== +v.document.readyState?v.setTimeout(b):(this.on("DOMContentLoaded",b),U(v).on("load",b))},toString:function(){var a=[];q(this,function(b){a.push(""+b)});return"["+a.join(", ")+"]"},eq:function(a){return 0<=a?B(this[a]):B(this[this.length+a])},length:0,push:Ag,sort:[].sort,splice:[].splice},Cb={};q("multiple selected checked disabled readOnly required open".split(" "),function(a){Cb[P(a)]=a});var Sc={};q("input select option textarea button form details".split(" "),function(a){Sc[a]=!0});var ad={ngMinlength:"minlength", +ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};q({data:Wb,removeData:db,hasData:function(a){for(var b in eb[a.ng339])return!0;return!1},cleanData:function(a){for(var b=0,d=a.length;b/,Vf=/^[^\(]*\(\s*([^\)]*)\)/m,Bg=/,/,Cg=/^\s*(_?)(\S+?)\1\s*$/,Tf=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Ga=O("$injector");bb.$$annotate=function(a,b,d){var c;if("function"===typeof a){if(!(c=a.$inject)){c=[];if(a.length){if(b)throw F(d)&&d||(d=a.name||Wf(a)),Ga("strictdi",d); +b=Tc(a);q(b[1].split(Bg),function(a){a.replace(Cg,function(a,b,d){c.push(d)})})}a.$inject=c}}else K(a)?(b=a.length-1,Pa(a[b],"fn"),c=a.slice(0,b)):Pa(a,"fn",!0);return c};var Qd=O("$animate"),Ze=function(){this.$get=C},$e=function(){var a=new Ra,b=[];this.$get=["$$AnimateRunner","$rootScope",function(d,c){function e(a,b,c){var d=!1;b&&(b=F(b)?b.split(" "):K(b)?b:[],q(b,function(b){b&&(d=!0,a[b]=c)}));return d}function f(){q(b,function(b){var c=a.get(b);if(c){var d=Xf(b.attr("class")),e="",f="";q(c, +function(a,b){a!==!!d[b]&&(a?e+=(e.length?" ":"")+b:f+=(f.length?" ":"")+b)});q(b,function(a){e&&zb(a,e);f&&yb(a,f)});a.remove(b)}});b.length=0}return{enabled:C,on:C,off:C,pin:C,push:function(g,h,k,l){l&&l();k=k||{};k.from&&g.css(k.from);k.to&&g.css(k.to);if(k.addClass||k.removeClass)if(h=k.addClass,l=k.removeClass,k=a.get(g)||{},h=e(k,h,!0),l=e(k,l,!1),h||l)a.put(g,k),b.push(g),1===b.length&&c.$$postDigest(f);g=new d;g.complete();return g}}}]},Xe=["$provide",function(a){var b=this;this.$$registeredAnimations= +Object.create(null);this.register=function(d,c){if(d&&"."!==d.charAt(0))throw Qd("notcsel",d);var e=d+"-animation";b.$$registeredAnimations[d.substr(1)]=e;a.factory(e,c)};this.classNameFilter=function(a){if(1===arguments.length&&(this.$$classNameFilter=a instanceof RegExp?a:null)&&/(\s+|\/)ng-animate(\s+|\/)/.test(this.$$classNameFilter.toString()))throw Qd("nongcls","ng-animate");return this.$$classNameFilter};this.$get=["$$animateQueue",function(a){function b(a,c,d){if(d){var h;a:{for(h=0;h <= >= && || ! = |".split(" "),function(a){Mb[a]=!0});var Gg={n:"\n",f:"\f",r:"\r", +t:"\t",v:"\v","'":"'",'"':'"'},gc=function(a){this.options=a};gc.prototype={constructor:gc,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a|| +"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdentifierStart:function(a){return this.options.isIdentifierStart?this.options.isIdentifierStart(a,this.codePointAt(a)):this.isValidIdentifierStart(a)},isValidIdentifierStart:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isIdentifierContinue:function(a){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(a,this.codePointAt(a)):this.isValidIdentifierContinue(a)},isValidIdentifierContinue:function(a,b){return this.isValidIdentifierStart(a, +b)||this.isNumber(a)},codePointAt:function(a){return 1===a.length?a.charCodeAt(0):(a.charCodeAt(0)<<10)+a.charCodeAt(1)-56613888},peekMultichar:function(){var a=this.text.charAt(this.index),b=this.peek();if(!b)return a;var d=a.charCodeAt(0),c=b.charCodeAt(0);return 55296<=d&&56319>=d&&56320<=c&&57343>=c?a+b:a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,d){d=d||this.index;b=x(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,d)+"]":" "+d;throw ca("lexerr", +a,b,this.text);},readNumber:function(){for(var a="",b=this.index;this.index","<=",">=");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(), +b;b=this.expect("+","-");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),b;b=this.expect("*","/","%");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:s.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")): +this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?a=qa(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?a={type:s.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var b;b=this.expect("(","[",".");)"("===b.text?(a={type:s.CallExpression, +callee:a,arguments:this.parseArguments()},this.consume(")")):"["===b.text?(a={type:s.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===b.text?a={type:s.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var b={type:s.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return b},parseArguments:function(){var a=[];if(")"!== +this.peekToken().text){do a.push(this.expression());while(this.expect(","))}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:s.Identifier,name:a.text}},constant:function(){return{type:s.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:s.ArrayExpression,elements:a}}, +object:function(){var a=[],b;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;b={type:s.Property,kind:"init"};this.peek().constant?b.key=this.constant():this.peek().identifier?b.key=this.identifier():this.throwError("invalid key",this.peek());this.consume(":");b.value=this.expression();a.push(b)}while(this.expect(","))}this.consume("}");return{type:s.ObjectExpression,properties:a}},throwError:function(a,b){throw ca("syntax",b.text,a,b.index+1,this.text,this.text.substring(b.index));},consume:function(a){if(0=== +this.tokens.length)throw ca("ueoe",this.text);var b=this.expect(a);b||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return b},peekToken:function(){if(0===this.tokens.length)throw ca("ueoe",this.text);return this.tokens[0]},peek:function(a,b,d,c){return this.peekAhead(0,a,b,d,c)},peekAhead:function(a,b,d,c,e){if(this.tokens.length>a){a=this.tokens[a];var f=a.text;if(f===b||f===d||f===c||f===e||!(b||d||c||e))return a}return!1},expect:function(a,b,d,c){return(a=this.peek(a,b,d,c))? +(this.tokens.shift(),a):!1},selfReferential:{"this":{type:s.ThisExpression},$locals:{type:s.LocalsExpression}}};sd.prototype={compile:function(a,b){var d=this,c=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:b,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};aa(c,d.$filter);var e="",f;this.stage="assign";if(f=qd(c))this.state.computing="assign",e=this.nextId(),this.recurse(f,e),this.return_(e),e="fn.assign="+this.generateFunction("assign","s,v,l");f=od(c.body); +d.stage="inputs";q(f,function(a,b){var c="fn"+b;d.state[c]={vars:[],body:[],own:{}};d.state.computing=c;var e=d.nextId();d.recurse(a,e);d.return_(e);d.state.inputs.push(c);a.watchId=b});this.state.computing="fn";this.stage="main";this.recurse(c);e='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+e+this.watchFns()+"return fn;";e=(new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext", +"ifDefined","plus","text",e))(this.$filter,Ta,sa,md,fg,Gb,jg,nd,a);this.state=this.stage=void 0;e.literal=rd(c);e.constant=c.constant;return e},USE:"use",STRICT:"strict",watchFns:function(){var a=[],b=this.state.inputs,d=this;q(b,function(b){a.push("var "+b+"="+d.generateFunction(b,"s"))});b.length&&a.push("fn.inputs=["+b.join(",")+"];");return a.join("")},generateFunction:function(a,b){return"function("+b+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],b=this;q(this.state.filters, +function(d,c){a.push(d+"=$filter("+b.escape(c)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,b,d,c,e,f){var g,h,k=this,l,n;c=c||C;if(!f&&x(a.watchId))b=b||this.nextId(),this.if_("i",this.lazyAssign(b,this.computedMember("i",a.watchId)),this.lazyRecurse(a,b,d,c,e,!0));else switch(a.type){case s.Program:q(a.body,function(b,c){k.recurse(b.expression, +void 0,void 0,function(a){h=a});c!==a.body.length-1?k.current().body.push(h,";"):k.return_(h)});break;case s.Literal:n=this.escape(a.value);this.assign(b,n);c(n);break;case s.UnaryExpression:this.recurse(a.argument,void 0,void 0,function(a){h=a});n=a.operator+"("+this.ifDefined(h,0)+")";this.assign(b,n);c(n);break;case s.BinaryExpression:this.recurse(a.left,void 0,void 0,function(a){g=a});this.recurse(a.right,void 0,void 0,function(a){h=a});n="+"===a.operator?this.plus(g,h):"-"===a.operator?this.ifDefined(g, +0)+a.operator+this.ifDefined(h,0):"("+g+")"+a.operator+"("+h+")";this.assign(b,n);c(n);break;case s.LogicalExpression:b=b||this.nextId();k.recurse(a.left,b);k.if_("&&"===a.operator?b:k.not(b),k.lazyRecurse(a.right,b));c(b);break;case s.ConditionalExpression:b=b||this.nextId();k.recurse(a.test,b);k.if_(b,k.lazyRecurse(a.alternate,b),k.lazyRecurse(a.consequent,b));c(b);break;case s.Identifier:b=b||this.nextId();d&&(d.context="inputs"===k.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l", +a.name)+"?l:s"),d.computed=!1,d.name=a.name);Ta(a.name);k.if_("inputs"===k.stage||k.not(k.getHasOwnProperty("l",a.name)),function(){k.if_("inputs"===k.stage||"s",function(){e&&1!==e&&k.if_(k.not(k.nonComputedMember("s",a.name)),k.lazyAssign(k.nonComputedMember("s",a.name),"{}"));k.assign(b,k.nonComputedMember("s",a.name))})},b&&k.lazyAssign(b,k.nonComputedMember("l",a.name)));(k.state.expensiveChecks||Hb(a.name))&&k.addEnsureSafeObject(b);c(b);break;case s.MemberExpression:g=d&&(d.context=this.nextId())|| +this.nextId();b=b||this.nextId();k.recurse(a.object,g,void 0,function(){k.if_(k.notNull(g),function(){e&&1!==e&&k.addEnsureSafeAssignContext(g);if(a.computed)h=k.nextId(),k.recurse(a.property,h),k.getStringValue(h),k.addEnsureSafeMemberName(h),e&&1!==e&&k.if_(k.not(k.computedMember(g,h)),k.lazyAssign(k.computedMember(g,h),"{}")),n=k.ensureSafeObject(k.computedMember(g,h)),k.assign(b,n),d&&(d.computed=!0,d.name=h);else{Ta(a.property.name);e&&1!==e&&k.if_(k.not(k.nonComputedMember(g,a.property.name)), +k.lazyAssign(k.nonComputedMember(g,a.property.name),"{}"));n=k.nonComputedMember(g,a.property.name);if(k.state.expensiveChecks||Hb(a.property.name))n=k.ensureSafeObject(n);k.assign(b,n);d&&(d.computed=!1,d.name=a.property.name)}},function(){k.assign(b,"undefined")});c(b)},!!e);break;case s.CallExpression:b=b||this.nextId();a.filter?(h=k.filter(a.callee.name),l=[],q(a.arguments,function(a){var b=k.nextId();k.recurse(a,b);l.push(b)}),n=h+"("+l.join(",")+")",k.assign(b,n),c(b)):(h=k.nextId(),g={},l= +[],k.recurse(a.callee,h,g,function(){k.if_(k.notNull(h),function(){k.addEnsureSafeFunction(h);q(a.arguments,function(a){k.recurse(a,k.nextId(),void 0,function(a){l.push(k.ensureSafeObject(a))})});g.name?(k.state.expensiveChecks||k.addEnsureSafeObject(g.context),n=k.member(g.context,g.name,g.computed)+"("+l.join(",")+")"):n=h+"("+l.join(",")+")";n=k.ensureSafeObject(n);k.assign(b,n)},function(){k.assign(b,"undefined")});c(b)}));break;case s.AssignmentExpression:h=this.nextId();g={};if(!pd(a.left))throw ca("lval"); +this.recurse(a.left,void 0,g,function(){k.if_(k.notNull(g.context),function(){k.recurse(a.right,h);k.addEnsureSafeObject(k.member(g.context,g.name,g.computed));k.addEnsureSafeAssignContext(g.context);n=k.member(g.context,g.name,g.computed)+a.operator+h;k.assign(b,n);c(b||n)})},1);break;case s.ArrayExpression:l=[];q(a.elements,function(a){k.recurse(a,k.nextId(),void 0,function(a){l.push(a)})});n="["+l.join(",")+"]";this.assign(b,n);c(n);break;case s.ObjectExpression:l=[];q(a.properties,function(a){k.recurse(a.value, +k.nextId(),void 0,function(b){l.push(k.escape(a.key.type===s.Identifier?a.key.name:""+a.key.value)+":"+b)})});n="{"+l.join(",")+"}";this.assign(b,n);c(n);break;case s.ThisExpression:this.assign(b,"s");c("s");break;case s.LocalsExpression:this.assign(b,"l");c("l");break;case s.NGValueParameter:this.assign(b,"v"),c("v")}},getHasOwnProperty:function(a,b){var d=a+"."+b,c=this.current().own;c.hasOwnProperty(d)||(c[d]=this.nextId(!1,a+"&&("+this.escape(b)+" in "+a+")"));return c[d]},assign:function(a,b){if(a)return this.current().body.push(a, +"=",b,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,b){return"ifDefined("+a+","+this.escape(b)+")"},plus:function(a,b){return"plus("+a+","+b+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,b,d){if(!0===a)b();else{var c=this.current().body;c.push("if(",a,"){");b();c.push("}");d&&(c.push("else{"),d(),c.push("}"))}},not:function(a){return"!("+a+")"},notNull:function(a){return a+ +"!=null"},nonComputedMember:function(a,b){var d=/[^$_a-zA-Z0-9]/g;return/[$_a-zA-Z][$_a-zA-Z0-9]*/.test(b)?a+"."+b:a+'["'+b.replace(d,this.stringEscapeFn)+'"]'},computedMember:function(a,b){return a+"["+b+"]"},member:function(a,b,d){return d?this.computedMember(a,b):this.nonComputedMember(a,b)},addEnsureSafeObject:function(a){this.current().body.push(this.ensureSafeObject(a),";")},addEnsureSafeMemberName:function(a){this.current().body.push(this.ensureSafeMemberName(a),";")},addEnsureSafeFunction:function(a){this.current().body.push(this.ensureSafeFunction(a), +";")},addEnsureSafeAssignContext:function(a){this.current().body.push(this.ensureSafeAssignContext(a),";")},ensureSafeObject:function(a){return"ensureSafeObject("+a+",text)"},ensureSafeMemberName:function(a){return"ensureSafeMemberName("+a+",text)"},ensureSafeFunction:function(a){return"ensureSafeFunction("+a+",text)"},getStringValue:function(a){this.assign(a,"getStringValue("+a+")")},ensureSafeAssignContext:function(a){return"ensureSafeAssignContext("+a+",text)"},lazyRecurse:function(a,b,d,c,e,f){var g= +this;return function(){g.recurse(a,b,d,c,e,f)}},lazyAssign:function(a,b){var d=this;return function(){d.assign(a,b)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(F(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(Q(a))return a.toString();if(!0===a)return"true";if(!1===a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw ca("esc");},nextId:function(a, +b){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(b?"="+b:""));return d},current:function(){return this.state[this.state.computing]}};td.prototype={compile:function(a,b){var d=this,c=this.astBuilder.ast(a);this.expression=a;this.expensiveChecks=b;aa(c,d.$filter);var e,f;if(e=qd(c))f=this.recurse(e);e=od(c.body);var g;e&&(g=[],q(e,function(a,b){var c=d.recurse(a);a.input=c;g.push(c);a.watchId=b}));var h=[];q(c.body,function(a){h.push(d.recurse(a.expression))});e=0===c.body.length?C:1=== +c.body.length?h[0]:function(a,b){var c;q(h,function(d){c=d(a,b)});return c};f&&(e.assign=function(a,b,c){return f(a,c,b)});g&&(e.inputs=g);e.literal=rd(c);e.constant=c.constant;return e},recurse:function(a,b,d){var c,e,f=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case s.Literal:return this.value(a.value,b);case s.UnaryExpression:return e=this.recurse(a.argument),this["unary"+a.operator](e,b);case s.BinaryExpression:return c=this.recurse(a.left),e=this.recurse(a.right), +this["binary"+a.operator](c,e,b);case s.LogicalExpression:return c=this.recurse(a.left),e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case s.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),b);case s.Identifier:return Ta(a.name,f.expression),f.identifier(a.name,f.expensiveChecks||Hb(a.name),b,d,f.expression);case s.MemberExpression:return c=this.recurse(a.object,!1,!!d),a.computed||(Ta(a.property.name,f.expression), +e=a.property.name),a.computed&&(e=this.recurse(a.property)),a.computed?this.computedMember(c,e,b,d,f.expression):this.nonComputedMember(c,e,f.expensiveChecks,b,d,f.expression);case s.CallExpression:return g=[],q(a.arguments,function(a){g.push(f.recurse(a))}),a.filter&&(e=this.$filter(a.callee.name)),a.filter||(e=this.recurse(a.callee,!0)),a.filter?function(a,c,d,f){for(var m=[],r=0;r":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>b(c,e,f,g);return d?{value:c}:c}},"binary<=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f, +g)<=b(c,e,f,g);return d?{value:c}:c}},"binary>=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>=b(c,e,f,g);return d?{value:c}:c}},"binary&&":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)&&b(c,e,f,g);return d?{value:c}:c}},"binary||":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)||b(c,e,f,g);return d?{value:c}:c}},"ternary?:":function(a,b,d,c){return function(e,f,g,h){e=a(e,f,g,h)?b(e,f,g,h):d(e,f,g,h);return c?{value:e}:e}},value:function(a,b){return function(){return b?{context:void 0, +name:void 0,value:a}:a}},identifier:function(a,b,d,c,e){return function(f,g,h,k){f=g&&a in g?g:f;c&&1!==c&&f&&!f[a]&&(f[a]={});g=f?f[a]:void 0;b&&sa(g,e);return d?{context:f,name:a,value:g}:g}},computedMember:function(a,b,d,c,e){return function(f,g,h,k){var l=a(f,g,h,k),n,m;null!=l&&(n=b(f,g,h,k),n+="",Ta(n,e),c&&1!==c&&(Gb(l),l&&!l[n]&&(l[n]={})),m=l[n],sa(m,e));return d?{context:l,name:n,value:m}:m}},nonComputedMember:function(a,b,d,c,e,f){return function(g,h,k,l){g=a(g,h,k,l);e&&1!==e&&(Gb(g), +g&&!g[b]&&(g[b]={}));h=null!=g?g[b]:void 0;(d||Hb(b))&&sa(h,f);return c?{context:g,name:b,value:h}:h}},inputs:function(a,b){return function(d,c,e,f){return f?f[b]:a(d,c,e)}}};var hc=function(a,b,d){this.lexer=a;this.$filter=b;this.options=d;this.ast=new s(a,d);this.astCompiler=d.csp?new td(this.ast,b):new sd(this.ast,b)};hc.prototype={constructor:hc,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};var kg=Object.prototype.valueOf,ta=O("$sce"),oa={HTML:"html",CSS:"css", +URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},mg=O("$compile"),Y=v.document.createElement("a"),xd=ra(v.location.href);yd.$inject=["$document"];Jc.$inject=["$provide"];var Fd=22,Ed=".",jc="0";zd.$inject=["$locale"];Bd.$inject=["$locale"];var xg={yyyy:W("FullYear",4,0,!1,!0),yy:W("FullYear",2,0,!0,!0),y:W("FullYear",1,0,!1,!0),MMMM:ib("Month"),MMM:ib("Month",!0),MM:W("Month",2,1),M:W("Month",1,1),LLLL:ib("Month",!1,!0),dd:W("Date",2),d:W("Date",1),HH:W("Hours",2),H:W("Hours",1),hh:W("Hours",2,-12), +h:W("Hours",1,-12),mm:W("Minutes",2),m:W("Minutes",1),ss:W("Seconds",2),s:W("Seconds",1),sss:W("Milliseconds",3),EEEE:ib("Day"),EEE:ib("Day",!0),a:function(a,b){return 12>a.getHours()?b.AMPMS[0]:b.AMPMS[1]},Z:function(a,b,d){a=-1*d;return a=(0<=a?"+":"")+(Ib(Math[0=a.getFullYear()?b.ERANAMES[0]:b.ERANAMES[1]}},wg=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/, +vg=/^\-?\d+$/;Ad.$inject=["$locale"];var qg=da(P),rg=da(sb);Cd.$inject=["$parse"];var ne=da({restrict:"E",compile:function(a,b){if(!b.href&&!b.xlinkHref)return function(a,b){if("a"===b[0].nodeName.toLowerCase()){var e="[object SVGAnimatedString]"===ma.call(b.prop("href"))?"xlink:href":"href";b.on("click",function(a){b.attr(e)||a.preventDefault()})}}}}),tb={};q(Cb,function(a,b){function d(a,d,e){a.$watch(e[c],function(a){e.$set(b,!!a)})}if("multiple"!=a){var c=xa("ng-"+b),e=d;"checked"===a&&(e=function(a, +b,e){e.ngModel!==e[c]&&d(a,b,e)});tb[c]=function(){return{restrict:"A",priority:100,link:e}}}});q(ad,function(a,b){tb[b]=function(){return{priority:100,link:function(a,c,e){if("ngPattern"===b&&"/"==e.ngPattern.charAt(0)&&(c=e.ngPattern.match(zg))){e.$set("ngPattern",new RegExp(c[1],c[2]));return}a.$watch(e[b],function(a){e.$set(b,a)})}}}});q(["src","srcset","href"],function(a){var b=xa("ng-"+a);tb[b]=function(){return{priority:99,link:function(d,c,e){var f=a,g=a;"href"===a&&"[object SVGAnimatedString]"=== +ma.call(c.prop("href"))&&(g="xlinkHref",e.$attr[g]="xlink:href",f=null);e.$observe(b,function(b){b?(e.$set(g,b),Ca&&f&&c.prop(f,e[g])):"href"===a&&e.$set(g,null)})}}}});var Jb={$addControl:C,$$renameControl:function(a,b){a.$name=b},$removeControl:C,$setValidity:C,$setDirty:C,$setPristine:C,$setSubmitted:C};Id.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Rd=function(a){return["$timeout","$parse",function(b,d){function c(a){return""===a?d('this[""]').assign:d(a).assign||C}return{name:"form", +restrict:a?"EAC":"E",require:["form","^^?form"],controller:Id,compile:function(d,f){d.addClass(Ua).addClass(mb);var g=f.name?"name":a&&f.ngForm?"ngForm":!1;return{pre:function(a,d,e,f){var m=f[0];if(!("action"in e)){var r=function(b){a.$apply(function(){m.$commitViewValue();m.$setSubmitted()});b.preventDefault()};d[0].addEventListener("submit",r,!1);d.on("$destroy",function(){b(function(){d[0].removeEventListener("submit",r,!1)},0,!1)})}(f[1]||m.$$parentForm).$addControl(m);var q=g?c(m.$name):C;g&& +(q(a,m),e.$observe(g,function(b){m.$name!==b&&(q(a,void 0),m.$$parentForm.$$renameControl(m,b),q=c(m.$name),q(a,m))}));d.on("$destroy",function(){m.$$parentForm.$removeControl(m);q(a,void 0);R(m,Jb)})}}}}}]},oe=Rd(),Be=Rd(!0),yg=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,Hg=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,Ig=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i, +Jg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Sd=/^(\d{4,})-(\d{2})-(\d{2})$/,Td=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,nc=/^(\d{4,})-W(\d\d)$/,Ud=/^(\d{4,})-(\d\d)$/,Vd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Kd=T();q(["date","datetime-local","month","time","week"],function(a){Kd[a]=!0});var Wd={text:function(a,b,d,c,e,f){jb(a,b,d,c,e,f);lc(c)},date:kb("date",Sd,Lb(Sd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":kb("datetimelocal",Td,Lb(Td,"yyyy MM dd HH mm ss sss".split(" ")), +"yyyy-MM-ddTHH:mm:ss.sss"),time:kb("time",Vd,Lb(Vd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:kb("week",nc,function(a,b){if(fa(a))return a;if(F(a)){nc.lastIndex=0;var d=nc.exec(a);if(d){var c=+d[1],e=+d[2],f=d=0,g=0,h=0,k=Gd(c),e=7*(e-1);b&&(d=b.getHours(),f=b.getMinutes(),g=b.getSeconds(),h=b.getMilliseconds());return new Date(c,0,k.getDate()+e,d,f,g,h)}}return NaN},"yyyy-Www"),month:kb("month",Ud,Lb(Ud,["yyyy","MM"]),"yyyy-MM"),number:function(a,b,d,c,e,f){Ld(a,b,d,c);jb(a,b,d,c,e,f);c.$$parserName= +"number";c.$parsers.push(function(a){if(c.$isEmpty(a))return null;if(Jg.test(a))return parseFloat(a)});c.$formatters.push(function(a){if(!c.$isEmpty(a)){if(!Q(a))throw lb("numfmt",a);a=a.toString()}return a});if(x(d.min)||d.ngMin){var g;c.$validators.min=function(a){return c.$isEmpty(a)||y(g)||a>=g};d.$observe("min",function(a){x(a)&&!Q(a)&&(a=parseFloat(a,10));g=Q(a)&&!isNaN(a)?a:void 0;c.$validate()})}if(x(d.max)||d.ngMax){var h;c.$validators.max=function(a){return c.$isEmpty(a)||y(h)||a<=h};d.$observe("max", +function(a){x(a)&&!Q(a)&&(a=parseFloat(a,10));h=Q(a)&&!isNaN(a)?a:void 0;c.$validate()})}},url:function(a,b,d,c,e,f){jb(a,b,d,c,e,f);lc(c);c.$$parserName="url";c.$validators.url=function(a,b){var d=a||b;return c.$isEmpty(d)||Hg.test(d)}},email:function(a,b,d,c,e,f){jb(a,b,d,c,e,f);lc(c);c.$$parserName="email";c.$validators.email=function(a,b){var d=a||b;return c.$isEmpty(d)||Ig.test(d)}},radio:function(a,b,d,c){y(d.name)&&b.attr("name",++nb);b.on("click",function(a){b[0].checked&&c.$setViewValue(d.value, +a&&a.type)});c.$render=function(){b[0].checked=d.value==c.$viewValue};d.$observe("value",c.$render)},checkbox:function(a,b,d,c,e,f,g,h){var k=Md(h,a,"ngTrueValue",d.ngTrueValue,!0),l=Md(h,a,"ngFalseValue",d.ngFalseValue,!1);b.on("click",function(a){c.$setViewValue(b[0].checked,a&&a.type)});c.$render=function(){b[0].checked=c.$viewValue};c.$isEmpty=function(a){return!1===a};c.$formatters.push(function(a){return pa(a,k)});c.$parsers.push(function(a){return a?k:l})},hidden:C,button:C,submit:C,reset:C, +file:C},Dc=["$browser","$sniffer","$filter","$parse",function(a,b,d,c){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,f,g,h){h[0]&&(Wd[P(g.type)]||Wd.text)(e,f,g,h[0],b,a,d,c)}}}}],Kg=/^(true|false|\d+)$/,Te=function(){return{restrict:"A",priority:100,compile:function(a,b){return Kg.test(b.ngValue)?function(a,b,e){e.$set("value",a.$eval(e.ngValue))}:function(a,b,e){a.$watch(e.ngValue,function(a){e.$set("value",a)})}}}},te=["$compile",function(a){return{restrict:"AC",compile:function(b){a.$$addBindingClass(b); +return function(b,c,e){a.$$addBindingInfo(c,e.ngBind);c=c[0];b.$watch(e.ngBind,function(a){c.textContent=y(a)?"":a})}}}}],ve=["$interpolate","$compile",function(a,b){return{compile:function(d){b.$$addBindingClass(d);return function(c,d,f){c=a(d.attr(f.$attr.ngBindTemplate));b.$$addBindingInfo(d,c.expressions);d=d[0];f.$observe("ngBindTemplate",function(a){d.textContent=y(a)?"":a})}}}}],ue=["$sce","$parse","$compile",function(a,b,d){return{restrict:"A",compile:function(c,e){var f=b(e.ngBindHtml),g= +b(e.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(c);return function(b,c,e){d.$$addBindingInfo(c,e.ngBindHtml);b.$watch(g,function(){c.html(a.getTrustedHtml(f(b))||"")})}}}}],Se=da({restrict:"A",require:"ngModel",link:function(a,b,d,c){c.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),we=mc("",!0),ye=mc("Odd",0),xe=mc("Even",1),ze=La({compile:function(a,b){b.$set("ngCloak",void 0);a.removeClass("ng-cloak")}}),Ae=[function(){return{restrict:"A",scope:!0,controller:"@", +priority:500}}],Ic={},Lg={blur:!0,focus:!0};q("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var b=xa("ng-"+a);Ic[b]=["$parse","$rootScope",function(d,c){return{restrict:"A",compile:function(e,f){var g=d(f[b],null,!0);return function(b,d){d.on(a,function(d){var e=function(){g(b,{$event:d})};Lg[a]&&c.$$phase?b.$evalAsync(e):b.$apply(e)})}}}}]});var De=["$animate","$compile",function(a, +b){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(d,c,e,f,g){var h,k,l;d.$watch(e.ngIf,function(d){d?k||g(function(d,f){k=f;d[d.length++]=b.$$createComment("end ngIf",e.ngIf);h={clone:d};a.enter(d,c.parent(),c)}):(l&&(l.remove(),l=null),k&&(k.$destroy(),k=null),h&&(l=rb(h.clone),a.leave(l).then(function(){l=null}),h=null))})}}}],Ee=["$templateRequest","$anchorScroll","$animate",function(a,b,d){return{restrict:"ECA",priority:400,terminal:!0, +transclude:"element",controller:ea.noop,compile:function(c,e){var f=e.ngInclude||e.src,g=e.onload||"",h=e.autoscroll;return function(c,e,n,m,r){var q=0,s,w,p,y=function(){w&&(w.remove(),w=null);s&&(s.$destroy(),s=null);p&&(d.leave(p).then(function(){w=null}),w=p,p=null)};c.$watch(f,function(f){var n=function(){!x(h)||h&&!c.$eval(h)||b()},u=++q;f?(a(f,!0).then(function(a){if(!c.$$destroyed&&u===q){var b=c.$new();m.template=a;a=r(b,function(a){y();d.enter(a,null,e).then(n)});s=b;p=a;s.$emit("$includeContentLoaded", +f);c.$eval(g)}},function(){c.$$destroyed||u!==q||(y(),c.$emit("$includeContentError",f))}),c.$emit("$includeContentRequested",f)):(y(),m.template=null)})}}}}],Ve=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(b,d,c,e){ma.call(d[0]).match(/SVG/)?(d.empty(),a(Lc(e.template,v.document).childNodes)(b,function(a){d.append(a)},{futureParentElement:d})):(d.html(e.template),a(d.contents())(b))}}}],Fe=La({priority:450,compile:function(){return{pre:function(a, +b,d){a.$eval(d.ngInit)}}}}),Re=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,b,d,c){var e=b.attr(d.$attr.ngList)||", ",f="false"!==d.ngTrim,g=f?V(e):e;c.$parsers.push(function(a){if(!y(a)){var b=[];a&&q(a.split(g),function(a){a&&b.push(f?V(a):a)});return b}});c.$formatters.push(function(a){if(K(a))return a.join(e)});c.$isEmpty=function(a){return!a||!a.length}}}},mb="ng-valid",Nd="ng-invalid",Ua="ng-pristine",Kb="ng-dirty",Pd="ng-pending",lb=O("ngModel"),Mg=["$scope", +"$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,b,d,c,e,f,g,h,k,l){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=void 0;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=void 0;this.$name=l(d.name||"",!1)(a); +this.$$parentForm=Jb;var n=e(d.ngModel),m=n.assign,r=n,s=m,v=null,w,p=this;this.$$setOptions=function(a){if((p.$options=a)&&a.getterSetter){var b=e(d.ngModel+"()"),f=e(d.ngModel+"($$$p)");r=function(a){var c=n(a);E(c)&&(c=b(a));return c};s=function(a,b){E(n(a))?f(a,{$$$p:b}):m(a,b)}}else if(!n.assign)throw lb("nonassign",d.ngModel,wa(c));};this.$render=C;this.$isEmpty=function(a){return y(a)||""===a||null===a||a!==a};this.$$updateEmptyClasses=function(a){p.$isEmpty(a)?(f.removeClass(c,"ng-not-empty"), +f.addClass(c,"ng-empty")):(f.removeClass(c,"ng-empty"),f.addClass(c,"ng-not-empty"))};var H=0;Jd({ctrl:this,$element:c,set:function(a,b){a[b]=!0},unset:function(a,b){delete a[b]},$animate:f});this.$setPristine=function(){p.$dirty=!1;p.$pristine=!0;f.removeClass(c,Kb);f.addClass(c,Ua)};this.$setDirty=function(){p.$dirty=!0;p.$pristine=!1;f.removeClass(c,Ua);f.addClass(c,Kb);p.$$parentForm.$setDirty()};this.$setUntouched=function(){p.$touched=!1;p.$untouched=!0;f.setClass(c,"ng-untouched","ng-touched")}; +this.$setTouched=function(){p.$touched=!0;p.$untouched=!1;f.setClass(c,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){g.cancel(v);p.$viewValue=p.$$lastCommittedViewValue;p.$render()};this.$validate=function(){if(!Q(p.$modelValue)||!isNaN(p.$modelValue)){var a=p.$$rawModelValue,b=p.$valid,c=p.$modelValue,d=p.$options&&p.$options.allowInvalid;p.$$runValidators(a,p.$$lastCommittedViewValue,function(e){d||b===e||(p.$modelValue=e?a:void 0,p.$modelValue!==c&&p.$$writeModelToScope())})}}; +this.$$runValidators=function(a,b,c){function d(){var c=!0;q(p.$validators,function(d,e){var g=d(a,b);c=c&&g;f(e,g)});return c?!0:(q(p.$asyncValidators,function(a,b){f(b,null)}),!1)}function e(){var c=[],d=!0;q(p.$asyncValidators,function(e,g){var h=e(a,b);if(!h||!E(h.then))throw lb("nopromise",h);f(g,void 0);c.push(h.then(function(){f(g,!0)},function(){d=!1;f(g,!1)}))});c.length?k.all(c).then(function(){g(d)},C):g(!0)}function f(a,b){h===H&&p.$setValidity(a,b)}function g(a){h===H&&c(a)}H++;var h= +H;(function(){var a=p.$$parserName||"parse";if(y(w))f(a,null);else return w||(q(p.$validators,function(a,b){f(b,null)}),q(p.$asyncValidators,function(a,b){f(b,null)})),f(a,w),w;return!0})()?d()?e():g(!1):g(!1)};this.$commitViewValue=function(){var a=p.$viewValue;g.cancel(v);if(p.$$lastCommittedViewValue!==a||""===a&&p.$$hasNativeValidators)p.$$updateEmptyClasses(a),p.$$lastCommittedViewValue=a,p.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var b=p.$$lastCommittedViewValue; +if(w=y(b)?void 0:!0)for(var c=0;ce||c.$isEmpty(b)||b.length<=e}}}}},Gc=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,d,c){if(c){var e=0;d.$observe("minlength",function(a){e=X(a)||0;c.$validate()});c.$validators.minlength=function(a,b){return c.$isEmpty(b)||b.length>=e}}}}};v.angular.bootstrap?v.console&&console.log("WARNING: Tried to load angular more than once."):(ie(),ke(ea),ea.module("ngLocale",[],["$provide",function(a){function b(a){a+= +"";var b=a.indexOf(".");return-1==b?0:a.length-b-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONEMONTH:"January February March April May June July August September October November December".split(" "), +WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(a, +c){var e=a|0,f=c;void 0===f&&(f=Math.min(b(a),3));Math.pow(10,f);return 1==e&&0==f?"one":"other"}})}]),B(v.document).ready(function(){ee(v.document,yc)}))})(window);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(''); //# sourceMappingURL=angular.min.js.map diff --git a/Web/Scripts/angular.min.js.map b/Web/Scripts/angular.min.js.map index a57c997..de2cdd5 100644 --- a/Web/Scripts/angular.min.js.map +++ b/Web/Scripts/angular.min.js.map @@ -1,8 +1,8 @@ { "version":3, "file":"angular.min.js", -"lineCount":293, -"mappings":"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", +"lineCount":313, +"mappings":"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", "sources":["angular.js"], -"names":["window","document","undefined","minErr","isArrayLike","obj","isWindow","length","Object","nodeType","NODE_TYPE_ELEMENT","isString","isArray","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","isBlankObject","forEachSorted","keys","sort","i","reverseParams","iteratorFn","value","nextUid","uid","setHashKey","h","$$hashKey","baseExtend","dst","objs","deep","ii","isObject","j","jj","src","isDate","Date","valueOf","isRegExp","RegExp","extend","slice","arguments","merge","toInt","str","parseInt","inherit","parent","extra","create","noop","identity","$","valueFn","hasCustomToString","toString","prototype","isUndefined","isDefined","getPrototypeOf","isNumber","isScope","$evalAsync","$watch","isBoolean","isElement","node","nodeName","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","stackSource","stackDest","ngMinErr","TYPED_ARRAY_REGEXP","test","push","constructor","getTime","match","lastIndex","cloneNode","emptyObject","shallowCopy","charAt","equals","o1","o2","t1","t2","keySet","createMap","concat","array1","array2","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","toJson","pretty","JSON","stringify","fromJson","json","parse","timezoneToOffset","timezone","fallback","requestedTimezoneOffset","isNaN","convertTimezoneToLocal","date","reverse","timezoneOffset","getTimezoneOffset","setMinutes","getMinutes","minutes","startingTag","jqLite","clone","empty","e","elemHtml","append","html","NODE_TYPE_TEXT","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","splitPoint","substring","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","getAttribute","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jqName","jq","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","skipDestroyOnNextJQueryCleanData","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","invokeLaterAndSetModuleName","recipeName","factoryFunction","$$moduleName","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","decorator","animation","filter","directive","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$animateCss","$CoreAnimateCssProvider","$$animateQueue","$$CoreAnimateQueueProvider","$$AnimateRunner","$$CoreAnimateRunnerProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$$forceReflow","$$ForceReflowProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpParamSerializer","$HttpParamSerializerProvider","$httpParamSerializerJQLike","$HttpParamSerializerJQLikeProvider","$httpBackend","$HttpBackendProvider","$xhrFactory","$xhrFactoryProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$jqLite","$$jqLiteProvider","$$HashMap","$$HashMapProvider","$$cookieReader","$$CookieReaderProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","type","unsupported","expandoStore","jqLiteExpandoStore","handle","listenerFns","removeEventListener","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","parentNode","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","anonFn","args","fnText","STRIP_COMMENTS","FN_ARGS","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","result","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","locals","$inject","$$annotate","Type","instance","returnedValue","annotate","has","$injector","instanceCache","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","Array","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","mergeClasses","b","splitClasses","klass","prepareAnimateOptions","options","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","cacheStateAndFireUrlChange","pendingLocation","cacheState","fireUrlChange","history","state","cachedState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","href","baseElement","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$applicationDestroyed","self.$$applicationDestroyed","off","$$checkUrlChange","baseHref","self.baseHref","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","isController","LOCAL_REGEXP","bindings","definition","scopeName","$compileMinErr","mode","collection","optional","attrName","assertValidDirectiveName","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","require","restrict","bindToController","controllerAs","CNTRL_REG","$$bindings","$$isolateBindings","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","safeAddClass","$element","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","destroyBindings","$new","$$destroyBindings","$on","transcludeOnThisElement","createBoundTranscludeFn","transclude","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","isNgAttr","nAttrs","attributes","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","directiveNName","directiveIsMultiElement","nName","addAttrInterpolateDirective","animVal","msie","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","inheritType","dataName","setupControllers","controllerDirectives","controllerKey","$scope","$attrs","$transclude","controllerInstance","hasElementTranscludeDirective","linkNode","thisLinkFn","controllersBoundTransclude","cloneAttachFn","scopeToChild","templateDirective","$$originalDirective","initializeDirectiveBindings","scopeDirective","newScopeDirective","controllerForBindings","identifier","controllerResult","invokeLinkFn","template","templateUrl","terminalPriority","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","$$start","$$end","directiveValue","assertNoDuplicate","$$tlb","createComment","replaceWith","replaceDirective","contents","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","Math","max","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","tAttrs","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","wrapModuleNameIfDefined","moduleName","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","wrapper","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","$$observers","newValue","$$inter","$$scope","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","hasData","expando","k","kk","annotation","newScope","onNewScopeDestroyed","lastValue","parentGet","parentSet","compare","$observe","literal","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","ALIASED_ATTR","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","str1","str2","values","tokens1","tokens2","token","jqNodes","globals","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","ident","$controllerMinErr","controllerPrototype","exception","cause","serializeValue","v","toISOString","ngParamSerializer","params","jQueryLikeParamSerializer","serialize","toSerialize","topLevel","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headerVal","headerKey","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","paramSerializer","useApplyAsync","this.useApplyAsync","useLegacyPromise","useLegacyPromiseExtensions","this.useLegacyPromiseExtensions","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","lowercaseDefHeaderName","reqHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","$httpMinErrLegacyFn","done","headersString","statusText","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","serializedParams","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","rawDocument","jsonpReq","callbackId","async","body","called","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","send","this.startSymbol","this.endSymbol","escape","ch","unescapeText","escapedStartRegexp","escapedEndRegexp","mustHaveExpression","parseStringifyInterceptor","getTrusted","$interpolateMinErr","interr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","exp","endSymbolLength","throwNoconcat","compute","interpolationFn","$$watchDelegate","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","interval","count","invokeApply","hasParams","setInterval","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","trimEmptyHash","LocationHtml5Url","appBase","appBaseNoFile","basePrefix","$$html5","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","base","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","property","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","lastIndexOf","IGNORE_URI_REGEXP","ctrlKey","metaKey","shiftKey","which","button","target","absHref","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","warn","ensureSafeMemberName","fullExpression","$parseMinErr","getStringValue","ensureSafeObject","children","ensureSafeFunction","CALL","APPLY","BIND","ensureSafeAssignContext","Function","ifDefined","plusFn","r","findConstantAndWatchExpressions","ast","allConstants","argsToWatch","AST","Program","expr","Literal","toWatch","UnaryExpression","argument","BinaryExpression","left","right","LogicalExpression","ConditionalExpression","alternate","consequent","Identifier","MemberExpression","object","computed","CallExpression","callee","AssignmentExpression","ArrayExpression","ObjectExpression","properties","ThisExpression","getInputs","lastExpression","isAssignable","assignableAST","NGValueParameter","operator","isLiteral","ASTCompiler","astBuilder","ASTInterpreter","isPossiblyDangerousMemberName","getValueOf","objectValueOf","cacheDefault","cacheExpensive","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","objectEquality","parsedExpression","prettyPrintExpression","inputExpressions","inputs","lastResult","oldInputValueOf","expressionInputWatch","newInputValue","oldInputValueOfValues","oldInputValues","expressionInputsWatch","changed","oneTimeWatchDelegate","oneTimeWatch","oneTimeListener","old","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","constantWatch","constantListener","addInterceptor","interceptorFn","watchDelegate","regularInterceptedExpression","oneTimeInterceptedExpression","noUnsafeEval","$parseOptions","expensiveChecks","$parseOptionsExpensive","oneTime","cacheKey","parseOptions","lexer","Lexer","parser","Parser","qFactory","nextTick","exceptionHandler","callOnce","resolveFn","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","Q","resolver","all","promises","results","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","raf","timer","supported","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$$watchersCount","$id","$$ChildScope","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","destroyChildScope","$event","currentScope","Scope","$parent","$$prevSibling","$root","beginPhase","phase","incrementWatchersCount","current","decrementListenerCount","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","child","watchExp","watcher","last","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueue","$eval","msg","next","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","pushState","hasEvent","divElm","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","getTrustedResourceUrl","transformer","httpOptions","handleError","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","$$CookieReader","safeDecodeURIComponent","lastCookies","lastCookieString","cookieArray","cookie","currentCookieString","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","getTypeForFilter","expressionType","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","item","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","NUMBER_FORMATS","amount","currencySymbol","fractionSize","CURRENCY_SYM","PATTERNS","maxFrac","formatNumber","GROUP_SEP","DECIMAL_SEP","number","groupSep","decimalSep","isNegative","abs","isInfinity","Infinity","isFinite","numStr","formatedText","hasExponent","toFixed","parseFloat","fractionLen","min","minFrac","round","fraction","lgroup","lgSize","group","gSize","negPre","posPre","negSuf","posSuf","padNumber","num","digits","neg","dateGetter","dateStrGetter","shortForm","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","eraGetter","ERAS","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","s","ms","format","DATETIME_FORMATS","NUMBER_STRING","DATE_FORMATS_SPLIT","dateTimezoneOffset","DATE_FORMATS","spacing","limit","processPredicates","sortPredicate","reverseOrder","map","predicate","descending","predicates","compareValues","getComparisonObject","predicateValues","doComparison","v1","v2","ngDirective","FormController","controls","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$$parentForm","nullFormCtrl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","$addControl","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","set","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","ngModelMinErr","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","parseConstantExpr","parseFn","classDirective","arrayDifference","arrayClasses","digestClassCounts","classCounts","classesToUpdate","ngClassWatchAction","$index","old$index","mod","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","REGEX_STRING_REGEXP","documentMode","rules","ngCspElement","ngCspAttribute","noInlineStyle","name_","el","full","major","minor","dot","codeName","JQLite._data","MOUSE_EVENT_MAP","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeData","jqLiteHasData","removeAttribute","css","NODE_TYPE_ATTRIBUTE","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","related","relatedTarget","contains","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","FN_ARG_SPLIT","FN_ARG","argDecl","underscore","$animateMinErr","AnimateRunner","end","resume","pause","complete","pass","fail","postDigestElements","updateData","handleCSSClassChanges","existing","pin","domOperation","from","to","classesAdded","add","classesRemoved","$$registeredAnimations","classNameFilter","this.classNameFilter","$$classNameFilter","reservedRegex","NG_ANIMATE_CLASSNAME","domInsert","parentElement","afterElement","afterNode","ELEMENT_NODE","previousElementSibling","runner","enter","move","leave","addclass","animate","tempClasses","RAFPromise","getPromise","f1","f2","closed","cleanupStyles","start","domNode","offsetWidth","APPLICATION_JSON","$httpMinErr","$interpolateMinErr.throwNoconcat","$interpolateMinErr.interr","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","OPERATORS","ESCAPE","lex","tokens","readString","peek","readNumber","isIdent","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","throwError","chars","isExpOperator","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ExpressionStatement","Property","program","expressionStatement","expect","filterChain","assignment","ternary","logicalOR","consume","logicalAND","equality","relational","additive","multiplicative","unary","primary","arrayDeclaration","constants","parseArguments","baseExpression","peekToken","kind","e1","e2","e3","e4","peekAhead","t","nextId","vars","own","assignable","stage","computing","recurse","return_","generateFunction","fnKey","intoId","watchId","fnString","USE","STRICT","filterPrefix","watchFns","varsPrefix","section","nameId","recursionFn","skipWatchIdCheck","if_","lazyAssign","computedMember","lazyRecurse","plus","not","getHasOwnProperty","nonComputedMember","addEnsureSafeObject","notNull","addEnsureSafeMemberName","addEnsureSafeFunction","member","addEnsureSafeAssignContext","filterName","defaultValue","stringEscapeRegex","stringEscapeFn","c","charCodeAt","skip","init","fn.assign","rhs","lhs","unary+","unary-","unary!","binary+","binary-","binary*","binary/","binary%","binary===","binary!==","binary==","binary!=","binary<","binary>","binary<=","binary>=","binary&&","binary||","ternary?:","astCompiler","yy","y","MMMM","MMM","M","H","hh","EEEE","EEE","ampmGetter","AMPMS","Z","timeZoneGetter","zone","paddedZone","ww","w","G","GG","GGG","GGGG","longEraGetter","ERANAMES","xlinkHref","propName","defaultLinkFn","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","getSetter","ngFormCompile","formElement","nameAttr","ngFormPreLink","ctrls","handleFormSubmission","setter","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","tElement","ngBindHtmlGetter","ngBindHtmlWatch","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","forceAsyncEvents","ngEventHandler","previousElements","ngIfWatchAction","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","parserValid","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","allValid","$$writeModelToScope","this.$$runValidators","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","that","ngOptionsMinErr","NG_OPTIONS_REGEXP","parseOptionsExpression","optionsExp","selectElement","Option","selectValue","label","disabled","getOptionValuesKeys","optionValues","optionValuesKeys","keyName","itemKey","valueName","selectAs","trackBy","viewValueFn","trackByFn","getTrackByValueFn","getHashOfValue","getTrackByValue","getLocals","displayFn","groupByFn","disableWhenFn","valuesFn","getWatchables","watchedArray","optionValuesLength","disableWhen","getOptions","optionItems","selectValueMap","optionItem","getOptionFromViewValue","getViewValueFromOption","optionTemplate","optGroupTemplate","updateOptionElement","addOrReuseElement","removeExcessElements","skipEmptyAndUnknownOptions","emptyOption_","emptyOption","unknownOption_","unknownOption","updateOptions","previousValue","selectCtrl","readValue","groupMap","providedEmptyOption","updateOption","optionElement","groupElement","currentOptionElement","ngModelCtrl","nextValue","ngModelCtrl.$isEmpty","writeValue","selectCtrl.writeValue","selectCtrl.readValue","selectedValues","selections","selectedOption","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","pluralCat","whenExpFn","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","noopNgModelController","SelectController","optionsMap","renderUnknownOption","self.renderUnknownOption","unknownVal","removeUnknownOption","self.removeUnknownOption","self.readValue","self.writeValue","hasOption","addOption","self.addOption","removeOption","self.removeOption","self.hasOption","ngModelCtrl.$render","lastView","lastViewRef","selectMultipleWatch","valueInterpolated","optionValue","selectCtrlName","valueAttributeObserveAction","interpolateWatchAction","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","getDecimals","opt_precision","pow","ONE","OTHER","$$csp","head"] +"names":["window","minErr","isArrayLike","obj","isWindow","isArray","isString","jqLite","length","Object","isNumber","Array","item","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","isBlankObject","forEachSorted","keys","sort","i","reverseParams","iteratorFn","value","nextUid","uid","baseExtend","dst","objs","deep","h","$$hashKey","ii","isObject","j","jj","src","isDate","Date","valueOf","isRegExp","RegExp","nodeName","cloneNode","isElement","clone","extend","slice","arguments","merge","toInt","str","parseInt","inherit","parent","extra","create","noop","identity","$","valueFn","valueRef","hasCustomToString","toString","isUndefined","isDefined","getPrototypeOf","isScope","$evalAsync","$watch","isBoolean","isTypedArray","TYPED_ARRAY_REGEXP","test","node","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","copyRecurse","push","copyElement","stackSource","stackDest","ngMinErr","needsRecurse","copyType","undefined","constructor","buffer","copied","ArrayBuffer","byteLength","set","Uint8Array","re","match","lastIndex","type","shallowCopy","charAt","equals","o1","o2","t1","t2","getTime","keySet","createMap","concat","array1","array2","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","document","toJson","pretty","JSON","stringify","fromJson","json","parse","timezoneToOffset","timezone","fallback","replace","ALL_COLONS","requestedTimezoneOffset","isNaN","convertTimezoneToLocal","date","reverse","dateTimezoneOffset","getTimezoneOffset","timezoneOffset","setMinutes","getMinutes","minutes","startingTag","empty","e","elemHtml","append","html","nodeType","NODE_TYPE_TEXT","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","splitPoint","substring","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","getAttribute","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jqName","jq","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","invokeLaterAndSetModuleName","recipeName","factoryFunction","$$moduleName","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","decorator","animation","filter","directive","component","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$animateCss","$CoreAnimateCssProvider","$$animateJs","$$CoreAnimateJsProvider","$$animateQueue","$$CoreAnimateQueueProvider","$$AnimateRunner","$$AnimateRunnerFactoryProvider","$$animateAsyncRun","$$AnimateAsyncRunFactoryProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$$forceReflow","$$ForceReflowProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpParamSerializer","$HttpParamSerializerProvider","$httpParamSerializerJQLike","$HttpParamSerializerJQLikeProvider","$httpBackend","$HttpBackendProvider","$xhrFactory","$xhrFactoryProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$jqLite","$$jqLiteProvider","$$HashMap","$$HashMapProvider","$$cookieReader","$$CookieReaderProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_ELEMENT","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","jqLiteWrapNode","wrapper","parentNode","replaceChild","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","unsupported","expandoStore","jqLiteExpandoStore","handle","removeHandler","listenerFns","removeEventListener","MOUSE_EVENT_MAP","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","handlerWrapper","specialHandlerWrapper","defaultHandlerWrapper","handler","specialMouseHandlerWrapper","target","related","relatedTarget","jqLiteContains","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","extractArgs","fnText","Function","prototype","STRIP_COMMENTS","ARROW_ARG","FN_ARGS","anonFn","args","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","result","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","injectionArgs","locals","$inject","$$annotate","msie","Type","ctor","annotate","has","$injector","instanceCache","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","protoInstanceInjector","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","mergeClasses","b","splitClasses","klass","prepareAnimateOptions","options","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","cacheStateAndFireUrlChange","pendingLocation","cacheState","fireUrlChange","cachedState","getCurrentState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","history","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","href","baseElement","state","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$applicationDestroyed","self.$$applicationDestroyed","off","$$checkUrlChange","baseHref","self.baseHref","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","isController","LOCAL_REGEXP","bindings","definition","scopeName","bindingCache","$compileMinErr","mode","collection","optional","attrName","assertValidDirectiveName","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","require","restrict","this.component","makeInjectable","tElement","tAttrs","$element","$attrs","template","templateUrl","ddo","controllerAs","identifierForController","transclude","bindToController","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","TTL","onChangesTtl","this.onChangesTtl","flushOnChangesQueue","onChangesQueue","Attributes","attributesToCopy","$attr","$$element","setSpecialAttr","specialAttrHolder","attributes","attribute","removeNamedItem","setNamedItem","safeAddClass","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","NOT_EMPTY","domNode","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","needsNewScope","$parent","$new","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","instance","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","transcludeOnThisElement","createBoundTranscludeFn","templateOnThisElement","attrs","linkFnFound","collectDirectives","applyDirectivesToNode","terminal","previousBoundTranscludeFn","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","boundSlots","$$slots","slotName","attrsMap","addDirective","directiveNormalize","isNgAttr","nAttrs","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","multiElementMatch","MULTI_ELEMENT_DIR_RE","directiveIsMultiElement","nName","addAttrInterpolateDirective","animVal","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","groupedElementsLink","compilationGenerator","eager","compiled","lazyCompilation","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","linkNode","controllersBoundTransclude","cloneAttachFn","hasElementTranscludeDirective","elementControllers","slotTranscludeFn","scopeToChild","controllerScope","newScopeDirective","isSlotFilled","transcludeFn.isSlotFilled","controllerDirectives","setupControllers","templateDirective","$$originalDirective","$$isolateBindings","scopeBindingInfo","initializeDirectiveBindings","removeWatches","$on","controllerDirective","$$bindings","bindingInfo","identifier","controllerResult","getControllers","controllerInstance","$onChanges","initialChanges","$onInit","$onDestroy","callOnDestroyHook","invokeLinkFn","$postLink","terminalPriority","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","didScanForMultipleTransclusion","mightHaveMultipleTransclusionError","directiveValue","$$start","$$end","assertNoDuplicate","$$tlb","scanningIndex","candidateDirective","$$createComment","replaceWith","$$parentNode","replaceDirective","slots","contents","slotMap","filledSlots","elementSelector","filled","$$newScope","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectiveScope","mergeTemplateAttributes","compileTemplateUrl","Math","max","inheritType","dataName","property","controllerKey","$scope","$transclude","newScope","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","wrapModuleNameIfDefined","moduleName","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","$$observers","newValue","$$inter","$$scope","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","hasData","annotation","recordChanges","currentValue","previousValue","$$postDigest","changes","triggerOnChangesHook","SimpleChange","removeWatchCollection","initializeBinding","lastValue","parentGet","parentSet","compare","$observe","_UNINITIALIZED_VALUE","literal","assign","parentValueWatch","parentValue","$stateful","removeWatch","$watchCollection","parentValueWatchAction","SIMPLE_ATTR_NAME","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","ALIASED_ATTR","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","compile.$$createComment","comment","createComment","previous","current","str1","str2","values","tokens1","tokens2","token","jqNodes","ident","CNTRL_REG","globals","this.has","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","$controllerMinErr","controllerPrototype","$controllerInit","exception","cause","serializeValue","v","toISOString","ngParamSerializer","params","jQueryLikeParamSerializer","serialize","toSerialize","topLevel","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headerVal","headerKey","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","paramSerializer","useApplyAsync","this.useApplyAsync","useLegacyPromise","useLegacyPromiseExtensions","this.useLegacyPromiseExtensions","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","lowercaseDefHeaderName","reqHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","$httpMinErrLegacyFn","createApplyHandlers","eventHandlers","applyHandlers","callEventHandler","$applyAsync","$$phase","done","headersString","statusText","resolveHttpPromise","resolvePromise","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","uploadEventHandlers","serializedParams","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","rawDocument","jsonpReq","callbackId","async","body","called","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","upload","send","this.startSymbol","this.endSymbol","escape","ch","unescapeText","escapedStartRegexp","escapedEndRegexp","constantWatchDelegate","objectEquality","constantInterp","unwatch","constantInterpolateWatch","mustHaveExpression","parseStringifyInterceptor","getTrusted","$interpolateMinErr","interr","unescapedText","exp","$$watchDelegate","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","endSymbolLength","throwNoconcat","compute","interpolationFn","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","interval","count","invokeApply","hasParams","iteration","setInterval","clearInterval","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","trimEmptyHash","LocationHtml5Url","appBase","appBaseNoFile","basePrefix","$$html5","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","base","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","lastIndexOf","IGNORE_URI_REGEXP","ctrlKey","metaKey","shiftKey","which","button","absHref","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","warn","ensureSafeMemberName","fullExpression","$parseMinErr","getStringValue","ensureSafeObject","children","ensureSafeFunction","CALL","APPLY","BIND","ensureSafeAssignContext","ifDefined","plusFn","r","findConstantAndWatchExpressions","ast","allConstants","argsToWatch","AST","Program","expr","Literal","toWatch","UnaryExpression","argument","BinaryExpression","left","right","LogicalExpression","ConditionalExpression","alternate","consequent","Identifier","MemberExpression","object","computed","CallExpression","callee","AssignmentExpression","ArrayExpression","ObjectExpression","properties","ThisExpression","LocalsExpression","getInputs","lastExpression","isAssignable","assignableAST","NGValueParameter","operator","isLiteral","ASTCompiler","astBuilder","ASTInterpreter","isPossiblyDangerousMemberName","getValueOf","objectValueOf","cacheDefault","cacheExpensive","literals","identStart","identContinue","addLiteral","this.addLiteral","literalName","literalValue","setIdentifierFns","this.setIdentifierFns","identifierStart","identifierContinue","interceptorFn","expensiveChecks","parsedExpression","oneTime","cacheKey","runningChecksEnabled","parseOptions","$parseOptionsExpensive","$parseOptions","lexer","Lexer","parser","Parser","oneTimeLiteralWatchDelegate","oneTimeWatchDelegate","inputs","inputsWatchDelegate","expensiveChecksInterceptor","addInterceptor","expensiveCheckFn","expensiveCheckOldValue","expressionInputDirtyCheck","oldValueOfValue","prettyPrintExpression","inputExpressions","lastResult","oldInputValueOf","expressionInputWatch","newInputValue","oldInputValueOfValues","oldInputValues","expressionInputsWatch","changed","oneTimeWatch","oneTimeListener","old","isAllDefined","allDefined","constantWatch","watchDelegate","useInputs","regularInterceptedExpression","oneTimeInterceptedExpression","noUnsafeEval","isIdentifierStart","isIdentifierContinue","$$runningExpensiveChecks","$parse.$$runningExpensiveChecks","qFactory","nextTick","exceptionHandler","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","that","rejectPromise","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","resolver","resolveFn","all","promises","results","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","raf","timer","supported","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$$watchersCount","$id","$$ChildScope","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","destroyChildScope","$event","currentScope","cleanUpScope","$$prevSibling","$root","Scope","beginPhase","phase","incrementWatchersCount","decrementListenerCount","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","child","watchExp","watcher","last","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueue","$eval","msg","next","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","hasHistoryPushState","chrome","app","runtime","pushState","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","hasEvent","divElm","httpOptions","this.httpOptions","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","getTrustedResourceUrl","transformer","handleError","$templateRequestMinErr","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","$$CookieReader","safeDecodeURIComponent","lastCookies","lastCookieString","cookieArray","cookie","currentCookieString","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","getTypeForFilter","expressionType","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","NUMBER_FORMATS","amount","currencySymbol","fractionSize","CURRENCY_SYM","PATTERNS","maxFrac","formatNumber","GROUP_SEP","DECIMAL_SEP","number","numStr","exponent","digits","numberOfIntegerDigits","zeros","ZERO_CHAR","MAX_DIGITS","roundNumber","parsedNumber","minFrac","fractionLen","min","roundAt","digit","k","carry","reduceRight","groupSep","decimalSep","isInfinity","isFinite","isZero","abs","formattedText","integerLen","decimals","reduce","groups","lgSize","gSize","negPre","negSuf","posPre","posSuf","padNumber","num","negWrap","neg","dateGetter","dateStrGetter","shortForm","standAlone","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","round","eraGetter","ERAS","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","s","ms","parseFloat","format","DATETIME_FORMATS","NUMBER_STRING","DATE_FORMATS_SPLIT","DATE_FORMATS","spacing","limit","Infinity","processPredicates","sortPredicate","reverseOrder","map","predicate","descending","predicates","compareValues","getComparisonObject","predicateValues","doComparison","v1","v2","ngDirective","FormController","controls","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$$parentForm","nullFormCtrl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","$addControl","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","PARTIAL_VALIDATION_TYPES","PARTIAL_VALIDATION_EVENTS","validity","origBadInput","badInput","origTypeMismatch","typeMismatch","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","ngModelMinErr","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","VALIDITY_STATE_PROPERTY","parseConstantExpr","parseFn","classDirective","arrayDifference","arrayClasses","addClasses","digestClassCounts","classCounts","classesToUpdate","updateClasses","ngClassWatchAction","$index","old$index","mod","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","REGEX_STRING_REGEXP","documentMode","rules","ngCspElement","ngCspAttribute","noInlineStyle","name_","el","full","major","minor","dot","codeName","expando","JQLite._data","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","Node","contains","compareDocumentPosition","ready","trigger","fired","removeData","jqLiteHasData","jqLiteCleanData","removeAttribute","css","NODE_TYPE_ATTRIBUTE","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","addHandler","noEventListener","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","FN_ARG_SPLIT","FN_ARG","argDecl","underscore","$animateMinErr","postDigestElements","updateData","handleCSSClassChanges","existing","pin","domOperation","from","to","classesAdded","add","classesRemoved","runner","complete","$$registeredAnimations","classNameFilter","this.classNameFilter","$$classNameFilter","reservedRegex","NG_ANIMATE_CLASSNAME","domInsert","parentElement","afterElement","afterNode","ELEMENT_NODE","previousElementSibling","end","enter","move","leave","addclass","animate","tempClasses","waitForTick","waitQueue","passed","AnimateRunner","setHost","rafTick","_doneCallbacks","_tick","this._tick","doc","hidden","_state","AnimateRunner.chain","AnimateRunner.all","runners","onProgress","DONE_COMPLETE_STATE","getPromise","resolveHandler","rejectHandler","pause","resume","_resolve","INITIAL_STATE","DONE_PENDING_STATE","initialOptions","closed","$$prepared","cleanupStyles","start","UNINITIALIZED_VALUE","isFirstChange","SimpleChange.prototype.isFirstChange","offsetWidth","APPLICATION_JSON","$httpMinErr","$interpolateMinErr.throwNoconcat","$interpolateMinErr.interr","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","OPERATORS","ESCAPE","lex","tokens","readString","peek","readNumber","peekMultichar","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","throwError","chars","codePointAt","isValidIdentifierStart","isValidIdentifierContinue","cp","charCodeAt","cp1","cp2","isExpOperator","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ExpressionStatement","Property","program","expressionStatement","expect","filterChain","assignment","ternary","logicalOR","consume","logicalAND","equality","relational","additive","multiplicative","unary","primary","arrayDeclaration","selfReferential","parseArguments","baseExpression","peekToken","kind","e1","e2","e3","e4","peekAhead","t","nextId","vars","own","assignable","stage","computing","recurse","return_","generateFunction","fnKey","intoId","watchId","fnString","USE","STRICT","filterPrefix","watchFns","varsPrefix","section","nameId","recursionFn","skipWatchIdCheck","if_","lazyAssign","computedMember","lazyRecurse","plus","not","getHasOwnProperty","nonComputedMember","addEnsureSafeObject","notNull","addEnsureSafeAssignContext","addEnsureSafeMemberName","addEnsureSafeFunction","member","filterName","defaultValue","UNSAFE_CHARACTERS","SAFE_IDENTIFIER","stringEscapeFn","stringEscapeRegex","c","skip","init","fn.assign","rhs","lhs","unary+","unary-","unary!","binary+","binary-","binary*","binary/","binary%","binary===","binary!==","binary==","binary!=","binary<","binary>","binary<=","binary>=","binary&&","binary||","ternary?:","astCompiler","yy","y","MMMM","MMM","M","LLLL","H","hh","EEEE","EEE","ampmGetter","AMPMS","Z","timeZoneGetter","zone","paddedZone","ww","w","G","GG","GGG","GGGG","longEraGetter","ERANAMES","xlinkHref","propName","defaultLinkFn","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","getSetter","ngFormCompile","formElement","nameAttr","ngFormPreLink","ctrls","handleFormSubmission","setter","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","ngBindHtmlGetter","ngBindHtmlWatch","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","forceAsyncEvents","ngEventHandler","previousElements","ngIfWatchAction","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","parserValid","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","$$updateEmptyClasses","this.$$updateEmptyClasses","NOT_EMPTY_CLASS","EMPTY_CLASS","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","allValid","$$writeModelToScope","this.$$runValidators","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","ngOptionsMinErr","NG_OPTIONS_REGEXP","parseOptionsExpression","optionsExp","selectElement","Option","selectValue","label","group","disabled","getOptionValuesKeys","optionValues","optionValuesKeys","keyName","itemKey","valueName","selectAs","trackBy","viewValueFn","trackByFn","getTrackByValueFn","getHashOfValue","getTrackByValue","getLocals","displayFn","groupByFn","disableWhenFn","valuesFn","getWatchables","watchedArray","optionValuesLength","disableWhen","getOptions","optionItems","selectValueMap","optionItem","getOptionFromViewValue","getViewValueFromOption","optionTemplate","optGroupTemplate","ngOptionsPreLink","registerOption","ngOptionsPostLink","updateOptionElement","updateOptions","selectCtrl","readValue","groupElementMap","providedEmptyOption","emptyOption","addOption","groupElement","listFragment","optionElement","ngModelCtrl","nextValue","unknownOption","ngModelCtrl.$isEmpty","writeValue","selectCtrl.writeValue","selectCtrl.readValue","selectedValues","selections","selectedOption","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","pluralCat","whenExpFn","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","ngTranscludeMinErr","ngTranscludeCloneAttachFn","ngTranscludeSlot","noopNgModelController","SelectController","optionsMap","renderUnknownOption","self.renderUnknownOption","unknownVal","removeUnknownOption","self.removeUnknownOption","self.readValue","self.writeValue","hasOption","self.addOption","removeOption","self.removeOption","self.hasOption","self.registerOption","optionScope","optionAttrs","interpolateValueFn","interpolateTextFn","valueAttributeObserveAction","interpolateWatchAction","selectPreLink","lastView","lastViewRef","selectMultipleWatch","selectPostLink","ngModelCtrl.$render","selectCtrlName","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","getDecimals","opt_precision","pow","ONE","OTHER","$$csp","head"] } diff --git a/Web/Scripts/cldr.js b/Web/Scripts/cldr.js new file mode 100644 index 0000000..956afca --- /dev/null +++ b/Web/Scripts/cldr.js @@ -0,0 +1,676 @@ +/** + * CLDR JavaScript Library v0.4.4 + * http://jquery.com/ + * + * Copyright 2013 Rafael Xavier de Souza + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-01-18T12:25Z + */ +/*! + * CLDR JavaScript Library v0.4.4 2016-01-18T12:25Z MIT license © Rafael Xavier + * http://git.io/h4lmVg + */ +(function( root, factory ) { + + if ( typeof define === "function" && define.amd ) { + // AMD. + define( factory ); + } else if ( typeof module === "object" && typeof module.exports === "object" ) { + // Node. CommonJS. + module.exports = factory(); + } else { + // Global + root.Cldr = factory(); + } + +}( this, function() { + + + var arrayIsArray = Array.isArray || function( obj ) { + return Object.prototype.toString.call( obj ) === "[object Array]"; + }; + + + + + var pathNormalize = function( path, attributes ) { + if ( arrayIsArray( path ) ) { + path = path.join( "/" ); + } + if ( typeof path !== "string" ) { + throw new Error( "invalid path \"" + path + "\"" ); + } + // 1: Ignore leading slash `/` + // 2: Ignore leading `cldr/` + path = path + .replace( /^\// , "" ) /* 1 */ + .replace( /^cldr\// , "" ); /* 2 */ + + // Replace {attribute}'s + path = path.replace( /{[a-zA-Z]+}/g, function( name ) { + name = name.replace( /^{([^}]*)}$/, "$1" ); + return attributes[ name ]; + }); + + return path.split( "/" ); + }; + + + + + var arraySome = function( array, callback ) { + var i, length; + if ( array.some ) { + return array.some( callback ); + } + for ( i = 0, length = array.length; i < length; i++ ) { + if ( callback( array[ i ], i, array ) ) { + return true; + } + } + return false; + }; + + + + + /** + * Return the maximized language id as defined in + * http://www.unicode.org/reports/tr35/#Likely_Subtags + * 1. Canonicalize. + * 1.1 Make sure the input locale is in canonical form: uses the right + * separator, and has the right casing. + * TODO Right casing? What df? It seems languages are lowercase, scripts are + * Capitalized, territory is uppercase. I am leaving this as an exercise to + * the user. + * + * 1.2 Replace any deprecated subtags with their canonical values using the + * data in supplemental metadata. Use the first value in the + * replacement list, if it exists. Language tag replacements may have multiple + * parts, such as "sh" ➞ "sr_Latn" or mo" ➞ "ro_MD". In such a case, the + * original script and/or region are retained if there is one. Thus + * "sh_Arab_AQ" ➞ "sr_Arab_AQ", not "sr_Latn_AQ". + * TODO What data? + * + * 1.3 If the tag is grandfathered (see in the supplemental data), then return it. + * TODO grandfathered? + * + * 1.4 Remove the script code 'Zzzz' and the region code 'ZZ' if they occur. + * 1.5 Get the components of the cleaned-up source tag (languages, scripts, + * and regions), plus any variants and extensions. + * 2. Lookup. Lookup each of the following in order, and stop on the first + * match: + * 2.1 languages_scripts_regions + * 2.2 languages_regions + * 2.3 languages_scripts + * 2.4 languages + * 2.5 und_scripts + * 3. Return + * 3.1 If there is no match, either return an error value, or the match for + * "und" (in APIs where a valid language tag is required). + * 3.2 Otherwise there is a match = languagem_scriptm_regionm + * 3.3 Let xr = xs if xs is not empty, and xm otherwise. + * 3.4 Return the language tag composed of languager _ scriptr _ regionr + + * variants + extensions. + * + * @subtags [Array] normalized language id subtags tuple (see init.js). + */ + var coreLikelySubtags = function( Cldr, cldr, subtags, options ) { + var match, matchFound, + language = subtags[ 0 ], + script = subtags[ 1 ], + sep = Cldr.localeSep, + territory = subtags[ 2 ], + variantsAndUnicodeLocaleExtensions = subtags.slice( 3, 4 ); + options = options || {}; + + // Skip if (language, script, territory) is not empty [3.3] + if ( language !== "und" && script !== "Zzzz" && territory !== "ZZ" ) { + return [ language, script, territory ].concat( variantsAndUnicodeLocaleExtensions ); + } + + // Skip if no supplemental likelySubtags data is present + if ( typeof cldr.get( "supplemental/likelySubtags" ) === "undefined" ) { + return; + } + + // [2] + matchFound = arraySome([ + [ language, script, territory ], + [ language, territory ], + [ language, script ], + [ language ], + [ "und", script ] + ], function( test ) { + return match = !(/\b(Zzzz|ZZ)\b/).test( test.join( sep ) ) /* [1.4] */ && cldr.get( [ "supplemental/likelySubtags", test.join( sep ) ] ); + }); + + // [3] + if ( matchFound ) { + // [3.2 .. 3.4] + match = match.split( sep ); + return [ + language !== "und" ? language : match[ 0 ], + script !== "Zzzz" ? script : match[ 1 ], + territory !== "ZZ" ? territory : match[ 2 ] + ].concat( + variantsAndUnicodeLocaleExtensions + ); + } else if ( options.force ) { + // [3.1.2] + return cldr.get( "supplemental/likelySubtags/und" ).split( sep ); + } else { + // [3.1.1] + return; + } + }; + + + + /** + * Given a locale, remove any fields that Add Likely Subtags would add. + * http://www.unicode.org/reports/tr35/#Likely_Subtags + * 1. First get max = AddLikelySubtags(inputLocale). If an error is signaled, + * return it. + * 2. Remove the variants from max. + * 3. Then for trial in {language, language _ region, language _ script}. If + * AddLikelySubtags(trial) = max, then return trial + variants. + * 4. If you do not get a match, return max + variants. + * + * @maxLanguageId [Array] maxLanguageId tuple (see init.js). + */ + var coreRemoveLikelySubtags = function( Cldr, cldr, maxLanguageId ) { + var match, matchFound, + language = maxLanguageId[ 0 ], + script = maxLanguageId[ 1 ], + territory = maxLanguageId[ 2 ], + variants = maxLanguageId[ 3 ]; + + // [3] + matchFound = arraySome([ + [ [ language, "Zzzz", "ZZ" ], [ language ] ], + [ [ language, "Zzzz", territory ], [ language, territory ] ], + [ [ language, script, "ZZ" ], [ language, script ] ] + ], function( test ) { + var result = coreLikelySubtags( Cldr, cldr, test[ 0 ] ); + match = test[ 1 ]; + return result && result[ 0 ] === maxLanguageId[ 0 ] && + result[ 1 ] === maxLanguageId[ 1 ] && + result[ 2 ] === maxLanguageId[ 2 ]; + }); + + if ( matchFound ) { + if ( variants ) { + match.push( variants ); + } + return match; + } + + // [4] + return maxLanguageId; + }; + + + + + /** + * subtags( locale ) + * + * @locale [String] + */ + var coreSubtags = function( locale ) { + var aux, unicodeLanguageId, + subtags = []; + + locale = locale.replace( /_/, "-" ); + + // Unicode locale extensions. + aux = locale.split( "-u-" ); + if ( aux[ 1 ] ) { + aux[ 1 ] = aux[ 1 ].split( "-t-" ); + locale = aux[ 0 ] + ( aux[ 1 ][ 1 ] ? "-t-" + aux[ 1 ][ 1 ] : ""); + subtags[ 4 /* unicodeLocaleExtensions */ ] = aux[ 1 ][ 0 ]; + } + + // TODO normalize transformed extensions. Currently, skipped. + // subtags[ x ] = locale.split( "-t-" )[ 1 ]; + unicodeLanguageId = locale.split( "-t-" )[ 0 ]; + + // unicode_language_id = "root" + // | unicode_language_subtag + // (sep unicode_script_subtag)? + // (sep unicode_region_subtag)? + // (sep unicode_variant_subtag)* ; + // + // Although unicode_language_subtag = alpha{2,8}, I'm using alpha{2,3}. Because, there's no language on CLDR lengthier than 3. + aux = unicodeLanguageId.match( /^(([a-z]{2,3})(-([A-Z][a-z]{3}))?(-([A-Z]{2}|[0-9]{3}))?)((-([a-zA-Z0-9]{5,8}|[0-9][a-zA-Z0-9]{3}))*)$|^(root)$/ ); + if ( aux === null ) { + return [ "und", "Zzzz", "ZZ" ]; + } + subtags[ 0 /* language */ ] = aux[ 10 ] /* root */ || aux[ 2 ] || "und"; + subtags[ 1 /* script */ ] = aux[ 4 ] || "Zzzz"; + subtags[ 2 /* territory */ ] = aux[ 6 ] || "ZZ"; + if ( aux[ 7 ] && aux[ 7 ].length ) { + subtags[ 3 /* variant */ ] = aux[ 7 ].slice( 1 ) /* remove leading "-" */; + } + + // 0: language + // 1: script + // 2: territory (aka region) + // 3: variant + // 4: unicodeLocaleExtensions + return subtags; + }; + + + + + var arrayForEach = function( array, callback ) { + var i, length; + if ( array.forEach ) { + return array.forEach( callback ); + } + for ( i = 0, length = array.length; i < length; i++ ) { + callback( array[ i ], i, array ); + } + }; + + + + + /** + * bundleLookup( minLanguageId ) + * + * @Cldr [Cldr class] + * + * @cldr [Cldr instance] + * + * @minLanguageId [String] requested languageId after applied remove likely subtags. + */ + var bundleLookup = function( Cldr, cldr, minLanguageId ) { + var availableBundleMap = Cldr._availableBundleMap, + availableBundleMapQueue = Cldr._availableBundleMapQueue; + + if ( availableBundleMapQueue.length ) { + arrayForEach( availableBundleMapQueue, function( bundle ) { + var existing, maxBundle, minBundle, subtags; + subtags = coreSubtags( bundle ); + maxBundle = coreLikelySubtags( Cldr, cldr, subtags ); + minBundle = coreRemoveLikelySubtags( Cldr, cldr, maxBundle ); + minBundle = minBundle.join( Cldr.localeSep ); + existing = availableBundleMapQueue[ minBundle ]; + if ( existing && existing.length < bundle.length ) { + return; + } + availableBundleMap[ minBundle ] = bundle; + }); + Cldr._availableBundleMapQueue = []; + } + + return availableBundleMap[ minLanguageId ] || null; + }; + + + + + var objectKeys = function( object ) { + var i, + result = []; + + if ( Object.keys ) { + return Object.keys( object ); + } + + for ( i in object ) { + result.push( i ); + } + + return result; + }; + + + + + var createError = function( code, attributes ) { + var error, message; + + message = code + ( attributes && JSON ? ": " + JSON.stringify( attributes ) : "" ); + error = new Error( message ); + error.code = code; + + // extend( error, attributes ); + arrayForEach( objectKeys( attributes ), function( attribute ) { + error[ attribute ] = attributes[ attribute ]; + }); + + return error; + }; + + + + + var validate = function( code, check, attributes ) { + if ( !check ) { + throw createError( code, attributes ); + } + }; + + + + + var validatePresence = function( value, name ) { + validate( "E_MISSING_PARAMETER", typeof value !== "undefined", { + name: name + }); + }; + + + + + var validateType = function( value, name, check, expected ) { + validate( "E_INVALID_PAR_TYPE", check, { + expected: expected, + name: name, + value: value + }); + }; + + + + + var validateTypePath = function( value, name ) { + validateType( value, name, typeof value === "string" || arrayIsArray( value ), "String or Array" ); + }; + + + + + /** + * Function inspired by jQuery Core, but reduced to our use case. + */ + var isPlainObject = function( obj ) { + return obj !== null && "" + obj === "[object Object]"; + }; + + + + + var validateTypePlainObject = function( value, name ) { + validateType( value, name, typeof value === "undefined" || isPlainObject( value ), "Plain Object" ); + }; + + + + + var validateTypeString = function( value, name ) { + validateType( value, name, typeof value === "string", "a string" ); + }; + + + + + // @path: normalized path + var resourceGet = function( data, path ) { + var i, + node = data, + length = path.length; + + for ( i = 0; i < length - 1; i++ ) { + node = node[ path[ i ] ]; + if ( !node ) { + return undefined; + } + } + return node[ path[ i ] ]; + }; + + + + + /** + * setAvailableBundles( Cldr, json ) + * + * @Cldr [Cldr class] + * + * @json resolved/unresolved cldr data. + * + * Set available bundles queue based on passed json CLDR data. Considers a bundle as any String at /main/{bundle}. + */ + var coreSetAvailableBundles = function( Cldr, json ) { + var bundle, + availableBundleMapQueue = Cldr._availableBundleMapQueue, + main = resourceGet( json, [ "main" ] ); + + if ( main ) { + for ( bundle in main ) { + if ( main.hasOwnProperty( bundle ) && bundle !== "root" && + availableBundleMapQueue.indexOf( bundle ) === -1 ) { + availableBundleMapQueue.push( bundle ); + } + } + } + }; + + + + var alwaysArray = function( somethingOrArray ) { + return arrayIsArray( somethingOrArray ) ? somethingOrArray : [ somethingOrArray ]; + }; + + + var jsonMerge = (function() { + + // Returns new deeply merged JSON. + // + // Eg. + // merge( { a: { b: 1, c: 2 } }, { a: { b: 3, d: 4 } } ) + // -> { a: { b: 3, c: 2, d: 4 } } + // + // @arguments JSON's + // + var merge = function() { + var destination = {}, + sources = [].slice.call( arguments, 0 ); + arrayForEach( sources, function( source ) { + var prop; + for ( prop in source ) { + if ( prop in destination && typeof destination[ prop ] === "object" && !arrayIsArray( destination[ prop ] ) ) { + + // Merge Objects + destination[ prop ] = merge( destination[ prop ], source[ prop ] ); + + } else { + + // Set new values + destination[ prop ] = source[ prop ]; + + } + } + }); + return destination; + }; + + return merge; + +}()); + + + /** + * load( Cldr, source, jsons ) + * + * @Cldr [Cldr class] + * + * @source [Object] + * + * @jsons [arguments] + */ + var coreLoad = function( Cldr, source, jsons ) { + var i, j, json; + + validatePresence( jsons[ 0 ], "json" ); + + // Support arbitrary parameters, e.g., `Cldr.load({...}, {...})`. + for ( i = 0; i < jsons.length; i++ ) { + + // Support array parameters, e.g., `Cldr.load([{...}, {...}])`. + json = alwaysArray( jsons[ i ] ); + + for ( j = 0; j < json.length; j++ ) { + validateTypePlainObject( json[ j ], "json" ); + source = jsonMerge( source, json[ j ] ); + coreSetAvailableBundles( Cldr, json[ j ] ); + } + } + + return source; + }; + + + + var itemGetResolved = function( Cldr, path, attributes ) { + // Resolve path + var normalizedPath = pathNormalize( path, attributes ); + + return resourceGet( Cldr._resolved, normalizedPath ); + }; + + + + + /** + * new Cldr() + */ + var Cldr = function( locale ) { + this.init( locale ); + }; + + // Build optimization hack to avoid duplicating functions across modules. + Cldr._alwaysArray = alwaysArray; + Cldr._coreLoad = coreLoad; + Cldr._createError = createError; + Cldr._itemGetResolved = itemGetResolved; + Cldr._jsonMerge = jsonMerge; + Cldr._pathNormalize = pathNormalize; + Cldr._resourceGet = resourceGet; + Cldr._validatePresence = validatePresence; + Cldr._validateType = validateType; + Cldr._validateTypePath = validateTypePath; + Cldr._validateTypePlainObject = validateTypePlainObject; + + Cldr._availableBundleMap = {}; + Cldr._availableBundleMapQueue = []; + Cldr._resolved = {}; + + // Allow user to override locale separator "-" (default) | "_". According to http://www.unicode.org/reports/tr35/#Unicode_language_identifier, both "-" and "_" are valid locale separators (eg. "en_GB", "en-GB"). According to http://unicode.org/cldr/trac/ticket/6786 its usage must be consistent throughout the data set. + Cldr.localeSep = "-"; + + /** + * Cldr.load( json [, json, ...] ) + * + * @json [JSON] CLDR data or [Array] Array of @json's. + * + * Load resolved cldr data. + */ + Cldr.load = function() { + Cldr._resolved = coreLoad( Cldr, Cldr._resolved, arguments ); + }; + + /** + * .init() automatically run on instantiation/construction. + */ + Cldr.prototype.init = function( locale ) { + var attributes, language, maxLanguageId, minLanguageId, script, subtags, territory, unicodeLocaleExtensions, variant, + sep = Cldr.localeSep; + + validatePresence( locale, "locale" ); + validateTypeString( locale, "locale" ); + + subtags = coreSubtags( locale ); + + unicodeLocaleExtensions = subtags[ 4 ]; + variant = subtags[ 3 ]; + + // Normalize locale code. + // Get (or deduce) the "triple subtags": language, territory (also aliased as region), and script subtags. + // Get the variant subtags (calendar, collation, currency, etc). + // refs: + // - http://www.unicode.org/reports/tr35/#Field_Definitions + // - http://www.unicode.org/reports/tr35/#Language_and_Locale_IDs + // - http://www.unicode.org/reports/tr35/#Unicode_locale_identifier + + // When a locale id does not specify a language, or territory (region), or script, they are obtained by Likely Subtags. + maxLanguageId = coreLikelySubtags( Cldr, this, subtags, { force: true } ) || subtags; + language = maxLanguageId[ 0 ]; + script = maxLanguageId[ 1 ]; + territory = maxLanguageId[ 2 ]; + + minLanguageId = coreRemoveLikelySubtags( Cldr, this, maxLanguageId ).join( sep ); + + // Set attributes + this.attributes = attributes = { + bundle: bundleLookup( Cldr, this, minLanguageId ), + + // Unicode Language Id + minlanguageId: minLanguageId, + maxLanguageId: maxLanguageId.join( sep ), + + // Unicode Language Id Subtabs + language: language, + script: script, + territory: territory, + region: territory, /* alias */ + variant: variant + }; + + // Unicode locale extensions. + unicodeLocaleExtensions && ( "-" + unicodeLocaleExtensions ).replace( /-[a-z]{3,8}|(-[a-z]{2})-([a-z]{3,8})/g, function( attribute, key, type ) { + + if ( key ) { + + // Extension is in the `keyword` form. + attributes[ "u" + key ] = type; + } else { + + // Extension is in the `attribute` form. + attributes[ "u" + attribute ] = true; + } + }); + + this.locale = locale; + }; + + /** + * .get() + */ + Cldr.prototype.get = function( path ) { + + validatePresence( path, "path" ); + validateTypePath( path, "path" ); + + return itemGetResolved( Cldr, path, this.attributes ); + }; + + /** + * .main() + */ + Cldr.prototype.main = function( path ) { + validatePresence( path, "path" ); + validateTypePath( path, "path" ); + + validate( "E_MISSING_BUNDLE", this.attributes.bundle !== null, { + locale: this.locale + }); + + path = alwaysArray( path ); + return this.get( [ "main/{bundle}" ].concat( path ) ); + }; + + return Cldr; + + + + +})); diff --git a/Web/Scripts/cldr/event.js b/Web/Scripts/cldr/event.js new file mode 100644 index 0000000..121b5c8 --- /dev/null +++ b/Web/Scripts/cldr/event.js @@ -0,0 +1,585 @@ +/** + * CLDR JavaScript Library v0.4.4 + * http://jquery.com/ + * + * Copyright 2013 Rafael Xavier de Souza + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-01-18T12:25Z + */ +/*! + * CLDR JavaScript Library v0.4.4 2016-01-18T12:25Z MIT license © Rafael Xavier + * http://git.io/h4lmVg + */ +(function( factory ) { + + if ( typeof define === "function" && define.amd ) { + // AMD. + define( [ "../cldr" ], factory ); + } else if ( typeof module === "object" && typeof module.exports === "object" ) { + // Node. CommonJS. + module.exports = factory( require( "cldrjs" ) ); + } else { + // Global + factory( Cldr ); + } + +}(function( Cldr ) { + + // Build optimization hack to avoid duplicating functions across modules. + var pathNormalize = Cldr._pathNormalize, + validatePresence = Cldr._validatePresence, + validateType = Cldr._validateType; + +/*! + * EventEmitter v4.2.7 - git.io/ee + * Oliver Caldwell + * MIT license + * @preserve + */ + +var EventEmitter; +/* jshint ignore:start */ +EventEmitter = (function () { + + + /** + * Class for managing events. + * Can be extended to provide event functionality in other classes. + * + * @class EventEmitter Manages event registering and emitting. + */ + function EventEmitter() {} + + // Shortcuts to improve speed and size + var proto = EventEmitter.prototype; + var exports = this; + var originalGlobalValue = exports.EventEmitter; + + /** + * Finds the index of the listener for the event in it's storage array. + * + * @param {Function[]} listeners Array of listeners to search through. + * @param {Function} listener Method to look for. + * @return {Number} Index of the specified listener, -1 if not found + * @api private + */ + function indexOfListener(listeners, listener) { + var i = listeners.length; + while (i--) { + if (listeners[i].listener === listener) { + return i; + } + } + + return -1; + } + + /** + * Alias a method while keeping the context correct, to allow for overwriting of target method. + * + * @param {String} name The name of the target method. + * @return {Function} The aliased method + * @api private + */ + function alias(name) { + return function aliasClosure() { + return this[name].apply(this, arguments); + }; + } + + /** + * Returns the listener array for the specified event. + * Will initialise the event object and listener arrays if required. + * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them. + * Each property in the object response is an array of listener functions. + * + * @param {String|RegExp} evt Name of the event to return the listeners from. + * @return {Function[]|Object} All listener functions for the event. + */ + proto.getListeners = function getListeners(evt) { + var events = this._getEvents(); + var response; + var key; + + // Return a concatenated array of all matching events if + // the selector is a regular expression. + if (evt instanceof RegExp) { + response = {}; + for (key in events) { + if (events.hasOwnProperty(key) && evt.test(key)) { + response[key] = events[key]; + } + } + } + else { + response = events[evt] || (events[evt] = []); + } + + return response; + }; + + /** + * Takes a list of listener objects and flattens it into a list of listener functions. + * + * @param {Object[]} listeners Raw listener objects. + * @return {Function[]} Just the listener functions. + */ + proto.flattenListeners = function flattenListeners(listeners) { + var flatListeners = []; + var i; + + for (i = 0; i < listeners.length; i += 1) { + flatListeners.push(listeners[i].listener); + } + + return flatListeners; + }; + + /** + * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful. + * + * @param {String|RegExp} evt Name of the event to return the listeners from. + * @return {Object} All listener functions for an event in an object. + */ + proto.getListenersAsObject = function getListenersAsObject(evt) { + var listeners = this.getListeners(evt); + var response; + + if (listeners instanceof Array) { + response = {}; + response[evt] = listeners; + } + + return response || listeners; + }; + + /** + * Adds a listener function to the specified event. + * The listener will not be added if it is a duplicate. + * If the listener returns true then it will be removed after it is called. + * If you pass a regular expression as the event name then the listener will be added to all events that match it. + * + * @param {String|RegExp} evt Name of the event to attach the listener to. + * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.addListener = function addListener(evt, listener) { + var listeners = this.getListenersAsObject(evt); + var listenerIsWrapped = typeof listener === 'object'; + var key; + + for (key in listeners) { + if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) { + listeners[key].push(listenerIsWrapped ? listener : { + listener: listener, + once: false + }); + } + } + + return this; + }; + + /** + * Alias of addListener + */ + proto.on = alias('addListener'); + + /** + * Semi-alias of addListener. It will add a listener that will be + * automatically removed after it's first execution. + * + * @param {String|RegExp} evt Name of the event to attach the listener to. + * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.addOnceListener = function addOnceListener(evt, listener) { + return this.addListener(evt, { + listener: listener, + once: true + }); + }; + + /** + * Alias of addOnceListener. + */ + proto.once = alias('addOnceListener'); + + /** + * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad. + * You need to tell it what event names should be matched by a regex. + * + * @param {String} evt Name of the event to create. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.defineEvent = function defineEvent(evt) { + this.getListeners(evt); + return this; + }; + + /** + * Uses defineEvent to define multiple events. + * + * @param {String[]} evts An array of event names to define. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.defineEvents = function defineEvents(evts) { + for (var i = 0; i < evts.length; i += 1) { + this.defineEvent(evts[i]); + } + return this; + }; + + /** + * Removes a listener function from the specified event. + * When passed a regular expression as the event name, it will remove the listener from all events that match it. + * + * @param {String|RegExp} evt Name of the event to remove the listener from. + * @param {Function} listener Method to remove from the event. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.removeListener = function removeListener(evt, listener) { + var listeners = this.getListenersAsObject(evt); + var index; + var key; + + for (key in listeners) { + if (listeners.hasOwnProperty(key)) { + index = indexOfListener(listeners[key], listener); + + if (index !== -1) { + listeners[key].splice(index, 1); + } + } + } + + return this; + }; + + /** + * Alias of removeListener + */ + proto.off = alias('removeListener'); + + /** + * Adds listeners in bulk using the manipulateListeners method. + * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added. + * You can also pass it a regular expression to add the array of listeners to all events that match it. + * Yeah, this function does quite a bit. That's probably a bad thing. + * + * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once. + * @param {Function[]} [listeners] An optional array of listener functions to add. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.addListeners = function addListeners(evt, listeners) { + // Pass through to manipulateListeners + return this.manipulateListeners(false, evt, listeners); + }; + + /** + * Removes listeners in bulk using the manipulateListeners method. + * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. + * You can also pass it an event name and an array of listeners to be removed. + * You can also pass it a regular expression to remove the listeners from all events that match it. + * + * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once. + * @param {Function[]} [listeners] An optional array of listener functions to remove. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.removeListeners = function removeListeners(evt, listeners) { + // Pass through to manipulateListeners + return this.manipulateListeners(true, evt, listeners); + }; + + /** + * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level. + * The first argument will determine if the listeners are removed (true) or added (false). + * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. + * You can also pass it an event name and an array of listeners to be added/removed. + * You can also pass it a regular expression to manipulate the listeners of all events that match it. + * + * @param {Boolean} remove True if you want to remove listeners, false if you want to add. + * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once. + * @param {Function[]} [listeners] An optional array of listener functions to add/remove. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) { + var i; + var value; + var single = remove ? this.removeListener : this.addListener; + var multiple = remove ? this.removeListeners : this.addListeners; + + // If evt is an object then pass each of it's properties to this method + if (typeof evt === 'object' && !(evt instanceof RegExp)) { + for (i in evt) { + if (evt.hasOwnProperty(i) && (value = evt[i])) { + // Pass the single listener straight through to the singular method + if (typeof value === 'function') { + single.call(this, i, value); + } + else { + // Otherwise pass back to the multiple function + multiple.call(this, i, value); + } + } + } + } + else { + // So evt must be a string + // And listeners must be an array of listeners + // Loop over it and pass each one to the multiple method + i = listeners.length; + while (i--) { + single.call(this, evt, listeners[i]); + } + } + + return this; + }; + + /** + * Removes all listeners from a specified event. + * If you do not specify an event then all listeners will be removed. + * That means every event will be emptied. + * You can also pass a regex to remove all events that match it. + * + * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.removeEvent = function removeEvent(evt) { + var type = typeof evt; + var events = this._getEvents(); + var key; + + // Remove different things depending on the state of evt + if (type === 'string') { + // Remove all listeners for the specified event + delete events[evt]; + } + else if (evt instanceof RegExp) { + // Remove all events matching the regex. + for (key in events) { + if (events.hasOwnProperty(key) && evt.test(key)) { + delete events[key]; + } + } + } + else { + // Remove all listeners in all events + delete this._events; + } + + return this; + }; + + /** + * Alias of removeEvent. + * + * Added to mirror the node API. + */ + proto.removeAllListeners = alias('removeEvent'); + + /** + * Emits an event of your choice. + * When emitted, every listener attached to that event will be executed. + * If you pass the optional argument array then those arguments will be passed to every listener upon execution. + * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately. + * So they will not arrive within the array on the other side, they will be separate. + * You can also pass a regular expression to emit to all events that match it. + * + * @param {String|RegExp} evt Name of the event to emit and execute listeners for. + * @param {Array} [args] Optional array of arguments to be passed to each listener. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.emitEvent = function emitEvent(evt, args) { + var listeners = this.getListenersAsObject(evt); + var listener; + var i; + var key; + var response; + + for (key in listeners) { + if (listeners.hasOwnProperty(key)) { + i = listeners[key].length; + + while (i--) { + // If the listener returns true then it shall be removed from the event + // The function is executed either with a basic call or an apply if there is an args array + listener = listeners[key][i]; + + if (listener.once === true) { + this.removeListener(evt, listener.listener); + } + + response = listener.listener.apply(this, args || []); + + if (response === this._getOnceReturnValue()) { + this.removeListener(evt, listener.listener); + } + } + } + } + + return this; + }; + + /** + * Alias of emitEvent + */ + proto.trigger = alias('emitEvent'); + + /** + * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on. + * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it. + * + * @param {String|RegExp} evt Name of the event to emit and execute listeners for. + * @param {...*} Optional additional arguments to be passed to each listener. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.emit = function emit(evt) { + var args = Array.prototype.slice.call(arguments, 1); + return this.emitEvent(evt, args); + }; + + /** + * Sets the current value to check against when executing listeners. If a + * listeners return value matches the one set here then it will be removed + * after execution. This value defaults to true. + * + * @param {*} value The new value to check for when executing listeners. + * @return {Object} Current instance of EventEmitter for chaining. + */ + proto.setOnceReturnValue = function setOnceReturnValue(value) { + this._onceReturnValue = value; + return this; + }; + + /** + * Fetches the current value to check against when executing listeners. If + * the listeners return value matches this one then it should be removed + * automatically. It will return true by default. + * + * @return {*|Boolean} The current value to check for or the default, true. + * @api private + */ + proto._getOnceReturnValue = function _getOnceReturnValue() { + if (this.hasOwnProperty('_onceReturnValue')) { + return this._onceReturnValue; + } + else { + return true; + } + }; + + /** + * Fetches the events object and creates one if required. + * + * @return {Object} The events storage object. + * @api private + */ + proto._getEvents = function _getEvents() { + return this._events || (this._events = {}); + }; + + /** + * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version. + * + * @return {Function} Non conflicting EventEmitter class. + */ + EventEmitter.noConflict = function noConflict() { + exports.EventEmitter = originalGlobalValue; + return EventEmitter; + }; + + return EventEmitter; +}()); +/* jshint ignore:end */ + + + + var validateTypeFunction = function( value, name ) { + validateType( value, name, typeof value === "undefined" || typeof value === "function", "Function" ); + }; + + + + + var superGet, superInit, + globalEe = new EventEmitter(); + + function validateTypeEvent( value, name ) { + validateType( value, name, typeof value === "string" || value instanceof RegExp, "String or RegExp" ); + } + + function validateThenCall( method, self ) { + return function( event, listener ) { + validatePresence( event, "event" ); + validateTypeEvent( event, "event" ); + + validatePresence( listener, "listener" ); + validateTypeFunction( listener, "listener" ); + + return self[ method ].apply( self, arguments ); + }; + } + + function off( self ) { + return validateThenCall( "off", self ); + } + + function on( self ) { + return validateThenCall( "on", self ); + } + + function once( self ) { + return validateThenCall( "once", self ); + } + + Cldr.off = off( globalEe ); + Cldr.on = on( globalEe ); + Cldr.once = once( globalEe ); + + /** + * Overload Cldr.prototype.init(). + */ + superInit = Cldr.prototype.init; + Cldr.prototype.init = function() { + var ee; + this.ee = ee = new EventEmitter(); + this.off = off( ee ); + this.on = on( ee ); + this.once = once( ee ); + superInit.apply( this, arguments ); + }; + + /** + * getOverload is encapsulated, because of cldr/unresolved. If it's loaded + * after cldr/event (and note it overwrites .get), it can trigger this + * overload again. + */ + function getOverload() { + + /** + * Overload Cldr.prototype.get(). + */ + superGet = Cldr.prototype.get; + Cldr.prototype.get = function( path ) { + var value = superGet.apply( this, arguments ); + path = pathNormalize( path, this.attributes ).join( "/" ); + globalEe.trigger( "get", [ path, value ] ); + this.ee.trigger( "get", [ path, value ] ); + return value; + }; + } + + Cldr._eventInit = getOverload; + getOverload(); + + return Cldr; + + + + +})); diff --git a/Web/Scripts/cldr/supplemental.js b/Web/Scripts/cldr/supplemental.js new file mode 100644 index 0000000..855de02 --- /dev/null +++ b/Web/Scripts/cldr/supplemental.js @@ -0,0 +1,101 @@ +/** + * CLDR JavaScript Library v0.4.4 + * http://jquery.com/ + * + * Copyright 2013 Rafael Xavier de Souza + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-01-18T12:25Z + */ +/*! + * CLDR JavaScript Library v0.4.4 2016-01-18T12:25Z MIT license © Rafael Xavier + * http://git.io/h4lmVg + */ +(function( factory ) { + + if ( typeof define === "function" && define.amd ) { + // AMD. + define( [ "../cldr" ], factory ); + } else if ( typeof module === "object" && typeof module.exports === "object" ) { + // Node. CommonJS. + module.exports = factory( require( "cldrjs" ) ); + } else { + // Global + factory( Cldr ); + } + +}(function( Cldr ) { + + // Build optimization hack to avoid duplicating functions across modules. + var alwaysArray = Cldr._alwaysArray; + + + + var supplementalMain = function( cldr ) { + + var prepend, supplemental; + + prepend = function( prepend ) { + return function( path ) { + path = alwaysArray( path ); + return cldr.get( [ prepend ].concat( path ) ); + }; + }; + + supplemental = prepend( "supplemental" ); + + // Week Data + // http://www.unicode.org/reports/tr35/tr35-dates.html#Week_Data + supplemental.weekData = prepend( "supplemental/weekData" ); + + supplemental.weekData.firstDay = function() { + return cldr.get( "supplemental/weekData/firstDay/{territory}" ) || + cldr.get( "supplemental/weekData/firstDay/001" ); + }; + + supplemental.weekData.minDays = function() { + var minDays = cldr.get( "supplemental/weekData/minDays/{territory}" ) || + cldr.get( "supplemental/weekData/minDays/001" ); + return parseInt( minDays, 10 ); + }; + + // Time Data + // http://www.unicode.org/reports/tr35/tr35-dates.html#Time_Data + supplemental.timeData = prepend( "supplemental/timeData" ); + + supplemental.timeData.allowed = function() { + return cldr.get( "supplemental/timeData/{territory}/_allowed" ) || + cldr.get( "supplemental/timeData/001/_allowed" ); + }; + + supplemental.timeData.preferred = function() { + return cldr.get( "supplemental/timeData/{territory}/_preferred" ) || + cldr.get( "supplemental/timeData/001/_preferred" ); + }; + + return supplemental; + + }; + + + + + var initSuper = Cldr.prototype.init; + + /** + * .init() automatically ran on construction. + * + * Overload .init(). + */ + Cldr.prototype.init = function() { + initSuper.apply( this, arguments ); + this.supplemental = supplementalMain( this ); + }; + + return Cldr; + + + + +})); diff --git a/Web/Scripts/cldr/unresolved.js b/Web/Scripts/cldr/unresolved.js new file mode 100644 index 0000000..0248ccb --- /dev/null +++ b/Web/Scripts/cldr/unresolved.js @@ -0,0 +1,164 @@ +/** + * CLDR JavaScript Library v0.4.4 + * http://jquery.com/ + * + * Copyright 2013 Rafael Xavier de Souza + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-01-18T12:25Z + */ +/*! + * CLDR JavaScript Library v0.4.4 2016-01-18T12:25Z MIT license © Rafael Xavier + * http://git.io/h4lmVg + */ +(function( factory ) { + + if ( typeof define === "function" && define.amd ) { + // AMD. + define( [ "../cldr" ], factory ); + } else if ( typeof module === "object" && typeof module.exports === "object" ) { + // Node. CommonJS. + module.exports = factory( require( "cldrjs" ) ); + } else { + // Global + factory( Cldr ); + } + +}(function( Cldr ) { + + // Build optimization hack to avoid duplicating functions across modules. + var coreLoad = Cldr._coreLoad; + var jsonMerge = Cldr._jsonMerge; + var pathNormalize = Cldr._pathNormalize; + var resourceGet = Cldr._resourceGet; + var validatePresence = Cldr._validatePresence; + var validateTypePath = Cldr._validateTypePath; + + + + var bundleParentLookup = function( Cldr, locale ) { + var normalizedPath, parent; + + if ( locale === "root" ) { + return; + } + + // First, try to find parent on supplemental data. + normalizedPath = pathNormalize( [ "supplemental/parentLocales/parentLocale", locale ] ); + parent = resourceGet( Cldr._resolved, normalizedPath ) || resourceGet( Cldr._raw, normalizedPath ); + if ( parent ) { + return parent; + } + + // Or truncate locale. + parent = locale.substr( 0, locale.lastIndexOf( Cldr.localeSep ) ); + if ( !parent ) { + return "root"; + } + + return parent; + }; + + + + + // @path: normalized path + var resourceSet = function( data, path, value ) { + var i, + node = data, + length = path.length; + + for ( i = 0; i < length - 1; i++ ) { + if ( !node[ path[ i ] ] ) { + node[ path[ i ] ] = {}; + } + node = node[ path[ i ] ]; + } + node[ path[ i ] ] = value; + }; + + + var itemLookup = (function() { + + var lookup; + + lookup = function( Cldr, locale, path, attributes, childLocale ) { + var normalizedPath, parent, value; + + // 1: Finish recursion + // 2: Avoid infinite loop + if ( typeof locale === "undefined" /* 1 */ || locale === childLocale /* 2 */ ) { + return; + } + + // Resolve path + normalizedPath = pathNormalize( path, attributes ); + + // Check resolved (cached) data first + // 1: Due to #16, never use the cached resolved non-leaf nodes. It may not + // represent its leafs in its entirety. + value = resourceGet( Cldr._resolved, normalizedPath ); + if ( value && typeof value !== "object" /* 1 */ ) { + return value; + } + + // Check raw data + value = resourceGet( Cldr._raw, normalizedPath ); + + if ( !value ) { + // Or, lookup at parent locale + parent = bundleParentLookup( Cldr, locale ); + value = lookup( Cldr, parent, path, jsonMerge( attributes, { bundle: parent }), locale ); + } + + if ( value ) { + // Set resolved (cached) + resourceSet( Cldr._resolved, normalizedPath, value ); + } + + return value; + }; + + return lookup; + +}()); + + + Cldr._raw = {}; + + /** + * Cldr.load( json [, json, ...] ) + * + * @json [JSON] CLDR data or [Array] Array of @json's. + * + * Load resolved or unresolved cldr data. + * Overwrite Cldr.load(). + */ + Cldr.load = function() { + Cldr._raw = coreLoad( Cldr, Cldr._raw, arguments ); + }; + + /** + * Overwrite Cldr.prototype.get(). + */ + Cldr.prototype.get = function( path ) { + validatePresence( path, "path" ); + validateTypePath( path, "path" ); + + // 1: use bundle as locale on item lookup for simplification purposes, because no other extended subtag is used anyway on bundle parent lookup. + // 2: during init(), this method is called, but bundle is yet not defined. Use "" as a workaround in this very specific scenario. + return itemLookup( Cldr, this.attributes && this.attributes.bundle /* 1 */ || "" /* 2 */, path, this.attributes ); + }; + + // In case cldr/unresolved is loaded after cldr/event, we trigger its overloads again. Because, .get is overwritten in here. + if ( Cldr._eventInit ) { + Cldr._eventInit(); + } + + return Cldr; + + + + +})); diff --git a/Web/Scripts/globalize.js b/Web/Scripts/globalize.js new file mode 100644 index 0000000..1426c4f --- /dev/null +++ b/Web/Scripts/globalize.js @@ -0,0 +1,421 @@ +/** + * Globalize v1.1.1 + * + * http://github.com/jquery/globalize + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-02-04T12:01Z + */ +/*! + * Globalize v1.1.1 2016-02-04T12:01Z Released under the MIT license + * http://git.io/TrdQbw + */ +(function( root, factory ) { + + // UMD returnExports + if ( typeof define === "function" && define.amd ) { + + // AMD + define([ + "cldr", + "cldr/event" + ], factory ); + } else if ( typeof exports === "object" ) { + + // Node, CommonJS + module.exports = factory( require( "cldrjs" ) ); + } else { + + // Global + root.Globalize = factory( root.Cldr ); + } +}( this, function( Cldr ) { + + +/** + * A toString method that outputs meaningful values for objects or arrays and + * still performs as fast as a plain string in case variable is string, or as + * fast as `"" + number` in case variable is a number. + * Ref: http://jsperf.com/my-stringify + */ +var toString = function( variable ) { + return typeof variable === "string" ? variable : ( typeof variable === "number" ? "" + + variable : JSON.stringify( variable ) ); +}; + + + + +/** + * formatMessage( message, data ) + * + * @message [String] A message with optional {vars} to be replaced. + * + * @data [Array or JSON] Object with replacing-variables content. + * + * Return the formatted message. For example: + * + * - formatMessage( "{0} second", [ 1 ] ); // 1 second + * + * - formatMessage( "{0}/{1}", ["m", "s"] ); // m/s + * + * - formatMessage( "{name} <{email}>", { + * name: "Foo", + * email: "bar@baz.qux" + * }); // Foo + */ +var formatMessage = function( message, data ) { + + // Replace {attribute}'s + message = message.replace( /{[0-9a-zA-Z-_. ]+}/g, function( name ) { + name = name.replace( /^{([^}]*)}$/, "$1" ); + return toString( data[ name ] ); + }); + + return message; +}; + + + + +var objectExtend = function() { + var destination = arguments[ 0 ], + sources = [].slice.call( arguments, 1 ); + + sources.forEach(function( source ) { + var prop; + for ( prop in source ) { + destination[ prop ] = source[ prop ]; + } + }); + + return destination; +}; + + + + +var createError = function( code, message, attributes ) { + var error; + + message = code + ( message ? ": " + formatMessage( message, attributes ) : "" ); + error = new Error( message ); + error.code = code; + + objectExtend( error, attributes ); + + return error; +}; + + + + +// Based on http://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript-jquery +var stringHash = function( str ) { + return [].reduce.call( str, function( hash, i ) { + var chr = i.charCodeAt( 0 ); + hash = ( ( hash << 5 ) - hash ) + chr; + return hash | 0; + }, 0 ); +}; + + + + +var runtimeKey = function( fnName, locale, args, argsStr ) { + var hash; + argsStr = argsStr || JSON.stringify( args ); + hash = stringHash( fnName + locale + argsStr ); + return hash > 0 ? "a" + hash : "b" + Math.abs( hash ); +}; + + + + +var functionName = function( fn ) { + if ( fn.name !== undefined ) { + return fn.name; + } + + // fn.name is not supported by IE. + var matches = /^function\s+([\w\$]+)\s*\(/.exec( fn.toString() ); + + if ( matches && matches.length > 0 ) { + return matches[ 1 ]; + } +}; + + + + +var runtimeBind = function( args, cldr, fn, runtimeArgs ) { + + var argsStr = JSON.stringify( args ), + fnName = functionName( fn ), + locale = cldr.locale; + + // If name of the function is not available, this is most likely due uglification, + // which most likely means we are in production, and runtimeBind here is not necessary. + if ( !fnName ) { + return fn; + } + + fn.runtimeKey = runtimeKey( fnName, locale, null, argsStr ); + + fn.generatorString = function() { + return "Globalize(\"" + locale + "\")." + fnName + "(" + argsStr.slice( 1, -1 ) + ")"; + }; + + fn.runtimeArgs = runtimeArgs; + + return fn; +}; + + + + +var validate = function( code, message, check, attributes ) { + if ( !check ) { + throw createError( code, message, attributes ); + } +}; + + + + +var alwaysArray = function( stringOrArray ) { + return Array.isArray( stringOrArray ) ? stringOrArray : stringOrArray ? [ stringOrArray ] : []; +}; + + + + +var validateCldr = function( path, value, options ) { + var skipBoolean; + options = options || {}; + + skipBoolean = alwaysArray( options.skip ).some(function( pathRe ) { + return pathRe.test( path ); + }); + + validate( "E_MISSING_CLDR", "Missing required CLDR content `{path}`.", value || skipBoolean, { + path: path + }); +}; + + + + +var validateDefaultLocale = function( value ) { + validate( "E_DEFAULT_LOCALE_NOT_DEFINED", "Default locale has not been defined.", + value !== undefined, {} ); +}; + + + + +var validateParameterPresence = function( value, name ) { + validate( "E_MISSING_PARAMETER", "Missing required parameter `{name}`.", + value !== undefined, { name: name }); +}; + + + + +/** + * range( value, name, minimum, maximum ) + * + * @value [Number]. + * + * @name [String] name of variable. + * + * @minimum [Number]. The lowest valid value, inclusive. + * + * @maximum [Number]. The greatest valid value, inclusive. + */ +var validateParameterRange = function( value, name, minimum, maximum ) { + validate( + "E_PAR_OUT_OF_RANGE", + "Parameter `{name}` has value `{value}` out of range [{minimum}, {maximum}].", + value === undefined || value >= minimum && value <= maximum, + { + maximum: maximum, + minimum: minimum, + name: name, + value: value + } + ); +}; + + + + +var validateParameterType = function( value, name, check, expected ) { + validate( + "E_INVALID_PAR_TYPE", + "Invalid `{name}` parameter ({value}). {expected} expected.", + check, + { + expected: expected, + name: name, + value: value + } + ); +}; + + + + +var validateParameterTypeLocale = function( value, name ) { + validateParameterType( + value, + name, + value === undefined || typeof value === "string" || value instanceof Cldr, + "String or Cldr instance" + ); +}; + + + + +/** + * Function inspired by jQuery Core, but reduced to our use case. + */ +var isPlainObject = function( obj ) { + return obj !== null && "" + obj === "[object Object]"; +}; + + + + +var validateParameterTypePlainObject = function( value, name ) { + validateParameterType( + value, + name, + value === undefined || isPlainObject( value ), + "Plain Object" + ); +}; + + + + +var alwaysCldr = function( localeOrCldr ) { + return localeOrCldr instanceof Cldr ? localeOrCldr : new Cldr( localeOrCldr ); +}; + + + + +// ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions?redirectlocale=en-US&redirectslug=JavaScript%2FGuide%2FRegular_Expressions +var regexpEscape = function( string ) { + return string.replace( /([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1" ); +}; + + + + +var stringPad = function( str, count, right ) { + var length; + if ( typeof str !== "string" ) { + str = String( str ); + } + for ( length = str.length; length < count; length += 1 ) { + str = ( right ? ( str + "0" ) : ( "0" + str ) ); + } + return str; +}; + + + + +function validateLikelySubtags( cldr ) { + cldr.once( "get", validateCldr ); + cldr.get( "supplemental/likelySubtags" ); +} + +/** + * [new] Globalize( locale|cldr ) + * + * @locale [String] + * + * @cldr [Cldr instance] + * + * Create a Globalize instance. + */ +function Globalize( locale ) { + if ( !( this instanceof Globalize ) ) { + return new Globalize( locale ); + } + + validateParameterPresence( locale, "locale" ); + validateParameterTypeLocale( locale, "locale" ); + + this.cldr = alwaysCldr( locale ); + + validateLikelySubtags( this.cldr ); +} + +/** + * Globalize.load( json, ... ) + * + * @json [JSON] + * + * Load resolved or unresolved cldr data. + * Somewhat equivalent to previous Globalize.addCultureInfo(...). + */ +Globalize.load = function() { + + // validations are delegated to Cldr.load(). + Cldr.load.apply( Cldr, arguments ); +}; + +/** + * Globalize.locale( [locale|cldr] ) + * + * @locale [String] + * + * @cldr [Cldr instance] + * + * Set default Cldr instance if locale or cldr argument is passed. + * + * Return the default Cldr instance. + */ +Globalize.locale = function( locale ) { + validateParameterTypeLocale( locale, "locale" ); + + if ( arguments.length ) { + this.cldr = alwaysCldr( locale ); + validateLikelySubtags( this.cldr ); + } + return this.cldr; +}; + +/** + * Optimization to avoid duplicating some internal functions across modules. + */ +Globalize._alwaysArray = alwaysArray; +Globalize._createError = createError; +Globalize._formatMessage = formatMessage; +Globalize._isPlainObject = isPlainObject; +Globalize._objectExtend = objectExtend; +Globalize._regexpEscape = regexpEscape; +Globalize._runtimeBind = runtimeBind; +Globalize._stringPad = stringPad; +Globalize._validate = validate; +Globalize._validateCldr = validateCldr; +Globalize._validateDefaultLocale = validateDefaultLocale; +Globalize._validateParameterPresence = validateParameterPresence; +Globalize._validateParameterRange = validateParameterRange; +Globalize._validateParameterTypePlainObject = validateParameterTypePlainObject; +Globalize._validateParameterType = validateParameterType; + +return Globalize; + + + + +})); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.af-ZA.js b/Web/Scripts/globalize/cultures/globalize.culture.af-ZA.js deleted file mode 100644 index 094a81f..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.af-ZA.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture af-ZA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "af-ZA", "default", { - name: "af-ZA", - englishName: "Afrikaans (South Africa)", - nativeName: "Afrikaans (Suid Afrika)", - language: "af", - numberFormat: { - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["Sondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrydag","Saterdag"], - namesAbbr: ["Son","Maan","Dins","Woen","Dond","Vry","Sat"], - namesShort: ["So","Ma","Di","Wo","Do","Vr","Sa"] - }, - months: { - names: ["Januarie","Februarie","Maart","April","Mei","Junie","Julie","Augustus","September","Oktober","November","Desember",""], - namesAbbr: ["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.af.js b/Web/Scripts/globalize/cultures/globalize.culture.af.js deleted file mode 100644 index 9ac0407..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.af.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture af - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "af", "default", { - name: "af", - englishName: "Afrikaans", - nativeName: "Afrikaans", - language: "af", - numberFormat: { - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["Sondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrydag","Saterdag"], - namesAbbr: ["Son","Maan","Dins","Woen","Dond","Vry","Sat"], - namesShort: ["So","Ma","Di","Wo","Do","Vr","Sa"] - }, - months: { - names: ["Januarie","Februarie","Maart","April","Mei","Junie","Julie","Augustus","September","Oktober","November","Desember",""], - namesAbbr: ["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.am-ET.js b/Web/Scripts/globalize/cultures/globalize.culture.am-ET.js deleted file mode 100644 index 742c209..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.am-ET.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Globalize Culture am-ET - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "am-ET", "default", { - name: "am-ET", - englishName: "Amharic (Ethiopia)", - nativeName: "አማርኛ (ኢትዮጵያ)", - language: "am", - numberFormat: { - decimals: 1, - groupSizes: [3,0], - "NaN": "NAN", - percent: { - pattern: ["-n%","n%"], - decimals: 1, - groupSizes: [3,0] - }, - currency: { - pattern: ["-$n","$n"], - groupSizes: [3,0], - symbol: "ETB" - } - }, - calendars: { - standard: { - days: { - names: ["እሑድ","ሰኞ","ማክሰኞ","ረቡዕ","ሐሙስ","ዓርብ","ቅዳሜ"], - namesAbbr: ["እሑድ","ሰኞ","ማክሰ","ረቡዕ","ሐሙስ","ዓርብ","ቅዳሜ"], - namesShort: ["እ","ሰ","ማ","ረ","ሐ","ዓ","ቅ"] - }, - months: { - names: ["ጃንዩወሪ","ፌብሩወሪ","ማርች","ኤፕረል","ሜይ","ጁን","ጁላይ","ኦገስት","ሴፕቴምበር","ኦክተውበር","ኖቬምበር","ዲሴምበር",""], - namesAbbr: ["ጃንዩ","ፌብሩ","ማርች","ኤፕረ","ሜይ","ጁን","ጁላይ","ኦገስ","ሴፕቴ","ኦክተ","ኖቬም","ዲሴም",""] - }, - AM: ["ጡዋት","ጡዋት","ጡዋት"], - PM: ["ከሰዓት","ከሰዓት","ከሰዓት"], - eras: [{"name":"ዓመተ ምሕረት","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "dddd '፣' MMMM d 'ቀን' yyyy", - f: "dddd '፣' MMMM d 'ቀን' yyyy h:mm tt", - F: "dddd '፣' MMMM d 'ቀን' yyyy h:mm:ss tt", - M: "MMMM d ቀን", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.am.js b/Web/Scripts/globalize/cultures/globalize.culture.am.js deleted file mode 100644 index ad6f9d4..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.am.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Globalize Culture am - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "am", "default", { - name: "am", - englishName: "Amharic", - nativeName: "አማርኛ", - language: "am", - numberFormat: { - decimals: 1, - groupSizes: [3,0], - "NaN": "NAN", - percent: { - pattern: ["-n%","n%"], - decimals: 1, - groupSizes: [3,0] - }, - currency: { - pattern: ["-$n","$n"], - groupSizes: [3,0], - symbol: "ETB" - } - }, - calendars: { - standard: { - days: { - names: ["እሑድ","ሰኞ","ማክሰኞ","ረቡዕ","ሐሙስ","ዓርብ","ቅዳሜ"], - namesAbbr: ["እሑድ","ሰኞ","ማክሰ","ረቡዕ","ሐሙስ","ዓርብ","ቅዳሜ"], - namesShort: ["እ","ሰ","ማ","ረ","ሐ","ዓ","ቅ"] - }, - months: { - names: ["ጃንዩወሪ","ፌብሩወሪ","ማርች","ኤፕረል","ሜይ","ጁን","ጁላይ","ኦገስት","ሴፕቴምበር","ኦክተውበር","ኖቬምበር","ዲሴምበር",""], - namesAbbr: ["ጃንዩ","ፌብሩ","ማርች","ኤፕረ","ሜይ","ጁን","ጁላይ","ኦገስ","ሴፕቴ","ኦክተ","ኖቬም","ዲሴም",""] - }, - AM: ["ጡዋት","ጡዋት","ጡዋት"], - PM: ["ከሰዓት","ከሰዓት","ከሰዓት"], - eras: [{"name":"ዓመተ ምሕረት","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "dddd '፣' MMMM d 'ቀን' yyyy", - f: "dddd '፣' MMMM d 'ቀን' yyyy h:mm tt", - F: "dddd '፣' MMMM d 'ቀን' yyyy h:mm:ss tt", - M: "MMMM d ቀን", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-AE.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-AE.js deleted file mode 100644 index d2a4bb1..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ar-AE.js +++ /dev/null @@ -1,457 +0,0 @@ -/* - * Globalize Culture ar-AE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar-AE", "default", { - name: "ar-AE", - englishName: "Arabic (U.A.E.)", - nativeName: "العربية (الإمارات العربية المتحدة)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "د.إ.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-BH.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-BH.js deleted file mode 100644 index 62e60f2..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ar-BH.js +++ /dev/null @@ -1,462 +0,0 @@ -/* - * Globalize Culture ar-BH - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar-BH", "default", { - name: "ar-BH", - englishName: "Arabic (Bahrain)", - nativeName: "العربية (البحرين)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - decimals: 3, - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - percent: { - decimals: 3 - }, - currency: { - pattern: ["$n-","$ n"], - decimals: 3, - symbol: "د.ب.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-DZ.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-DZ.js deleted file mode 100644 index 5e8225a..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ar-DZ.js +++ /dev/null @@ -1,458 +0,0 @@ -/* - * Globalize Culture ar-DZ - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar-DZ", "default", { - name: "ar-DZ", - englishName: "Arabic (Algeria)", - nativeName: "العربية (الجزائر)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "د.ج.\u200f" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM, yyyy H:mm", - F: "dd MMMM, yyyy H:mm:ss", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd/MM/yyyy H:mm", - F: "dd/MM/yyyy H:mm:ss", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd/MMMM/yyyy H:mm", - F: "dd/MMMM/yyyy H:mm:ss", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-EG.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-EG.js deleted file mode 100644 index 35313e5..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ar-EG.js +++ /dev/null @@ -1,484 +0,0 @@ -/* - * Globalize Culture ar-EG - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar-EG", "default", { - name: "ar-EG", - englishName: "Arabic (Egypt)", - nativeName: "العربية (مصر)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - decimals: 3, - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - percent: { - decimals: 3 - }, - currency: { - pattern: ["$n-","$ n"], - symbol: "ج.م.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-IQ.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-IQ.js deleted file mode 100644 index 14658fb..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ar-IQ.js +++ /dev/null @@ -1,457 +0,0 @@ -/* - * Globalize Culture ar-IQ - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar-IQ", "default", { - name: "ar-IQ", - englishName: "Arabic (Iraq)", - nativeName: "العربية (العراق)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "د.ع.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-JO.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-JO.js deleted file mode 100644 index 9db0acd..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ar-JO.js +++ /dev/null @@ -1,462 +0,0 @@ -/* - * Globalize Culture ar-JO - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar-JO", "default", { - name: "ar-JO", - englishName: "Arabic (Jordan)", - nativeName: "العربية (الأردن)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - decimals: 3, - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - percent: { - decimals: 3 - }, - currency: { - pattern: ["$n-","$ n"], - decimals: 3, - symbol: "د.ا.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-KW.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-KW.js deleted file mode 100644 index e69de29..0000000 diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-LB.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-LB.js deleted file mode 100644 index 6c621f8..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ar-LB.js +++ /dev/null @@ -1,457 +0,0 @@ -/* - * Globalize Culture ar-LB - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar-LB", "default", { - name: "ar-LB", - englishName: "Arabic (Lebanon)", - nativeName: "العربية (لبنان)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "ل.ل.\u200f" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-LY.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-LY.js deleted file mode 100644 index 73a4266..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ar-LY.js +++ /dev/null @@ -1,462 +0,0 @@ -/* - * Globalize Culture ar-LY - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar-LY", "default", { - name: "ar-LY", - englishName: "Arabic (Libya)", - nativeName: "العربية (ليبيا)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - decimals: 3, - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - percent: { - decimals: 3 - }, - currency: { - pattern: ["$n-","$n"], - decimals: 3, - symbol: "د.ل.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-MA.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-MA.js deleted file mode 100644 index 0b953c4..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ar-MA.js +++ /dev/null @@ -1,458 +0,0 @@ -/* - * Globalize Culture ar-MA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar-MA", "default", { - name: "ar-MA", - englishName: "Arabic (Morocco)", - nativeName: "العربية (المملكة المغربية)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "د.م.\u200f" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","ماي","يونيو","يوليوز","غشت","شتنبر","أكتوبر","نونبر","دجنبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","ماي","يونيو","يوليوز","غشت","شتنبر","أكتوبر","نونبر","دجنبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM, yyyy H:mm", - F: "dd MMMM, yyyy H:mm:ss", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd/MM/yyyy H:mm", - F: "dd/MM/yyyy H:mm:ss", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd/MMMM/yyyy H:mm", - F: "dd/MMMM/yyyy H:mm:ss", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-OM.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-OM.js deleted file mode 100644 index 6b184a1..0000000 Binary files a/Web/Scripts/globalize/cultures/globalize.culture.ar-OM.js and /dev/null differ diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-QA.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-QA.js deleted file mode 100644 index dfa405e..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ar-QA.js +++ /dev/null @@ -1,457 +0,0 @@ -/* - * Globalize Culture ar-QA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar-QA", "default", { - name: "ar-QA", - englishName: "Arabic (Qatar)", - nativeName: "العربية (قطر)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "ر.ق.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-SA.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-SA.js deleted file mode 100644 index cba34f6..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ar-SA.js +++ /dev/null @@ -1,457 +0,0 @@ -/* - * Globalize Culture ar-SA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar-SA", "default", { - name: "ar-SA", - englishName: "Arabic (Saudi Arabia)", - nativeName: "العربية (المملكة العربية السعودية)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "ر.س.\u200f" - } - }, - calendars: { - standard: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_Localized: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-SY.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-SY.js deleted file mode 100644 index d75faa6..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ar-SY.js +++ /dev/null @@ -1,457 +0,0 @@ -/* - * Globalize Culture ar-SY - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar-SY", "default", { - name: "ar-SY", - englishName: "Arabic (Syria)", - nativeName: "العربية (سوريا)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "ل.س.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-TN.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-TN.js deleted file mode 100644 index d7614ad..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ar-TN.js +++ /dev/null @@ -1,463 +0,0 @@ -/* - * Globalize Culture ar-TN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar-TN", "default", { - name: "ar-TN", - englishName: "Arabic (Tunisia)", - nativeName: "العربية (تونس)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - decimals: 3, - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - percent: { - decimals: 3 - }, - currency: { - pattern: ["$n-","$ n"], - decimals: 3, - symbol: "د.ت.\u200f" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM, yyyy H:mm", - F: "dd MMMM, yyyy H:mm:ss", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd/MM/yyyy H:mm", - F: "dd/MM/yyyy H:mm:ss", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd/MMMM/yyyy H:mm", - F: "dd/MMMM/yyyy H:mm:ss", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar-YE.js b/Web/Scripts/globalize/cultures/globalize.culture.ar-YE.js deleted file mode 100644 index e69de29..0000000 diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ar.js b/Web/Scripts/globalize/cultures/globalize.culture.ar.js deleted file mode 100644 index e69de29..0000000 diff --git a/Web/Scripts/globalize/cultures/globalize.culture.arn-CL.js b/Web/Scripts/globalize/cultures/globalize.culture.arn-CL.js deleted file mode 100644 index b898ab3..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.arn-CL.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture arn-CL - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "arn-CL", "default", { - name: "arn-CL", - englishName: "Mapudungun (Chile)", - nativeName: "Mapudungun (Chile)", - language: "arn", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd-MM-yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.arn.js b/Web/Scripts/globalize/cultures/globalize.culture.arn.js deleted file mode 100644 index b27f5d5..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.arn.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture arn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "arn", "default", { - name: "arn", - englishName: "Mapudungun", - nativeName: "Mapudungun", - language: "arn", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd-MM-yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.as-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.as-IN.js deleted file mode 100644 index fe97442..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.as-IN.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture as-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "as-IN", "default", { - name: "as-IN", - englishName: "Assamese (India)", - nativeName: "অসমীয়া (ভাৰত)", - language: "as", - numberFormat: { - groupSizes: [3,2], - "NaN": "nan", - negativeInfinity: "-infinity", - positiveInfinity: "infinity", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","n$"], - groupSizes: [3,2], - symbol: "ট" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["সোমবাৰ","মঙ্গলবাৰ","বুধবাৰ","বৃহস্পতিবাৰ","শুক্রবাৰ","শনিবাৰ","ৰবিবাৰ"], - namesAbbr: ["সোম.","মঙ্গল.","বুধ.","বৃহ.","শুক্র.","শনি.","ৰবি."], - namesShort: ["সো","ম","বু","বৃ","শু","শ","র"] - }, - months: { - names: ["জানুৱাৰী","ফেব্রুৱাৰী","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগষ্ট","চেপ্টেম্বর","অক্টোবর","নবেম্বর","ডিচেম্বর",""], - namesAbbr: ["জানু","ফেব্রু","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগষ্ট","চেপ্টে","অক্টো","নবে","ডিচে",""] - }, - AM: ["ৰাতিপু","ৰাতিপু","ৰাতিপু"], - PM: ["আবেলি","আবেলি","আবেলি"], - eras: [{"name":"খ্রীষ্টাব্দ","start":null,"offset":0}], - patterns: { - d: "dd-MM-yyyy", - D: "yyyy,MMMM dd, dddd", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "yyyy,MMMM dd, dddd tt h:mm", - F: "yyyy,MMMM dd, dddd tt h:mm:ss", - M: "dd MMMM", - Y: "MMMM,yy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.as.js b/Web/Scripts/globalize/cultures/globalize.culture.as.js deleted file mode 100644 index 5577f8b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.as.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture as - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "as", "default", { - name: "as", - englishName: "Assamese", - nativeName: "অসমীয়া", - language: "as", - numberFormat: { - groupSizes: [3,2], - "NaN": "nan", - negativeInfinity: "-infinity", - positiveInfinity: "infinity", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","n$"], - groupSizes: [3,2], - symbol: "ট" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["সোমবাৰ","মঙ্গলবাৰ","বুধবাৰ","বৃহস্পতিবাৰ","শুক্রবাৰ","শনিবাৰ","ৰবিবাৰ"], - namesAbbr: ["সোম.","মঙ্গল.","বুধ.","বৃহ.","শুক্র.","শনি.","ৰবি."], - namesShort: ["সো","ম","বু","বৃ","শু","শ","র"] - }, - months: { - names: ["জানুৱাৰী","ফেব্রুৱাৰী","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগষ্ট","চেপ্টেম্বর","অক্টোবর","নবেম্বর","ডিচেম্বর",""], - namesAbbr: ["জানু","ফেব্রু","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগষ্ট","চেপ্টে","অক্টো","নবে","ডিচে",""] - }, - AM: ["ৰাতিপু","ৰাতিপু","ৰাতিপু"], - PM: ["আবেলি","আবেলি","আবেলি"], - eras: [{"name":"খ্রীষ্টাব্দ","start":null,"offset":0}], - patterns: { - d: "dd-MM-yyyy", - D: "yyyy,MMMM dd, dddd", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "yyyy,MMMM dd, dddd tt h:mm", - F: "yyyy,MMMM dd, dddd tt h:mm:ss", - M: "dd MMMM", - Y: "MMMM,yy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.az-Cyrl-AZ.js b/Web/Scripts/globalize/cultures/globalize.culture.az-Cyrl-AZ.js deleted file mode 100644 index 71164b4..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.az-Cyrl-AZ.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture az-Cyrl-AZ - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "az-Cyrl-AZ", "default", { - name: "az-Cyrl-AZ", - englishName: "Azeri (Cyrillic, Azerbaijan)", - nativeName: "Азәрбајҹан (Азәрбајҹан)", - language: "az-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "ман." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Базар","Базар ертәси","Чәршәнбә ахшамы","Чәршәнбә","Ҹүмә ахшамы","Ҹүмә","Шәнбә"], - namesAbbr: ["Б","Бе","Ча","Ч","Ҹа","Ҹ","Ш"], - namesShort: ["Б","Бе","Ча","Ч","Ҹа","Ҹ","Ш"] - }, - months: { - names: ["Јанвар","Феврал","Март","Апрел","Мај","Ијун","Ијул","Август","Сентјабр","Октјабр","Нојабр","Декабр",""], - namesAbbr: ["Јан","Фев","Мар","Апр","Мај","Ијун","Ијул","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["јанвар","феврал","март","апрел","мај","ијун","ијул","август","сентјабр","октјабр","нојабр","декабр",""], - namesAbbr: ["Јан","Фев","Мар","Апр","мая","ијун","ијул","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.az-Cyrl.js b/Web/Scripts/globalize/cultures/globalize.culture.az-Cyrl.js deleted file mode 100644 index 5928356..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.az-Cyrl.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture az-Cyrl - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "az-Cyrl", "default", { - name: "az-Cyrl", - englishName: "Azeri (Cyrillic)", - nativeName: "Азәрбајҹан дили", - language: "az-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "ман." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Базар","Базар ертәси","Чәршәнбә ахшамы","Чәршәнбә","Ҹүмә ахшамы","Ҹүмә","Шәнбә"], - namesAbbr: ["Б","Бе","Ча","Ч","Ҹа","Ҹ","Ш"], - namesShort: ["Б","Бе","Ча","Ч","Ҹа","Ҹ","Ш"] - }, - months: { - names: ["Јанвар","Феврал","Март","Апрел","Мај","Ијун","Ијул","Август","Сентјабр","Октјабр","Нојабр","Декабр",""], - namesAbbr: ["Јан","Фев","Мар","Апр","Мај","Ијун","Ијул","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["јанвар","феврал","март","апрел","мај","ијун","ијул","август","сентјабр","октјабр","нојабр","декабр",""], - namesAbbr: ["Јан","Фев","Мар","Апр","мая","ијун","ијул","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.az-Latn-AZ.js b/Web/Scripts/globalize/cultures/globalize.culture.az-Latn-AZ.js deleted file mode 100644 index 200848e..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.az-Latn-AZ.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture az-Latn-AZ - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "az-Latn-AZ", "default", { - name: "az-Latn-AZ", - englishName: "Azeri (Latin, Azerbaijan)", - nativeName: "Azərbaycan\xadılı (Azərbaycan)", - language: "az-Latn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "man." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"], - namesAbbr: ["B","Be","Ça","Ç","Ca","C","Ş"], - namesShort: ["B","Be","Ça","Ç","Ca","C","Ş"] - }, - months: { - names: ["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avgust","Sentyabr","Oktyabr","Noyabr","Dekabr",""], - namesAbbr: ["Yan","Fev","Mar","Apr","May","İyun","İyul","Avg","Sen","Okt","Noy","Dek",""] - }, - monthsGenitive: { - names: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""], - namesAbbr: ["Yan","Fev","Mar","Apr","May","İyun","İyul","Avg","Sen","Okt","Noy","Dek",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.az-Latn.js b/Web/Scripts/globalize/cultures/globalize.culture.az-Latn.js deleted file mode 100644 index c4e80c7..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.az-Latn.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture az-Latn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "az-Latn", "default", { - name: "az-Latn", - englishName: "Azeri (Latin)", - nativeName: "Azərbaycan\xadılı", - language: "az-Latn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "man." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"], - namesAbbr: ["B","Be","Ça","Ç","Ca","C","Ş"], - namesShort: ["B","Be","Ça","Ç","Ca","C","Ş"] - }, - months: { - names: ["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avgust","Sentyabr","Oktyabr","Noyabr","Dekabr",""], - namesAbbr: ["Yan","Fev","Mar","Apr","May","İyun","İyul","Avg","Sen","Okt","Noy","Dek",""] - }, - monthsGenitive: { - names: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""], - namesAbbr: ["Yan","Fev","Mar","Apr","May","İyun","İyul","Avg","Sen","Okt","Noy","Dek",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.az.js b/Web/Scripts/globalize/cultures/globalize.culture.az.js deleted file mode 100644 index 7a5e5ec..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.az.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture az - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "az", "default", { - name: "az", - englishName: "Azeri", - nativeName: "Azərbaycan\xadılı", - language: "az", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "man." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"], - namesAbbr: ["B","Be","Ça","Ç","Ca","C","Ş"], - namesShort: ["B","Be","Ça","Ç","Ca","C","Ş"] - }, - months: { - names: ["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avgust","Sentyabr","Oktyabr","Noyabr","Dekabr",""], - namesAbbr: ["Yan","Fev","Mar","Apr","May","İyun","İyul","Avg","Sen","Okt","Noy","Dek",""] - }, - monthsGenitive: { - names: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""], - namesAbbr: ["Yan","Fev","Mar","Apr","May","İyun","İyul","Avg","Sen","Okt","Noy","Dek",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ba-RU.js b/Web/Scripts/globalize/cultures/globalize.culture.ba-RU.js deleted file mode 100644 index 4b81713..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ba-RU.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture ba-RU - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ba-RU", "default", { - name: "ba-RU", - englishName: "Bashkir (Russia)", - nativeName: "Башҡорт (Россия)", - language: "ba", - numberFormat: { - ",": " ", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - groupSizes: [3,0], - ",": " ", - ".": ",", - symbol: "һ." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Йәкшәмбе","Дүшәмбе","Шишәмбе","Шаршамбы","Кесаҙна","Йома","Шәмбе"], - namesAbbr: ["Йш","Дш","Шш","Шр","Кс","Йм","Шб"], - namesShort: ["Йш","Дш","Шш","Шр","Кс","Йм","Шб"] - }, - months: { - names: ["ғинуар","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь",""], - namesAbbr: ["ғин","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d MMMM yyyy 'й'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy 'й' H:mm", - F: "d MMMM yyyy 'й' H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ba.js b/Web/Scripts/globalize/cultures/globalize.culture.ba.js deleted file mode 100644 index a665f66..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ba.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture ba - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ba", "default", { - name: "ba", - englishName: "Bashkir", - nativeName: "Башҡорт", - language: "ba", - numberFormat: { - ",": " ", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - groupSizes: [3,0], - ",": " ", - ".": ",", - symbol: "һ." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Йәкшәмбе","Дүшәмбе","Шишәмбе","Шаршамбы","Кесаҙна","Йома","Шәмбе"], - namesAbbr: ["Йш","Дш","Шш","Шр","Кс","Йм","Шб"], - namesShort: ["Йш","Дш","Шш","Шр","Кс","Йм","Шб"] - }, - months: { - names: ["ғинуар","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь",""], - namesAbbr: ["ғин","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d MMMM yyyy 'й'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy 'й' H:mm", - F: "d MMMM yyyy 'й' H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.be-BY.js b/Web/Scripts/globalize/cultures/globalize.culture.be-BY.js deleted file mode 100644 index 855695a..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.be-BY.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture be-BY - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "be-BY", "default", { - name: "be-BY", - englishName: "Belarusian (Belarus)", - nativeName: "Беларускі (Беларусь)", - language: "be", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "р." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["нядзеля","панядзелак","аўторак","серада","чацвер","пятніца","субота"], - namesAbbr: ["нд","пн","аў","ср","чц","пт","сб"], - namesShort: ["нд","пн","аў","ср","чц","пт","сб"] - }, - months: { - names: ["Студзень","Люты","Сакавік","Красавік","Май","Чэрвень","Ліпень","Жнівень","Верасень","Кастрычнік","Лістапад","Снежань",""], - namesAbbr: ["Сту","Лют","Сак","Кра","Май","Чэр","Ліп","Жні","Вер","Кас","Ліс","Сне",""] - }, - monthsGenitive: { - names: ["студзеня","лютага","сакавіка","красавіка","мая","чэрвеня","ліпеня","жніўня","верасня","кастрычніка","лістапада","снежня",""], - namesAbbr: ["Сту","Лют","Сак","Кра","Май","Чэр","Ліп","Жні","Вер","Кас","Ліс","Сне",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.be.js b/Web/Scripts/globalize/cultures/globalize.culture.be.js deleted file mode 100644 index 3db61d9..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.be.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture be - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "be", "default", { - name: "be", - englishName: "Belarusian", - nativeName: "Беларускі", - language: "be", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "р." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["нядзеля","панядзелак","аўторак","серада","чацвер","пятніца","субота"], - namesAbbr: ["нд","пн","аў","ср","чц","пт","сб"], - namesShort: ["нд","пн","аў","ср","чц","пт","сб"] - }, - months: { - names: ["Студзень","Люты","Сакавік","Красавік","Май","Чэрвень","Ліпень","Жнівень","Верасень","Кастрычнік","Лістапад","Снежань",""], - namesAbbr: ["Сту","Лют","Сак","Кра","Май","Чэр","Ліп","Жні","Вер","Кас","Ліс","Сне",""] - }, - monthsGenitive: { - names: ["студзеня","лютага","сакавіка","красавіка","мая","чэрвеня","ліпеня","жніўня","верасня","кастрычніка","лістапада","снежня",""], - namesAbbr: ["Сту","Лют","Сак","Кра","Май","Чэр","Ліп","Жні","Вер","Кас","Ліс","Сне",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.bg-BG.js b/Web/Scripts/globalize/cultures/globalize.culture.bg-BG.js deleted file mode 100644 index 0de7452..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.bg-BG.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture bg-BG - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "bg-BG", "default", { - name: "bg-BG", - englishName: "Bulgarian (Bulgaria)", - nativeName: "български (България)", - language: "bg", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "- безкрайност", - positiveInfinity: "+ безкрайност", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "лв." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["неделя","понеделник","вторник","сряда","четвъртък","петък","събота"], - namesAbbr: ["нед","пон","вт","ср","четв","пет","съб"], - namesShort: ["н","п","в","с","ч","п","с"] - }, - months: { - names: ["януари","февруари","март","април","май","юни","юли","август","септември","октомври","ноември","декември",""], - namesAbbr: ["ян","февр","март","апр","май","юни","юли","авг","септ","окт","ноември","дек",""] - }, - AM: null, - PM: null, - eras: [{"name":"след новата ера","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy 'г.'", - D: "dd MMMM yyyy 'г.'", - t: "HH:mm 'ч.'", - T: "HH:mm:ss 'ч.'", - f: "dd MMMM yyyy 'г.' HH:mm 'ч.'", - F: "dd MMMM yyyy 'г.' HH:mm:ss 'ч.'", - M: "dd MMMM", - Y: "MMMM yyyy 'г.'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.bg.js b/Web/Scripts/globalize/cultures/globalize.culture.bg.js deleted file mode 100644 index b87a9e5..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.bg.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture bg - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "bg", "default", { - name: "bg", - englishName: "Bulgarian", - nativeName: "български", - language: "bg", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "- безкрайност", - positiveInfinity: "+ безкрайност", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "лв." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["неделя","понеделник","вторник","сряда","четвъртък","петък","събота"], - namesAbbr: ["нед","пон","вт","ср","четв","пет","съб"], - namesShort: ["н","п","в","с","ч","п","с"] - }, - months: { - names: ["януари","февруари","март","април","май","юни","юли","август","септември","октомври","ноември","декември",""], - namesAbbr: ["ян","февр","март","апр","май","юни","юли","авг","септ","окт","ноември","дек",""] - }, - AM: null, - PM: null, - eras: [{"name":"след новата ера","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy 'г.'", - D: "dd MMMM yyyy 'г.'", - t: "HH:mm 'ч.'", - T: "HH:mm:ss 'ч.'", - f: "dd MMMM yyyy 'г.' HH:mm 'ч.'", - F: "dd MMMM yyyy 'г.' HH:mm:ss 'ч.'", - M: "dd MMMM", - Y: "MMMM yyyy 'г.'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.bn-BD.js b/Web/Scripts/globalize/cultures/globalize.culture.bn-BD.js deleted file mode 100644 index cc62709..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.bn-BD.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Globalize Culture bn-BD - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "bn-BD", "default", { - name: "bn-BD", - englishName: "Bengali (Bangladesh)", - nativeName: "বাংলা (বাংলাদেশ)", - language: "bn", - numberFormat: { - groupSizes: [3,2], - percent: { - pattern: ["-%n","%n"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "৳" - } - }, - calendars: { - standard: { - "/": "-", - ":": ".", - firstDay: 1, - days: { - names: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"], - namesAbbr: ["রবি.","সোম.","মঙ্গল.","বুধ.","বৃহস্পতি.","শুক্র.","শনি."], - namesShort: ["র","স","ম","ব","ব","শ","শ"] - }, - months: { - names: ["জানুয়ারী","ফেব্রুয়ারী","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর",""], - namesAbbr: ["জানু.","ফেব্রু.","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগ.","সেপ্টে.","অক্টো.","নভে.","ডিসে.",""] - }, - AM: ["পুর্বাহ্ন","পুর্বাহ্ন","পুর্বাহ্ন"], - PM: ["অপরাহ্ন","অপরাহ্ন","অপরাহ্ন"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH.mm", - T: "HH.mm.ss", - f: "dd MMMM yyyy HH.mm", - F: "dd MMMM yyyy HH.mm.ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.bn-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.bn-IN.js deleted file mode 100644 index 2601291..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.bn-IN.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Globalize Culture bn-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "bn-IN", "default", { - name: "bn-IN", - englishName: "Bengali (India)", - nativeName: "বাংলা (ভারত)", - language: "bn", - numberFormat: { - groupSizes: [3,2], - percent: { - pattern: ["-%n","%n"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "টা" - } - }, - calendars: { - standard: { - "/": "-", - ":": ".", - firstDay: 1, - days: { - names: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"], - namesAbbr: ["রবি.","সোম.","মঙ্গল.","বুধ.","বৃহস্পতি.","শুক্র.","শনি."], - namesShort: ["র","স","ম","ব","ব","শ","শ"] - }, - months: { - names: ["জানুয়ারী","ফেব্রুয়ারী","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর",""], - namesAbbr: ["জানু.","ফেব্রু.","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগ.","সেপ্টে.","অক্টো.","নভে.","ডিসে.",""] - }, - AM: ["পুর্বাহ্ন","পুর্বাহ্ন","পুর্বাহ্ন"], - PM: ["অপরাহ্ন","অপরাহ্ন","অপরাহ্ন"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH.mm", - T: "HH.mm.ss", - f: "dd MMMM yyyy HH.mm", - F: "dd MMMM yyyy HH.mm.ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.bn.js b/Web/Scripts/globalize/cultures/globalize.culture.bn.js deleted file mode 100644 index 82ce270..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.bn.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Globalize Culture bn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "bn", "default", { - name: "bn", - englishName: "Bengali", - nativeName: "বাংলা", - language: "bn", - numberFormat: { - groupSizes: [3,2], - percent: { - pattern: ["-%n","%n"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "টা" - } - }, - calendars: { - standard: { - "/": "-", - ":": ".", - firstDay: 1, - days: { - names: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"], - namesAbbr: ["রবি.","সোম.","মঙ্গল.","বুধ.","বৃহস্পতি.","শুক্র.","শনি."], - namesShort: ["র","স","ম","ব","ব","শ","শ"] - }, - months: { - names: ["জানুয়ারী","ফেব্রুয়ারী","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর",""], - namesAbbr: ["জানু.","ফেব্রু.","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগ.","সেপ্টে.","অক্টো.","নভে.","ডিসে.",""] - }, - AM: ["পুর্বাহ্ন","পুর্বাহ্ন","পুর্বাহ্ন"], - PM: ["অপরাহ্ন","অপরাহ্ন","অপরাহ্ন"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH.mm", - T: "HH.mm.ss", - f: "dd MMMM yyyy HH.mm", - F: "dd MMMM yyyy HH.mm.ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.bo-CN.js b/Web/Scripts/globalize/cultures/globalize.culture.bo-CN.js deleted file mode 100644 index b173a24..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.bo-CN.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture bo-CN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "bo-CN", "default", { - name: "bo-CN", - englishName: "Tibetan (PRC)", - nativeName: "བོད་ཡིག (ཀྲུང་ཧྭ་མི་དམངས་སྤྱི་མཐུན་རྒྱལ་ཁབ།)", - language: "bo", - numberFormat: { - groupSizes: [3,0], - "NaN": "ཨང་ཀི་མིན་པ།", - negativeInfinity: "མོ་གྲངས་ཚད་མེད་ཆུང་བ།", - positiveInfinity: "ཕོ་གྲངས་ཚད་མེད་ཆེ་བ།", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["$-n","$n"], - groupSizes: [3,0], - symbol: "¥" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["གཟའ་ཉི་མ།","གཟའ་ཟླ་བ།","གཟའ་མིག་དམར།","གཟའ་ལྷག་པ།","གཟའ་ཕུར་བུ།","གཟའ་པ་སངས།","གཟའ་སྤེན་པ།"], - namesAbbr: ["ཉི་མ།","ཟླ་བ།","མིག་དམར།","ལྷག་པ།","ཕུར་བུ།","པ་སངས།","སྤེན་པ།"], - namesShort: ["༧","༡","༢","༣","༤","༥","༦"] - }, - months: { - names: ["སྤྱི་ཟླ་དང་པོ།","སྤྱི་ཟླ་གཉིས་པ།","སྤྱི་ཟླ་གསུམ་པ།","སྤྱི་ཟླ་བཞི་པ།","སྤྱི་ཟླ་ལྔ་པ།","སྤྱི་ཟླ་དྲུག་པ།","སྤྱི་ཟླ་བདུན་པ།","སྤྱི་ཟླ་བརྒྱད་པ།","སྤྱི་ཟླ་དགུ་པ།","སྤྱི་ཟླ་བཅུ་པོ།","སྤྱི་ཟླ་བཅུ་གཅིག་པ།","སྤྱི་ཟླ་བཅུ་གཉིས་པ།",""], - namesAbbr: ["ཟླ་ ༡","ཟླ་ ༢","ཟླ་ ༣","ཟླ་ ༤","ཟླ་ ༥","ཟླ་ ༦","ཟླ་ ༧","ཟླ་ ༨","ཟླ་ ༩","ཟླ་ ༡༠","ཟླ་ ༡༡","ཟླ་ ༡༢",""] - }, - AM: ["སྔ་དྲོ","སྔ་དྲོ","སྔ་དྲོ"], - PM: ["ཕྱི་དྲོ","ཕྱི་དྲོ","ཕྱི་དྲོ"], - eras: [{"name":"སྤྱི་ལོ","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'ལོའི་ཟླ' M'ཚེས' d", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy'ལོའི་ཟླ' M'ཚེས' d HH:mm", - F: "yyyy'ལོའི་ཟླ' M'ཚེས' d HH:mm:ss", - M: "'ཟླ་' M'ཚེས'd", - Y: "yyyy.M" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.bo.js b/Web/Scripts/globalize/cultures/globalize.culture.bo.js deleted file mode 100644 index 96f0caa..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.bo.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture bo - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "bo", "default", { - name: "bo", - englishName: "Tibetan", - nativeName: "བོད་ཡིག", - language: "bo", - numberFormat: { - groupSizes: [3,0], - "NaN": "ཨང་ཀི་མིན་པ།", - negativeInfinity: "མོ་གྲངས་ཚད་མེད་ཆུང་བ།", - positiveInfinity: "ཕོ་གྲངས་ཚད་མེད་ཆེ་བ།", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["$-n","$n"], - groupSizes: [3,0], - symbol: "¥" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["གཟའ་ཉི་མ།","གཟའ་ཟླ་བ།","གཟའ་མིག་དམར།","གཟའ་ལྷག་པ།","གཟའ་ཕུར་བུ།","གཟའ་པ་སངས།","གཟའ་སྤེན་པ།"], - namesAbbr: ["ཉི་མ།","ཟླ་བ།","མིག་དམར།","ལྷག་པ།","ཕུར་བུ།","པ་སངས།","སྤེན་པ།"], - namesShort: ["༧","༡","༢","༣","༤","༥","༦"] - }, - months: { - names: ["སྤྱི་ཟླ་དང་པོ།","སྤྱི་ཟླ་གཉིས་པ།","སྤྱི་ཟླ་གསུམ་པ།","སྤྱི་ཟླ་བཞི་པ།","སྤྱི་ཟླ་ལྔ་པ།","སྤྱི་ཟླ་དྲུག་པ།","སྤྱི་ཟླ་བདུན་པ།","སྤྱི་ཟླ་བརྒྱད་པ།","སྤྱི་ཟླ་དགུ་པ།","སྤྱི་ཟླ་བཅུ་པོ།","སྤྱི་ཟླ་བཅུ་གཅིག་པ།","སྤྱི་ཟླ་བཅུ་གཉིས་པ།",""], - namesAbbr: ["ཟླ་ ༡","ཟླ་ ༢","ཟླ་ ༣","ཟླ་ ༤","ཟླ་ ༥","ཟླ་ ༦","ཟླ་ ༧","ཟླ་ ༨","ཟླ་ ༩","ཟླ་ ༡༠","ཟླ་ ༡༡","ཟླ་ ༡༢",""] - }, - AM: ["སྔ་དྲོ","སྔ་དྲོ","སྔ་དྲོ"], - PM: ["ཕྱི་དྲོ","ཕྱི་དྲོ","ཕྱི་དྲོ"], - eras: [{"name":"སྤྱི་ལོ","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'ལོའི་ཟླ' M'ཚེས' d", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy'ལོའི་ཟླ' M'ཚེས' d HH:mm", - F: "yyyy'ལོའི་ཟླ' M'ཚེས' d HH:mm:ss", - M: "'ཟླ་' M'ཚེས'd", - Y: "yyyy.M" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.br-FR.js b/Web/Scripts/globalize/cultures/globalize.culture.br-FR.js deleted file mode 100644 index 37bf505..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.br-FR.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture br-FR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "br-FR", "default", { - name: "br-FR", - englishName: "Breton (France)", - nativeName: "brezhoneg (Frañs)", - language: "br", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "NkN", - negativeInfinity: "-Anfin", - positiveInfinity: "+Anfin", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Sul","Lun","Meurzh","Merc'her","Yaou","Gwener","Sadorn"], - namesAbbr: ["Sul","Lun","Meu.","Mer.","Yaou","Gwe.","Sad."], - namesShort: ["Su","Lu","Mz","Mc","Ya","Gw","Sa"] - }, - months: { - names: ["Genver","C'hwevrer","Meurzh","Ebrel","Mae","Mezheven","Gouere","Eost","Gwengolo","Here","Du","Kerzu",""], - namesAbbr: ["Gen.","C'hwe.","Meur.","Ebr.","Mae","Mezh.","Goue.","Eost","Gwen.","Here","Du","Kzu",""] - }, - AM: null, - PM: null, - eras: [{"name":"g. J.-K.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.br.js b/Web/Scripts/globalize/cultures/globalize.culture.br.js deleted file mode 100644 index 29dd176..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.br.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture br - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "br", "default", { - name: "br", - englishName: "Breton", - nativeName: "brezhoneg", - language: "br", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "NkN", - negativeInfinity: "-Anfin", - positiveInfinity: "+Anfin", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Sul","Lun","Meurzh","Merc'her","Yaou","Gwener","Sadorn"], - namesAbbr: ["Sul","Lun","Meu.","Mer.","Yaou","Gwe.","Sad."], - namesShort: ["Su","Lu","Mz","Mc","Ya","Gw","Sa"] - }, - months: { - names: ["Genver","C'hwevrer","Meurzh","Ebrel","Mae","Mezheven","Gouere","Eost","Gwengolo","Here","Du","Kerzu",""], - namesAbbr: ["Gen.","C'hwe.","Meur.","Ebr.","Mae","Mezh.","Goue.","Eost","Gwen.","Here","Du","Kzu",""] - }, - AM: null, - PM: null, - eras: [{"name":"g. J.-K.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.bs-Cyrl-BA.js b/Web/Scripts/globalize/cultures/globalize.culture.bs-Cyrl-BA.js deleted file mode 100644 index e525510..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.bs-Cyrl-BA.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture bs-Cyrl-BA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "bs-Cyrl-BA", "default", { - name: "bs-Cyrl-BA", - englishName: "Bosnian (Cyrillic, Bosnia and Herzegovina)", - nativeName: "босански (Босна и Херцеговина)", - language: "bs-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "КМ" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недјеља","понедјељак","уторак","сриједа","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["н","п","у","с","ч","п","с"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.bs-Cyrl.js b/Web/Scripts/globalize/cultures/globalize.culture.bs-Cyrl.js deleted file mode 100644 index 8920d40..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.bs-Cyrl.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture bs-Cyrl - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "bs-Cyrl", "default", { - name: "bs-Cyrl", - englishName: "Bosnian (Cyrillic)", - nativeName: "босански", - language: "bs-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "КМ" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недјеља","понедјељак","уторак","сриједа","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["н","п","у","с","ч","п","с"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.bs-Latn-BA.js b/Web/Scripts/globalize/cultures/globalize.culture.bs-Latn-BA.js deleted file mode 100644 index e02bb96..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.bs-Latn-BA.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture bs-Latn-BA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "bs-Latn-BA", "default", { - name: "bs-Latn-BA", - englishName: "Bosnian (Latin, Bosnia and Herzegovina)", - nativeName: "bosanski (Bosna i Hercegovina)", - language: "bs-Latn", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "KM" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sri","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","juni","juli","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.bs-Latn.js b/Web/Scripts/globalize/cultures/globalize.culture.bs-Latn.js deleted file mode 100644 index 3692487..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.bs-Latn.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture bs-Latn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "bs-Latn", "default", { - name: "bs-Latn", - englishName: "Bosnian (Latin)", - nativeName: "bosanski", - language: "bs-Latn", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "KM" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sri","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","juni","juli","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.bs.js b/Web/Scripts/globalize/cultures/globalize.culture.bs.js deleted file mode 100644 index 0deadc9..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.bs.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture bs - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "bs", "default", { - name: "bs", - englishName: "Bosnian", - nativeName: "bosanski", - language: "bs", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "KM" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sri","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","juni","juli","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ca-ES.js b/Web/Scripts/globalize/cultures/globalize.culture.ca-ES.js deleted file mode 100644 index 03e21f2..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ca-ES.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture ca-ES - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ca-ES", "default", { - name: "ca-ES", - englishName: "Catalan (Catalan)", - nativeName: "català (català)", - language: "ca", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinit", - positiveInfinity: "Infinit", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"], - namesAbbr: ["dg.","dl.","dt.","dc.","dj.","dv.","ds."], - namesShort: ["dg","dl","dt","dc","dj","dv","ds"] - }, - months: { - names: ["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre",""], - namesAbbr: ["gen","feb","març","abr","maig","juny","jul","ag","set","oct","nov","des",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d' / 'MMMM' / 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' / 'MMMM' / 'yyyy HH:mm", - F: "dddd, d' / 'MMMM' / 'yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM' / 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ca.js b/Web/Scripts/globalize/cultures/globalize.culture.ca.js deleted file mode 100644 index 06c31da..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ca.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture ca - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ca", "default", { - name: "ca", - englishName: "Catalan", - nativeName: "català", - language: "ca", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinit", - positiveInfinity: "Infinit", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"], - namesAbbr: ["dg.","dl.","dt.","dc.","dj.","dv.","ds."], - namesShort: ["dg","dl","dt","dc","dj","dv","ds"] - }, - months: { - names: ["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre",""], - namesAbbr: ["gen","feb","març","abr","maig","juny","jul","ag","set","oct","nov","des",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d' / 'MMMM' / 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' / 'MMMM' / 'yyyy HH:mm", - F: "dddd, d' / 'MMMM' / 'yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM' / 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.co-FR.js b/Web/Scripts/globalize/cultures/globalize.culture.co-FR.js deleted file mode 100644 index 7d6ef38..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.co-FR.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture co-FR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "co-FR", "default", { - name: "co-FR", - englishName: "Corsican (France)", - nativeName: "Corsu (France)", - language: "co", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Mica numericu", - negativeInfinity: "-Infinitu", - positiveInfinity: "+Infinitu", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dumenica","luni","marti","mercuri","ghjovi","venderi","sabbatu"], - namesAbbr: ["dum.","lun.","mar.","mer.","ghj.","ven.","sab."], - namesShort: ["du","lu","ma","me","gh","ve","sa"] - }, - months: { - names: ["ghjennaghju","ferraghju","marzu","aprile","maghju","ghjunghju","lugliu","aostu","settembre","ottobre","nuvembre","dicembre",""], - namesAbbr: ["ghje","ferr","marz","apri","magh","ghju","lugl","aost","sett","otto","nuve","dice",""] - }, - AM: null, - PM: null, - eras: [{"name":"dopu J-C","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.co.js b/Web/Scripts/globalize/cultures/globalize.culture.co.js deleted file mode 100644 index a4535aa..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.co.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture co - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "co", "default", { - name: "co", - englishName: "Corsican", - nativeName: "Corsu", - language: "co", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Mica numericu", - negativeInfinity: "-Infinitu", - positiveInfinity: "+Infinitu", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dumenica","luni","marti","mercuri","ghjovi","venderi","sabbatu"], - namesAbbr: ["dum.","lun.","mar.","mer.","ghj.","ven.","sab."], - namesShort: ["du","lu","ma","me","gh","ve","sa"] - }, - months: { - names: ["ghjennaghju","ferraghju","marzu","aprile","maghju","ghjunghju","lugliu","aostu","settembre","ottobre","nuvembre","dicembre",""], - namesAbbr: ["ghje","ferr","marz","apri","magh","ghju","lugl","aost","sett","otto","nuve","dice",""] - }, - AM: null, - PM: null, - eras: [{"name":"dopu J-C","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.cs-CZ.js b/Web/Scripts/globalize/cultures/globalize.culture.cs-CZ.js deleted file mode 100644 index 6e6b2b1..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.cs-CZ.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Globalize Culture cs-CZ - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "cs-CZ", "default", { - name: "cs-CZ", - englishName: "Czech (Czech Republic)", - nativeName: "čeština (Česká republika)", - language: "cs", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Není číslo", - negativeInfinity: "-nekonečno", - positiveInfinity: "+nekonečno", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "Kč" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"], - namesAbbr: ["ne","po","út","st","čt","pá","so"], - namesShort: ["ne","po","út","st","čt","pá","so"] - }, - months: { - names: ["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - monthsGenitive: { - names: ["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["dop.","dop.","DOP."], - PM: ["odp.","odp.","ODP."], - eras: [{"name":"n. l.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.cs.js b/Web/Scripts/globalize/cultures/globalize.culture.cs.js deleted file mode 100644 index 4503271..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.cs.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Globalize Culture cs - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "cs", "default", { - name: "cs", - englishName: "Czech", - nativeName: "čeština", - language: "cs", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Není číslo", - negativeInfinity: "-nekonečno", - positiveInfinity: "+nekonečno", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "Kč" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"], - namesAbbr: ["ne","po","út","st","čt","pá","so"], - namesShort: ["ne","po","út","st","čt","pá","so"] - }, - months: { - names: ["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - monthsGenitive: { - names: ["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["dop.","dop.","DOP."], - PM: ["odp.","odp.","ODP."], - eras: [{"name":"n. l.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.cy-GB.js b/Web/Scripts/globalize/cultures/globalize.culture.cy-GB.js deleted file mode 100644 index 0b07a62..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.cy-GB.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Globalize Culture cy-GB - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "cy-GB", "default", { - name: "cy-GB", - englishName: "Welsh (United Kingdom)", - nativeName: "Cymraeg (y Deyrnas Unedig)", - language: "cy", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "£" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"], - namesAbbr: ["Sul","Llun","Maw","Mer","Iau","Gwe","Sad"], - namesShort: ["Su","Ll","Ma","Me","Ia","Gw","Sa"] - }, - months: { - names: ["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr",""], - namesAbbr: ["Ion","Chwe","Maw","Ebr","Mai","Meh","Gor","Aws","Med","Hyd","Tach","Rhag",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.cy.js b/Web/Scripts/globalize/cultures/globalize.culture.cy.js deleted file mode 100644 index 20b93b2..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.cy.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Globalize Culture cy - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "cy", "default", { - name: "cy", - englishName: "Welsh", - nativeName: "Cymraeg", - language: "cy", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "£" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"], - namesAbbr: ["Sul","Llun","Maw","Mer","Iau","Gwe","Sad"], - namesShort: ["Su","Ll","Ma","Me","Ia","Gw","Sa"] - }, - months: { - names: ["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr",""], - namesAbbr: ["Ion","Chwe","Maw","Ebr","Mai","Meh","Gor","Aws","Med","Hyd","Tach","Rhag",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.da-DK.js b/Web/Scripts/globalize/cultures/globalize.culture.da-DK.js deleted file mode 100644 index 8d30e5a..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.da-DK.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture da-DK - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "da-DK", "default", { - name: "da-DK", - englishName: "Danish (Denmark)", - nativeName: "dansk (Danmark)", - language: "da", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"], - namesAbbr: ["sø","ma","ti","on","to","fr","lø"], - namesShort: ["sø","ma","ti","on","to","fr","lø"] - }, - months: { - names: ["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.da.js b/Web/Scripts/globalize/cultures/globalize.culture.da.js deleted file mode 100644 index 8186cd5..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.da.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture da - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "da", "default", { - name: "da", - englishName: "Danish", - nativeName: "dansk", - language: "da", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"], - namesAbbr: ["sø","ma","ti","on","to","fr","lø"], - namesShort: ["sø","ma","ti","on","to","fr","lø"] - }, - months: { - names: ["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.de-AT.js b/Web/Scripts/globalize/cultures/globalize.culture.de-AT.js deleted file mode 100644 index 04c5aa1..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.de-AT.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture de-AT - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "de-AT", "default", { - name: "de-AT", - englishName: "German (Austria)", - nativeName: "Deutsch (Österreich)", - language: "de", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "n. def.", - negativeInfinity: "-unendlich", - positiveInfinity: "+unendlich", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"], - namesAbbr: ["So","Mo","Di","Mi","Do","Fr","Sa"], - namesShort: ["So","Mo","Di","Mi","Do","Fr","Sa"] - }, - months: { - names: ["Jänner","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jän","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, dd. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, dd. MMMM yyyy HH:mm", - F: "dddd, dd. MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.de-CH.js b/Web/Scripts/globalize/cultures/globalize.culture.de-CH.js deleted file mode 100644 index b19e6f7..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.de-CH.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture de-CH - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "de-CH", "default", { - name: "de-CH", - englishName: "German (Switzerland)", - nativeName: "Deutsch (Schweiz)", - language: "de", - numberFormat: { - ",": "'", - "NaN": "n. def.", - negativeInfinity: "-unendlich", - positiveInfinity: "+unendlich", - percent: { - pattern: ["-n%","n%"], - ",": "'" - }, - currency: { - pattern: ["$-n","$ n"], - ",": "'", - symbol: "Fr." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"], - namesAbbr: ["So","Mo","Di","Mi","Do","Fr","Sa"], - namesShort: ["So","Mo","Di","Mi","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d. MMMM yyyy HH:mm", - F: "dddd, d. MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.de-DE.js b/Web/Scripts/globalize/cultures/globalize.culture.de-DE.js deleted file mode 100644 index a104e76..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.de-DE.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture de-DE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "de-DE", "default", { - name: "de-DE", - englishName: "German (Germany)", - nativeName: "Deutsch (Deutschland)", - language: "de", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "n. def.", - negativeInfinity: "-unendlich", - positiveInfinity: "+unendlich", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"], - namesAbbr: ["So","Mo","Di","Mi","Do","Fr","Sa"], - namesShort: ["So","Mo","Di","Mi","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d. MMMM yyyy HH:mm", - F: "dddd, d. MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.de-LI.js b/Web/Scripts/globalize/cultures/globalize.culture.de-LI.js deleted file mode 100644 index 142726d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.de-LI.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture de-LI - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "de-LI", "default", { - name: "de-LI", - englishName: "German (Liechtenstein)", - nativeName: "Deutsch (Liechtenstein)", - language: "de", - numberFormat: { - ",": "'", - "NaN": "n. def.", - negativeInfinity: "-unendlich", - positiveInfinity: "+unendlich", - percent: { - pattern: ["-n%","n%"], - ",": "'" - }, - currency: { - pattern: ["$-n","$ n"], - ",": "'", - symbol: "CHF" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"], - namesAbbr: ["So","Mo","Di","Mi","Do","Fr","Sa"], - namesShort: ["So","Mo","Di","Mi","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d. MMMM yyyy HH:mm", - F: "dddd, d. MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.de-LU.js b/Web/Scripts/globalize/cultures/globalize.culture.de-LU.js deleted file mode 100644 index c79b18b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.de-LU.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture de-LU - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "de-LU", "default", { - name: "de-LU", - englishName: "German (Luxembourg)", - nativeName: "Deutsch (Luxemburg)", - language: "de", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "n. def.", - negativeInfinity: "-unendlich", - positiveInfinity: "+unendlich", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"], - namesAbbr: ["So","Mo","Di","Mi","Do","Fr","Sa"], - namesShort: ["So","Mo","Di","Mi","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d. MMMM yyyy HH:mm", - F: "dddd, d. MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.de.js b/Web/Scripts/globalize/cultures/globalize.culture.de.js deleted file mode 100644 index d0c718d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.de.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture de - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "de", "default", { - name: "de", - englishName: "German", - nativeName: "Deutsch", - language: "de", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "n. def.", - negativeInfinity: "-unendlich", - positiveInfinity: "+unendlich", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"], - namesAbbr: ["So","Mo","Di","Mi","Do","Fr","Sa"], - namesShort: ["So","Mo","Di","Mi","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d. MMMM yyyy HH:mm", - F: "dddd, d. MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.dsb-DE.js b/Web/Scripts/globalize/cultures/globalize.culture.dsb-DE.js deleted file mode 100644 index 27a633e..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.dsb-DE.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Globalize Culture dsb-DE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "dsb-DE", "default", { - name: "dsb-DE", - englishName: "Lower Sorbian (Germany)", - nativeName: "dolnoserbšćina (Nimska)", - language: "dsb", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "njedefinowane", - negativeInfinity: "-njekońcne", - positiveInfinity: "+njekońcne", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ". ", - firstDay: 1, - days: { - names: ["njeźela","ponjeźele","wałtora","srjoda","stwortk","pětk","sobota"], - namesAbbr: ["nje","pon","wał","srj","stw","pět","sob"], - namesShort: ["n","p","w","s","s","p","s"] - }, - months: { - names: ["januar","februar","měrc","apryl","maj","junij","julij","awgust","september","oktober","nowember","december",""], - namesAbbr: ["jan","feb","měr","apr","maj","jun","jul","awg","sep","okt","now","dec",""] - }, - monthsGenitive: { - names: ["januara","februara","měrca","apryla","maja","junija","julija","awgusta","septembra","oktobra","nowembra","decembra",""], - namesAbbr: ["jan","feb","měr","apr","maj","jun","jul","awg","sep","okt","now","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"po Chr.","start":null,"offset":0}], - patterns: { - d: "d. M. yyyy", - D: "dddd, 'dnja' d. MMMM yyyy", - t: "H.mm 'goź.'", - T: "H:mm:ss", - f: "dddd, 'dnja' d. MMMM yyyy H.mm 'goź.'", - F: "dddd, 'dnja' d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.dsb.js b/Web/Scripts/globalize/cultures/globalize.culture.dsb.js deleted file mode 100644 index 3098b07..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.dsb.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Globalize Culture dsb - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "dsb", "default", { - name: "dsb", - englishName: "Lower Sorbian", - nativeName: "dolnoserbšćina", - language: "dsb", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "njedefinowane", - negativeInfinity: "-njekońcne", - positiveInfinity: "+njekońcne", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ". ", - firstDay: 1, - days: { - names: ["njeźela","ponjeźele","wałtora","srjoda","stwortk","pětk","sobota"], - namesAbbr: ["nje","pon","wał","srj","stw","pět","sob"], - namesShort: ["n","p","w","s","s","p","s"] - }, - months: { - names: ["januar","februar","měrc","apryl","maj","junij","julij","awgust","september","oktober","nowember","december",""], - namesAbbr: ["jan","feb","měr","apr","maj","jun","jul","awg","sep","okt","now","dec",""] - }, - monthsGenitive: { - names: ["januara","februara","měrca","apryla","maja","junija","julija","awgusta","septembra","oktobra","nowembra","decembra",""], - namesAbbr: ["jan","feb","měr","apr","maj","jun","jul","awg","sep","okt","now","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"po Chr.","start":null,"offset":0}], - patterns: { - d: "d. M. yyyy", - D: "dddd, 'dnja' d. MMMM yyyy", - t: "H.mm 'goź.'", - T: "H:mm:ss", - f: "dddd, 'dnja' d. MMMM yyyy H.mm 'goź.'", - F: "dddd, 'dnja' d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.dv-MV.js b/Web/Scripts/globalize/cultures/globalize.culture.dv-MV.js deleted file mode 100644 index 26048c2..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.dv-MV.js +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Globalize Culture dv-MV - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "dv-MV", "default", { - name: "dv-MV", - englishName: "Divehi (Maldives)", - nativeName: "ދިވެހިބަސް (ދިވެހި ރާއްޖެ)", - language: "dv", - isRTL: true, - numberFormat: { - currency: { - pattern: ["n $-","n $"], - symbol: "ރ." - } - }, - calendars: { - standard: { - name: "Hijri", - days: { - names: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesAbbr: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesShort: ["އާ","ހޯ","އަ","ބު","ބު","ހު","ހޮ"] - }, - months: { - names: ["މުޙައްރަމް","ޞަފަރު","ރަބީޢުލްއައްވަލް","ރަބީޢުލްއާޚިރު","ޖުމާދަލްއޫލާ","ޖުމާދަލްއާޚިރާ","ރަޖަބް","ޝަޢްބާން","ރަމަޟާން","ޝައްވާލް","ޛުލްޤަޢިދާ","ޛުލްޙިއްޖާ",""], - namesAbbr: ["މުޙައްރަމް","ޞަފަރު","ރަބީޢުލްއައްވަލް","ރަބީޢުލްއާޚިރު","ޖުމާދަލްއޫލާ","ޖުމާދަލްއާޚިރާ","ރަޖަބް","ޝަޢްބާން","ރަމަޟާން","ޝައްވާލް","ޛުލްޤަޢިދާ","ޛުލްޙިއްޖާ",""] - }, - AM: ["މކ","މކ","މކ"], - PM: ["މފ","މފ","މފ"], - eras: [{"name":"ހިޖްރީ","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd/MM/yyyy HH:mm", - F: "dd/MM/yyyy HH:mm:ss", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_Localized: { - days: { - names: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesAbbr: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesShort: ["އާ","ހޯ","އަ","ބު","ބު","ހު","ހޮ"] - }, - months: { - names: ["ޖަނަވަރީ","ފެބްރުއަރީ","މާޗް","އޭޕްރިލް","މެއި","ޖޫން","ޖުލައި","އޯގަސްޓް","ސެޕްޓެމްބަރ","އޮކްޓޯބަރ","ނޮވެމްބަރ","ޑިސެމްބަރ",""], - namesAbbr: ["ޖަނަވަރީ","ފެބްރުއަރީ","މާޗް","އޭޕްރިލް","މެއި","ޖޫން","ޖުލައި","އޯގަސްޓް","ސެޕްޓެމްބަރ","އޮކްޓޯބަރ","ނޮވެމްބަރ","ޑިސެމްބަރ",""] - }, - AM: ["މކ","މކ","މކ"], - PM: ["މފ","މފ","މފ"], - eras: [{"name":"މީލާދީ","start":null,"offset":0}], - patterns: { - d: "dd/MM/yy", - D: "ddd, yyyy MMMM dd", - t: "HH:mm", - T: "HH:mm:ss", - f: "ddd, yyyy MMMM dd HH:mm", - F: "ddd, yyyy MMMM dd HH:mm:ss", - Y: "yyyy, MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.dv.js b/Web/Scripts/globalize/cultures/globalize.culture.dv.js deleted file mode 100644 index 9a95e0d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.dv.js +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Globalize Culture dv - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "dv", "default", { - name: "dv", - englishName: "Divehi", - nativeName: "ދިވެހިބަސް", - language: "dv", - isRTL: true, - numberFormat: { - currency: { - pattern: ["n $-","n $"], - symbol: "ރ." - } - }, - calendars: { - standard: { - name: "Hijri", - days: { - names: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesAbbr: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesShort: ["އާ","ހޯ","އަ","ބު","ބު","ހު","ހޮ"] - }, - months: { - names: ["މުޙައްރަމް","ޞަފަރު","ރަބީޢުލްއައްވަލް","ރަބީޢުލްއާޚިރު","ޖުމާދަލްއޫލާ","ޖުމާދަލްއާޚިރާ","ރަޖަބް","ޝަޢްބާން","ރަމަޟާން","ޝައްވާލް","ޛުލްޤަޢިދާ","ޛުލްޙިއްޖާ",""], - namesAbbr: ["މުޙައްރަމް","ޞަފަރު","ރަބީޢުލްއައްވަލް","ރަބީޢުލްއާޚިރު","ޖުމާދަލްއޫލާ","ޖުމާދަލްއާޚިރާ","ރަޖަބް","ޝަޢްބާން","ރަމަޟާން","ޝައްވާލް","ޛުލްޤަޢިދާ","ޛުލްޙިއްޖާ",""] - }, - AM: ["މކ","މކ","މކ"], - PM: ["މފ","މފ","މފ"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd/MM/yyyy HH:mm", - F: "dd/MM/yyyy HH:mm:ss", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_Localized: { - days: { - names: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesAbbr: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesShort: ["އާ","ހޯ","އަ","ބު","ބު","ހު","ހޮ"] - }, - months: { - names: ["ޖަނަވަރީ","ފެބްރުއަރީ","މާޗް","އޭޕްރިލް","މެއި","ޖޫން","ޖުލައި","އޯގަސްޓް","ސެޕްޓެމްބަރ","އޮކްޓޯބަރ","ނޮވެމްބަރ","ޑިސެމްބަރ",""], - namesAbbr: ["ޖަނަވަރީ","ފެބްރުއަރީ","މާޗް","އޭޕްރިލް","މެއި","ޖޫން","ޖުލައި","އޯގަސްޓް","ސެޕްޓެމްބަރ","އޮކްޓޯބަރ","ނޮވެމްބަރ","ޑިސެމްބަރ",""] - }, - AM: ["މކ","މކ","މކ"], - PM: ["މފ","މފ","މފ"], - eras: [{"name":"މީލާދީ","start":null,"offset":0}], - patterns: { - d: "dd/MM/yy", - D: "ddd, yyyy MMMM dd", - t: "HH:mm", - T: "HH:mm:ss", - f: "ddd, yyyy MMMM dd HH:mm", - F: "ddd, yyyy MMMM dd HH:mm:ss", - Y: "yyyy, MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.el-GR.js b/Web/Scripts/globalize/cultures/globalize.culture.el-GR.js deleted file mode 100644 index 1b01a9f..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.el-GR.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Globalize Culture el-GR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "el-GR", "default", { - name: "el-GR", - englishName: "Greek (Greece)", - nativeName: "Ελληνικά (Ελλάδα)", - language: "el", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "μη αριθμός", - negativeInfinity: "-Άπειρο", - positiveInfinity: "Άπειρο", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"], - namesAbbr: ["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"], - namesShort: ["Κυ","Δε","Τρ","Τε","Πε","Πα","Σά"] - }, - months: { - names: ["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος",""], - namesAbbr: ["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ",""] - }, - monthsGenitive: { - names: ["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου",""], - namesAbbr: ["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ",""] - }, - AM: ["πμ","πμ","ΠΜ"], - PM: ["μμ","μμ","ΜΜ"], - eras: [{"name":"μ.Χ.","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "dddd, d MMMM yyyy", - f: "dddd, d MMMM yyyy h:mm tt", - F: "dddd, d MMMM yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.el.js b/Web/Scripts/globalize/cultures/globalize.culture.el.js deleted file mode 100644 index 87ba4b5..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.el.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Globalize Culture el - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "el", "default", { - name: "el", - englishName: "Greek", - nativeName: "Ελληνικά", - language: "el", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "μη αριθμός", - negativeInfinity: "-Άπειρο", - positiveInfinity: "Άπειρο", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"], - namesAbbr: ["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"], - namesShort: ["Κυ","Δε","Τρ","Τε","Πε","Πα","Σά"] - }, - months: { - names: ["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος",""], - namesAbbr: ["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ",""] - }, - monthsGenitive: { - names: ["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου",""], - namesAbbr: ["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ",""] - }, - AM: ["πμ","πμ","ΠΜ"], - PM: ["μμ","μμ","ΜΜ"], - eras: [{"name":"μ.Χ.","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "dddd, d MMMM yyyy", - f: "dddd, d MMMM yyyy h:mm tt", - F: "dddd, d MMMM yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-029.js b/Web/Scripts/globalize/cultures/globalize.culture.en-029.js deleted file mode 100644 index 0e55864..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-029.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Globalize Culture en-029 - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-029", "default", { - name: "en-029", - englishName: "English (Caribbean)", - nativeName: "English (Caribbean)", - numberFormat: { - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - firstDay: 1, - patterns: { - d: "MM/dd/yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-AU.js b/Web/Scripts/globalize/cultures/globalize.culture.en-AU.js deleted file mode 100644 index 068722a..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-AU.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Globalize Culture en-AU - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-AU", "default", { - name: "en-AU", - englishName: "English (Australia)", - nativeName: "English (Australia)", - numberFormat: { - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - firstDay: 1, - patterns: { - d: "d/MM/yyyy", - D: "dddd, d MMMM yyyy", - f: "dddd, d MMMM yyyy h:mm tt", - F: "dddd, d MMMM yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-BZ.js b/Web/Scripts/globalize/cultures/globalize.culture.en-BZ.js deleted file mode 100644 index 4a0692d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-BZ.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Globalize Culture en-BZ - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-BZ", "default", { - name: "en-BZ", - englishName: "English (Belize)", - nativeName: "English (Belize)", - numberFormat: { - currency: { - groupSizes: [3,0], - symbol: "BZ$" - } - }, - calendars: { - standard: { - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd MMMM yyyy hh:mm tt", - F: "dddd, dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-CA.js b/Web/Scripts/globalize/cultures/globalize.culture.en-CA.js deleted file mode 100644 index 1c8c1b5..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-CA.js +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Globalize Culture en-CA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-CA", "default", { - name: "en-CA", - englishName: "English (Canada)", - nativeName: "English (Canada)", - numberFormat: { - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - patterns: { - d: "dd/MM/yyyy", - D: "MMMM-dd-yy", - f: "MMMM-dd-yy h:mm tt", - F: "MMMM-dd-yy h:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-GB.js b/Web/Scripts/globalize/cultures/globalize.culture.en-GB.js deleted file mode 100644 index 518cc1b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-GB.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Globalize Culture en-GB - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-GB", "default", { - name: "en-GB", - englishName: "English (United Kingdom)", - nativeName: "English (United Kingdom)", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "£" - } - }, - calendars: { - standard: { - firstDay: 1, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-IE.js b/Web/Scripts/globalize/cultures/globalize.culture.en-IE.js deleted file mode 100644 index 8475128..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-IE.js +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Globalize Culture en-IE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-IE", "default", { - name: "en-IE", - englishName: "English (Ireland)", - nativeName: "English (Ireland)", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.en-IN.js deleted file mode 100644 index a98dc7e..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-IN.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Globalize Culture en-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-IN", "default", { - name: "en-IN", - englishName: "English (India)", - nativeName: "English (India)", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "Rs." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-JM.js b/Web/Scripts/globalize/cultures/globalize.culture.en-JM.js deleted file mode 100644 index 2110f01..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-JM.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Globalize Culture en-JM - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-JM", "default", { - name: "en-JM", - englishName: "English (Jamaica)", - nativeName: "English (Jamaica)", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "J$" - } - }, - calendars: { - standard: { - patterns: { - d: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-MY.js b/Web/Scripts/globalize/cultures/globalize.culture.en-MY.js deleted file mode 100644 index 909804d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-MY.js +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Globalize Culture en-MY - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-MY", "default", { - name: "en-MY", - englishName: "English (Malaysia)", - nativeName: "English (Malaysia)", - numberFormat: { - percent: { - pattern: ["-n%","n%"] - }, - currency: { - symbol: "RM" - } - }, - calendars: { - standard: { - days: { - namesShort: ["S","M","T","W","T","F","S"] - }, - patterns: { - d: "d/M/yyyy", - D: "dddd, d MMMM, yyyy", - f: "dddd, d MMMM, yyyy h:mm tt", - F: "dddd, d MMMM, yyyy h:mm:ss tt", - M: "d MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-NZ.js b/Web/Scripts/globalize/cultures/globalize.culture.en-NZ.js deleted file mode 100644 index 60c54a5..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-NZ.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Globalize Culture en-NZ - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-NZ", "default", { - name: "en-NZ", - englishName: "English (New Zealand)", - nativeName: "English (New Zealand)", - numberFormat: { - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - firstDay: 1, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "d/MM/yyyy", - D: "dddd, d MMMM yyyy", - f: "dddd, d MMMM yyyy h:mm tt", - F: "dddd, d MMMM yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-PH.js b/Web/Scripts/globalize/cultures/globalize.culture.en-PH.js deleted file mode 100644 index 4d06ea2..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-PH.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Globalize Culture en-PH - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-PH", "default", { - name: "en-PH", - englishName: "English (Republic of the Philippines)", - nativeName: "English (Philippines)", - numberFormat: { - currency: { - symbol: "Php" - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-SG.js b/Web/Scripts/globalize/cultures/globalize.culture.en-SG.js deleted file mode 100644 index 34e0d3b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-SG.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Globalize Culture en-SG - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-SG", "default", { - name: "en-SG", - englishName: "English (Singapore)", - nativeName: "English (Singapore)", - numberFormat: { - percent: { - pattern: ["-n%","n%"] - } - }, - calendars: { - standard: { - days: { - namesShort: ["S","M","T","W","T","F","S"] - }, - patterns: { - d: "d/M/yyyy", - D: "dddd, d MMMM, yyyy", - f: "dddd, d MMMM, yyyy h:mm tt", - F: "dddd, d MMMM, yyyy h:mm:ss tt", - M: "d MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-TT.js b/Web/Scripts/globalize/cultures/globalize.culture.en-TT.js deleted file mode 100644 index 4cc0148..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-TT.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Globalize Culture en-TT - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-TT", "default", { - name: "en-TT", - englishName: "English (Trinidad and Tobago)", - nativeName: "English (Trinidad y Tobago)", - numberFormat: { - currency: { - groupSizes: [3,0], - symbol: "TT$" - } - }, - calendars: { - standard: { - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd MMMM yyyy hh:mm tt", - F: "dddd, dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-US.js b/Web/Scripts/globalize/cultures/globalize.culture.en-US.js deleted file mode 100644 index 03b3ec3..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-US.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Globalize Culture en-US - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-US", "default", { - name: "en-US", - englishName: "English (United States)" -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-ZA.js b/Web/Scripts/globalize/cultures/globalize.culture.en-ZA.js deleted file mode 100644 index 22dbfd3..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-ZA.js +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Globalize Culture en-ZA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-ZA", "default", { - name: "en-ZA", - englishName: "English (South Africa)", - nativeName: "English (South Africa)", - numberFormat: { - ",": " ", - percent: { - pattern: ["-n%","n%"], - ",": " " - }, - currency: { - pattern: ["$-n","$ n"], - ",": " ", - ".": ",", - symbol: "R" - } - }, - calendars: { - standard: { - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.en-ZW.js b/Web/Scripts/globalize/cultures/globalize.culture.en-ZW.js deleted file mode 100644 index e4f9beb..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.en-ZW.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Globalize Culture en-ZW - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "en-ZW", "default", { - name: "en-ZW", - englishName: "English (Zimbabwe)", - nativeName: "English (Zimbabwe)", - numberFormat: { - currency: { - symbol: "Z$" - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-AR.js b/Web/Scripts/globalize/cultures/globalize.culture.es-AR.js deleted file mode 100644 index f71f9e0..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-AR.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture es-AR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-AR", "default", { - name: "es-AR", - englishName: "Spanish (Argentina)", - nativeName: "Español (Argentina)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$-n","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-BO.js b/Web/Scripts/globalize/cultures/globalize.culture.es-BO.js deleted file mode 100644 index 09c20b9..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-BO.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture es-BO - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-BO", "default", { - name: "es-BO", - englishName: "Spanish (Bolivia)", - nativeName: "Español (Bolivia)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": ",", - symbol: "$b" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-CL.js b/Web/Scripts/globalize/cultures/globalize.culture.es-CL.js deleted file mode 100644 index 7fd8303..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-CL.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture es-CL - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-CL", "default", { - name: "es-CL", - englishName: "Spanish (Chile)", - nativeName: "Español (Chile)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd-MM-yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-CO.js b/Web/Scripts/globalize/cultures/globalize.culture.es-CO.js deleted file mode 100644 index 3fdef6b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-CO.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture es-CO - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-CO", "default", { - name: "es-CO", - englishName: "Spanish (Colombia)", - nativeName: "Español (Colombia)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-CR.js b/Web/Scripts/globalize/cultures/globalize.culture.es-CR.js deleted file mode 100644 index 7904cff..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-CR.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture es-CR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-CR", "default", { - name: "es-CR", - englishName: "Spanish (Costa Rica)", - nativeName: "Español (Costa Rica)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - ",": ".", - ".": ",", - symbol: "₡" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-DO.js b/Web/Scripts/globalize/cultures/globalize.culture.es-DO.js deleted file mode 100644 index 955edc9..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-DO.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Globalize Culture es-DO - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-DO", "default", { - name: "es-DO", - englishName: "Spanish (Dominican Republic)", - nativeName: "Español (República Dominicana)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - symbol: "RD$" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-EC.js b/Web/Scripts/globalize/cultures/globalize.culture.es-EC.js deleted file mode 100644 index 7c80e93..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-EC.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture es-EC - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-EC", "default", { - name: "es-EC", - englishName: "Spanish (Ecuador)", - nativeName: "Español (Ecuador)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-ES.js b/Web/Scripts/globalize/cultures/globalize.culture.es-ES.js deleted file mode 100644 index 0d30eb4..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-ES.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture es-ES - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-ES", "default", { - name: "es-ES", - englishName: "Spanish (Spain, International Sort)", - nativeName: "Español (España, alfabetización internacional)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-GT.js b/Web/Scripts/globalize/cultures/globalize.culture.es-GT.js deleted file mode 100644 index 9384ff9..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-GT.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Globalize Culture es-GT - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-GT", "default", { - name: "es-GT", - englishName: "Spanish (Guatemala)", - nativeName: "Español (Guatemala)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - symbol: "Q" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-HN.js b/Web/Scripts/globalize/cultures/globalize.culture.es-HN.js deleted file mode 100644 index 896cb9e..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-HN.js +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Globalize Culture es-HN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-HN", "default", { - name: "es-HN", - englishName: "Spanish (Honduras)", - nativeName: "Español (Honduras)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,0], - symbol: "L." - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-MX.js b/Web/Scripts/globalize/cultures/globalize.culture.es-MX.js deleted file mode 100644 index d28bea4..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-MX.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Globalize Culture es-MX - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-MX", "default", { - name: "es-MX", - englishName: "Spanish (Mexico)", - nativeName: "Español (México)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-NI.js b/Web/Scripts/globalize/cultures/globalize.culture.es-NI.js deleted file mode 100644 index 1c3e4a9..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-NI.js +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Globalize Culture es-NI - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-NI", "default", { - name: "es-NI", - englishName: "Spanish (Nicaragua)", - nativeName: "Español (Nicaragua)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - pattern: ["($ n)","$ n"], - groupSizes: [3,0], - symbol: "C$" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-PA.js b/Web/Scripts/globalize/cultures/globalize.culture.es-PA.js deleted file mode 100644 index f26d7bb..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-PA.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Globalize Culture es-PA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-PA", "default", { - name: "es-PA", - englishName: "Spanish (Panama)", - nativeName: "Español (Panamá)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - pattern: ["($ n)","$ n"], - symbol: "B/." - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-PE.js b/Web/Scripts/globalize/cultures/globalize.culture.es-PE.js deleted file mode 100644 index d51af4b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-PE.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Globalize Culture es-PE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-PE", "default", { - name: "es-PE", - englishName: "Spanish (Peru)", - nativeName: "Español (Perú)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - pattern: ["$ -n","$ n"], - symbol: "S/." - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-PR.js b/Web/Scripts/globalize/cultures/globalize.culture.es-PR.js deleted file mode 100644 index 3d0ef31..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-PR.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Globalize Culture es-PR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-PR", "default", { - name: "es-PR", - englishName: "Spanish (Puerto Rico)", - nativeName: "Español (Puerto Rico)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - pattern: ["($ n)","$ n"], - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-PY.js b/Web/Scripts/globalize/cultures/globalize.culture.es-PY.js deleted file mode 100644 index 15dbe62..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-PY.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture es-PY - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-PY", "default", { - name: "es-PY", - englishName: "Spanish (Paraguay)", - nativeName: "Español (Paraguay)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": ",", - symbol: "Gs" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-SV.js b/Web/Scripts/globalize/cultures/globalize.culture.es-SV.js deleted file mode 100644 index 9d4433e..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-SV.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Globalize Culture es-SV - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-SV", "default", { - name: "es-SV", - englishName: "Spanish (El Salvador)", - nativeName: "Español (El Salvador)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-US.js b/Web/Scripts/globalize/cultures/globalize.culture.es-US.js deleted file mode 100644 index b983e1f..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-US.js +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Globalize Culture es-US - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-US", "default", { - name: "es-US", - englishName: "Spanish (United States)", - nativeName: "Español (Estados Unidos)", - language: "es", - numberFormat: { - groupSizes: [3,0], - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sa"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - M: "dd' de 'MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-UY.js b/Web/Scripts/globalize/cultures/globalize.culture.es-UY.js deleted file mode 100644 index 8eb79f3..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-UY.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture es-UY - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-UY", "default", { - name: "es-UY", - englishName: "Spanish (Uruguay)", - nativeName: "Español (Uruguay)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": ",", - symbol: "$U" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es-VE.js b/Web/Scripts/globalize/cultures/globalize.culture.es-VE.js deleted file mode 100644 index 1bfc8ac..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es-VE.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture es-VE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es-VE", "default", { - name: "es-VE", - englishName: "Spanish (Bolivarian Republic of Venezuela)", - nativeName: "Español (Republica Bolivariana de Venezuela)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "Bs. F." - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.es.js b/Web/Scripts/globalize/cultures/globalize.culture.es.js deleted file mode 100644 index 658054d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.es.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture es - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "es", "default", { - name: "es", - englishName: "Spanish", - nativeName: "español", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.et-EE.js b/Web/Scripts/globalize/cultures/globalize.culture.et-EE.js deleted file mode 100644 index 5759bea..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.et-EE.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture et-EE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "et-EE", "default", { - name: "et-EE", - englishName: "Estonian (Estonia)", - nativeName: "eesti (Eesti)", - language: "et", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "avaldamatu", - negativeInfinity: "miinuslõpmatus", - positiveInfinity: "plusslõpmatus", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["pühapäev","esmaspäev","teisipäev","kolmapäev","neljapäev","reede","laupäev"], - namesAbbr: ["P","E","T","K","N","R","L"], - namesShort: ["P","E","T","K","N","R","L"] - }, - months: { - names: ["jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember",""], - namesAbbr: ["jaan","veebr","märts","apr","mai","juuni","juuli","aug","sept","okt","nov","dets",""] - }, - AM: ["EL","el","EL"], - PM: ["PL","pl","PL"], - patterns: { - d: "d.MM.yyyy", - D: "d. MMMM yyyy'. a.'", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy'. a.' H:mm", - F: "d. MMMM yyyy'. a.' H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy'. a.'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.et.js b/Web/Scripts/globalize/cultures/globalize.culture.et.js deleted file mode 100644 index 386c6a4..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.et.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture et - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "et", "default", { - name: "et", - englishName: "Estonian", - nativeName: "eesti", - language: "et", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "avaldamatu", - negativeInfinity: "miinuslõpmatus", - positiveInfinity: "plusslõpmatus", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["pühapäev","esmaspäev","teisipäev","kolmapäev","neljapäev","reede","laupäev"], - namesAbbr: ["P","E","T","K","N","R","L"], - namesShort: ["P","E","T","K","N","R","L"] - }, - months: { - names: ["jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember",""], - namesAbbr: ["jaan","veebr","märts","apr","mai","juuni","juuli","aug","sept","okt","nov","dets",""] - }, - AM: ["EL","el","EL"], - PM: ["PL","pl","PL"], - patterns: { - d: "d.MM.yyyy", - D: "d. MMMM yyyy'. a.'", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy'. a.' H:mm", - F: "d. MMMM yyyy'. a.' H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy'. a.'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.eu-ES.js b/Web/Scripts/globalize/cultures/globalize.culture.eu-ES.js deleted file mode 100644 index 18044b4..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.eu-ES.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture eu-ES - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "eu-ES", "default", { - name: "eu-ES", - englishName: "Basque (Basque)", - nativeName: "euskara (euskara)", - language: "eu", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "EdZ", - negativeInfinity: "-Infinitu", - positiveInfinity: "Infinitu", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"], - namesAbbr: ["ig.","al.","as.","az.","og.","or.","lr."], - namesShort: ["ig","al","as","az","og","or","lr"] - }, - months: { - names: ["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua",""], - namesAbbr: ["urt.","ots.","mar.","api.","mai.","eka.","uzt.","abu.","ira.","urr.","aza.","abe.",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "yyyy/MM/dd", - D: "dddd, yyyy.'eko' MMMM'k 'd", - t: "HH:mm", - T: "H:mm:ss", - f: "dddd, yyyy.'eko' MMMM'k 'd HH:mm", - F: "dddd, yyyy.'eko' MMMM'k 'd H:mm:ss", - Y: "yyyy.'eko' MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.eu.js b/Web/Scripts/globalize/cultures/globalize.culture.eu.js deleted file mode 100644 index 4a05b26..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.eu.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture eu - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "eu", "default", { - name: "eu", - englishName: "Basque", - nativeName: "euskara", - language: "eu", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "EdZ", - negativeInfinity: "-Infinitu", - positiveInfinity: "Infinitu", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"], - namesAbbr: ["ig.","al.","as.","az.","og.","or.","lr."], - namesShort: ["ig","al","as","az","og","or","lr"] - }, - months: { - names: ["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua",""], - namesAbbr: ["urt.","ots.","mar.","api.","mai.","eka.","uzt.","abu.","ira.","urr.","aza.","abe.",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "yyyy/MM/dd", - D: "dddd, yyyy.'eko' MMMM'k 'd", - t: "HH:mm", - T: "H:mm:ss", - f: "dddd, yyyy.'eko' MMMM'k 'd HH:mm", - F: "dddd, yyyy.'eko' MMMM'k 'd H:mm:ss", - Y: "yyyy.'eko' MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fa-IR.js b/Web/Scripts/globalize/cultures/globalize.culture.fa-IR.js deleted file mode 100644 index 551586c..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fa-IR.js +++ /dev/null @@ -1,213 +0,0 @@ -/* - * Globalize Culture fa-IR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fa-IR", "default", { - name: "fa-IR", - englishName: "Persian", - nativeName: "فارسى (ایران)", - language: "fa", - isRTL: true, - numberFormat: { - pattern: ["n-"], - currency: { - pattern: ["$n-","$ n"], - ".": "/", - symbol: "ريال" - } - }, - calendars: { - standard: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_Localized: { - firstDay: 6, - days: { - names: ["يكشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesAbbr: ["يكشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesShort: ["ی","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["ژانويه","فوريه","مارس","آوريل","مى","ژوئن","ژوئيه","اوت","سپتامبر","اُكتبر","نوامبر","دسامبر",""], - namesAbbr: ["ژانويه","فوريه","مارس","آوريل","مى","ژوئن","ژوئيه","اوت","سپتامبر","اُكتبر","نوامبر","دسامبر",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - patterns: { - d: "yyyy/MM/dd", - D: "yyyy/MM/dd", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "yyyy/MM/dd hh:mm tt", - F: "yyyy/MM/dd hh:mm:ss tt", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fa.js b/Web/Scripts/globalize/cultures/globalize.culture.fa.js deleted file mode 100644 index 2d5d036..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fa.js +++ /dev/null @@ -1,213 +0,0 @@ -/* - * Globalize Culture fa - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fa", "default", { - name: "fa", - englishName: "Persian", - nativeName: "فارسى", - language: "fa", - isRTL: true, - numberFormat: { - pattern: ["n-"], - currency: { - pattern: ["$n-","$ n"], - ".": "/", - symbol: "ريال" - } - }, - calendars: { - standard: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_Localized: { - firstDay: 6, - days: { - names: ["يكشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesAbbr: ["يكشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesShort: ["ی","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["ژانويه","فوريه","مارس","آوريل","مى","ژوئن","ژوئيه","اوت","سپتامبر","اُكتبر","نوامبر","دسامبر",""], - namesAbbr: ["ژانويه","فوريه","مارس","آوريل","مى","ژوئن","ژوئيه","اوت","سپتامبر","اُكتبر","نوامبر","دسامبر",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - patterns: { - d: "yyyy/MM/dd", - D: "yyyy/MM/dd", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "yyyy/MM/dd hh:mm tt", - F: "yyyy/MM/dd hh:mm:ss tt", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fi-FI.js b/Web/Scripts/globalize/cultures/globalize.culture.fi-FI.js deleted file mode 100644 index 555d4cd..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fi-FI.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture fi-FI - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fi-FI", "default", { - name: "fi-FI", - englishName: "Finnish (Finland)", - nativeName: "suomi (Suomi)", - language: "fi", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"], - namesAbbr: ["su","ma","ti","ke","to","pe","la"], - namesShort: ["su","ma","ti","ke","to","pe","la"] - }, - months: { - names: ["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu",""], - namesAbbr: ["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM'ta 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM'ta 'yyyy H:mm", - F: "d. MMMM'ta 'yyyy H:mm:ss", - M: "d. MMMM'ta'", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fi.js b/Web/Scripts/globalize/cultures/globalize.culture.fi.js deleted file mode 100644 index 33c2305..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fi.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture fi - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fi", "default", { - name: "fi", - englishName: "Finnish", - nativeName: "suomi", - language: "fi", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"], - namesAbbr: ["su","ma","ti","ke","to","pe","la"], - namesShort: ["su","ma","ti","ke","to","pe","la"] - }, - months: { - names: ["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu",""], - namesAbbr: ["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM'ta 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM'ta 'yyyy H:mm", - F: "d. MMMM'ta 'yyyy H:mm:ss", - M: "d. MMMM'ta'", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fil-PH.js b/Web/Scripts/globalize/cultures/globalize.culture.fil-PH.js deleted file mode 100644 index 78ac3d4..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fil-PH.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Globalize Culture fil-PH - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fil-PH", "default", { - name: "fil-PH", - englishName: "Filipino (Philippines)", - nativeName: "Filipino (Pilipinas)", - language: "fil", - numberFormat: { - currency: { - symbol: "PhP" - } - }, - calendars: { - standard: { - days: { - names: ["Linggo","Lunes","Martes","Mierkoles","Huebes","Biernes","Sabado"], - namesAbbr: ["Lin","Lun","Mar","Mier","Hueb","Bier","Saba"], - namesShort: ["L","L","M","M","H","B","S"] - }, - months: { - names: ["Enero","Pebrero","Marso","Abril","Mayo","Hunyo","Hulyo","Agosto","Septyembre","Oktubre","Nobyembre","Disyembre",""], - namesAbbr: ["En","Peb","Mar","Abr","Mayo","Hun","Hul","Agos","Sept","Okt","Nob","Dis",""] - }, - eras: [{"name":"Anno Domini","start":null,"offset":0}] - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fil.js b/Web/Scripts/globalize/cultures/globalize.culture.fil.js deleted file mode 100644 index 273c516..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fil.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Globalize Culture fil - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fil", "default", { - name: "fil", - englishName: "Filipino", - nativeName: "Filipino", - language: "fil", - numberFormat: { - currency: { - symbol: "PhP" - } - }, - calendars: { - standard: { - days: { - names: ["Linggo","Lunes","Martes","Mierkoles","Huebes","Biernes","Sabado"], - namesAbbr: ["Lin","Lun","Mar","Mier","Hueb","Bier","Saba"], - namesShort: ["L","L","M","M","H","B","S"] - }, - months: { - names: ["Enero","Pebrero","Marso","Abril","Mayo","Hunyo","Hulyo","Agosto","Septyembre","Oktubre","Nobyembre","Disyembre",""], - namesAbbr: ["En","Peb","Mar","Abr","Mayo","Hun","Hul","Agos","Sept","Okt","Nob","Dis",""] - }, - eras: [{"name":"Anno Domini","start":null,"offset":0}] - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fo-FO.js b/Web/Scripts/globalize/cultures/globalize.culture.fo-FO.js deleted file mode 100644 index 8e11f81..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fo-FO.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture fo-FO - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fo-FO", "default", { - name: "fo-FO", - englishName: "Faroese (Faroe Islands)", - nativeName: "føroyskt (Føroyar)", - language: "fo", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["sunnudagur","mánadagur","týsdagur","mikudagur","hósdagur","fríggjadagur","leygardagur"], - namesAbbr: ["sun","mán","týs","mik","hós","frí","leyg"], - namesShort: ["su","má","tý","mi","hó","fr","ley"] - }, - months: { - names: ["januar","februar","mars","apríl","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fo.js b/Web/Scripts/globalize/cultures/globalize.culture.fo.js deleted file mode 100644 index ca45b44..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fo.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture fo - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fo", "default", { - name: "fo", - englishName: "Faroese", - nativeName: "føroyskt", - language: "fo", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["sunnudagur","mánadagur","týsdagur","mikudagur","hósdagur","fríggjadagur","leygardagur"], - namesAbbr: ["sun","mán","týs","mik","hós","frí","leyg"], - namesShort: ["su","má","tý","mi","hó","fr","ley"] - }, - months: { - names: ["januar","februar","mars","apríl","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fr-BE.js b/Web/Scripts/globalize/cultures/globalize.culture.fr-BE.js deleted file mode 100644 index 8f37feb..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fr-BE.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture fr-BE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fr-BE", "default", { - name: "fr-BE", - englishName: "French (Belgium)", - nativeName: "français (Belgique)", - language: "fr", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "d/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fr-CA.js b/Web/Scripts/globalize/cultures/globalize.culture.fr-CA.js deleted file mode 100644 index dc9c283..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fr-CA.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture fr-CA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fr-CA", "default", { - name: "fr-CA", - englishName: "French (Canada)", - nativeName: "français (Canada)", - language: "fr", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["(n $)","n $"], - ",": " ", - ".": "," - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "d MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fr-CH.js b/Web/Scripts/globalize/cultures/globalize.culture.fr-CH.js deleted file mode 100644 index 5902884..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fr-CH.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture fr-CH - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fr-CH", "default", { - name: "fr-CH", - englishName: "French (Switzerland)", - nativeName: "français (Suisse)", - language: "fr", - numberFormat: { - ",": "'", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": "'" - }, - currency: { - pattern: ["$-n","$ n"], - ",": "'", - symbol: "fr." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fr-FR.js b/Web/Scripts/globalize/cultures/globalize.culture.fr-FR.js deleted file mode 100644 index 89c9bd4..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fr-FR.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture fr-FR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fr-FR", "default", { - name: "fr-FR", - englishName: "French (France)", - nativeName: "français (France)", - language: "fr", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fr-LU.js b/Web/Scripts/globalize/cultures/globalize.culture.fr-LU.js deleted file mode 100644 index 26f1a0a..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fr-LU.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture fr-LU - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fr-LU", "default", { - name: "fr-LU", - englishName: "French (Luxembourg)", - nativeName: "français (Luxembourg)", - language: "fr", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fr-MC.js b/Web/Scripts/globalize/cultures/globalize.culture.fr-MC.js deleted file mode 100644 index cc67379..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fr-MC.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture fr-MC - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fr-MC", "default", { - name: "fr-MC", - englishName: "French (Monaco)", - nativeName: "français (Principauté de Monaco)", - language: "fr", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fr.js b/Web/Scripts/globalize/cultures/globalize.culture.fr.js deleted file mode 100644 index e8c7b53..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fr.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture fr - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fr", "default", { - name: "fr", - englishName: "French", - nativeName: "français", - language: "fr", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fy-NL.js b/Web/Scripts/globalize/cultures/globalize.culture.fy-NL.js deleted file mode 100644 index 549504c..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fy-NL.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture fy-NL - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fy-NL", "default", { - name: "fy-NL", - englishName: "Frisian (Netherlands)", - nativeName: "Frysk (Nederlân)", - language: "fy", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["Snein","Moandei","Tiisdei","Woansdei","Tongersdei","Freed","Sneon"], - namesAbbr: ["Sn","Mo","Ti","Wo","To","Fr","Sn"], - namesShort: ["S","M","T","W","T","F","S"] - }, - months: { - names: ["jannewaris","febrewaris","maart","april","maaie","juny","july","augustus","septimber","oktober","novimber","desimber",""], - namesAbbr: ["jann","febr","mrt","apr","maaie","jun","jul","aug","sept","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "d-M-yyyy", - D: "dddd d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd d MMMM yyyy H:mm", - F: "dddd d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.fy.js b/Web/Scripts/globalize/cultures/globalize.culture.fy.js deleted file mode 100644 index 4dfd473..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.fy.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture fy - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "fy", "default", { - name: "fy", - englishName: "Frisian", - nativeName: "Frysk", - language: "fy", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["Snein","Moandei","Tiisdei","Woansdei","Tongersdei","Freed","Sneon"], - namesAbbr: ["Sn","Mo","Ti","Wo","To","Fr","Sn"], - namesShort: ["S","M","T","W","T","F","S"] - }, - months: { - names: ["jannewaris","febrewaris","maart","april","maaie","juny","july","augustus","septimber","oktober","novimber","desimber",""], - namesAbbr: ["jann","febr","mrt","apr","maaie","jun","jul","aug","sept","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "d-M-yyyy", - D: "dddd d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd d MMMM yyyy H:mm", - F: "dddd d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ga-IE.js b/Web/Scripts/globalize/cultures/globalize.culture.ga-IE.js deleted file mode 100644 index 46bb1fb..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ga-IE.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture ga-IE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ga-IE", "default", { - name: "ga-IE", - englishName: "Irish (Ireland)", - nativeName: "Gaeilge (Éire)", - language: "ga", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Sathairn"], - namesAbbr: ["Domh","Luan","Máir","Céad","Déar","Aoi","Sath"], - namesShort: ["Do","Lu","Má","Cé","De","Ao","Sa"] - }, - months: { - names: ["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Meitheamh","Iúil","Lúnasa","Meán Fómhair","Deireadh Fómhair","Samhain","Nollaig",""], - namesAbbr: ["Ean","Feabh","Már","Aib","Bealt","Meith","Iúil","Lún","M.Fómh","D.Fómh","Samh","Noll",""] - }, - AM: ["r.n.","r.n.","R.N."], - PM: ["i.n.","i.n.","I.N."], - patterns: { - d: "dd/MM/yyyy", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ga.js b/Web/Scripts/globalize/cultures/globalize.culture.ga.js deleted file mode 100644 index 282e43b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ga.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture ga - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ga", "default", { - name: "ga", - englishName: "Irish", - nativeName: "Gaeilge", - language: "ga", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Sathairn"], - namesAbbr: ["Domh","Luan","Máir","Céad","Déar","Aoi","Sath"], - namesShort: ["Do","Lu","Má","Cé","De","Ao","Sa"] - }, - months: { - names: ["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Meitheamh","Iúil","Lúnasa","Meán Fómhair","Deireadh Fómhair","Samhain","Nollaig",""], - namesAbbr: ["Ean","Feabh","Már","Aib","Bealt","Meith","Iúil","Lún","M.Fómh","D.Fómh","Samh","Noll",""] - }, - AM: ["r.n.","r.n.","R.N."], - PM: ["i.n.","i.n.","I.N."], - patterns: { - d: "dd/MM/yyyy", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.gd-GB.js b/Web/Scripts/globalize/cultures/globalize.culture.gd-GB.js deleted file mode 100644 index 3abe4ed..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.gd-GB.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Globalize Culture gd-GB - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "gd-GB", "default", { - name: "gd-GB", - englishName: "Scottish Gaelic (United Kingdom)", - nativeName: "Gàidhlig (An Rìoghachd Aonaichte)", - language: "gd", - numberFormat: { - negativeInfinity: "-Neo-chrìochnachd", - positiveInfinity: "Neo-chrìochnachd", - currency: { - pattern: ["-$n","$n"], - symbol: "£" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"], - namesAbbr: ["Dòm","Lua","Mài","Cia","Ard","Hao","Sat"], - namesShort: ["D","L","M","C","A","H","S"] - }, - months: { - names: ["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd",""], - namesAbbr: ["Fao","Gea","Màr","Gib","Cèi","Ògm","Iuc","Lùn","Sul","Dàm","Sam","Dùb",""] - }, - AM: ["m","m","M"], - PM: ["f","f","F"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.gd.js b/Web/Scripts/globalize/cultures/globalize.culture.gd.js deleted file mode 100644 index e3f9c8f..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.gd.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Globalize Culture gd - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "gd", "default", { - name: "gd", - englishName: "Scottish Gaelic", - nativeName: "Gàidhlig", - language: "gd", - numberFormat: { - negativeInfinity: "-Neo-chrìochnachd", - positiveInfinity: "Neo-chrìochnachd", - currency: { - pattern: ["-$n","$n"], - symbol: "£" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"], - namesAbbr: ["Dòm","Lua","Mài","Cia","Ard","Hao","Sat"], - namesShort: ["D","L","M","C","A","H","S"] - }, - months: { - names: ["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd",""], - namesAbbr: ["Fao","Gea","Màr","Gib","Cèi","Ògm","Iuc","Lùn","Sul","Dàm","Sam","Dùb",""] - }, - AM: ["m","m","M"], - PM: ["f","f","F"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.gl-ES.js b/Web/Scripts/globalize/cultures/globalize.culture.gl-ES.js deleted file mode 100644 index c750c0e..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.gl-ES.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture gl-ES - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "gl-ES", "default", { - name: "gl-ES", - englishName: "Galician (Galician)", - nativeName: "galego (galego)", - language: "gl", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domingo","luns","martes","mércores","xoves","venres","sábado"], - namesAbbr: ["dom","luns","mar","mér","xov","ven","sáb"], - namesShort: ["do","lu","ma","mé","xo","ve","sá"] - }, - months: { - names: ["xaneiro","febreiro","marzo","abril","maio","xuño","xullo","agosto","setembro","outubro","novembro","decembro",""], - namesAbbr: ["xan","feb","mar","abr","maio","xuñ","xull","ago","set","out","nov","dec",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.gl.js b/Web/Scripts/globalize/cultures/globalize.culture.gl.js deleted file mode 100644 index 1d4a2b6..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.gl.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture gl - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "gl", "default", { - name: "gl", - englishName: "Galician", - nativeName: "galego", - language: "gl", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domingo","luns","martes","mércores","xoves","venres","sábado"], - namesAbbr: ["dom","luns","mar","mér","xov","ven","sáb"], - namesShort: ["do","lu","ma","mé","xo","ve","sá"] - }, - months: { - names: ["xaneiro","febreiro","marzo","abril","maio","xuño","xullo","agosto","setembro","outubro","novembro","decembro",""], - namesAbbr: ["xan","feb","mar","abr","maio","xuñ","xull","ago","set","out","nov","dec",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.gsw-FR.js b/Web/Scripts/globalize/cultures/globalize.culture.gsw-FR.js deleted file mode 100644 index 02c8085..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.gsw-FR.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture gsw-FR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "gsw-FR", "default", { - name: "gsw-FR", - englishName: "Alsatian (France)", - nativeName: "Elsässisch (Frànkrisch)", - language: "gsw", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Ohne Nummer", - negativeInfinity: "-Unendlich", - positiveInfinity: "+Unendlich", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Sundàà","Mondàà","Dienschdàà","Mittwuch","Dunnerschdàà","Fridàà","Sàmschdàà"], - namesAbbr: ["Su.","Mo.","Di.","Mi.","Du.","Fr.","Sà."], - namesShort: ["Su","Mo","Di","Mi","Du","Fr","Sà"] - }, - months: { - names: ["Jänner","Feverje","März","Àpril","Mai","Jüni","Jüli","Augscht","September","Oktower","Nowember","Dezember",""], - namesAbbr: ["Jän.","Fev.","März","Apr.","Mai","Jüni","Jüli","Aug.","Sept.","Okt.","Now.","Dez.",""] - }, - AM: null, - PM: null, - eras: [{"name":"Vor J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.gsw.js b/Web/Scripts/globalize/cultures/globalize.culture.gsw.js deleted file mode 100644 index e6c4a32..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.gsw.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture gsw - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "gsw", "default", { - name: "gsw", - englishName: "Alsatian", - nativeName: "Elsässisch", - language: "gsw", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Ohne Nummer", - negativeInfinity: "-Unendlich", - positiveInfinity: "+Unendlich", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Sundàà","Mondàà","Dienschdàà","Mittwuch","Dunnerschdàà","Fridàà","Sàmschdàà"], - namesAbbr: ["Su.","Mo.","Di.","Mi.","Du.","Fr.","Sà."], - namesShort: ["Su","Mo","Di","Mi","Du","Fr","Sà"] - }, - months: { - names: ["Jänner","Feverje","März","Àpril","Mai","Jüni","Jüli","Augscht","September","Oktower","Nowember","Dezember",""], - namesAbbr: ["Jän.","Fev.","März","Apr.","Mai","Jüni","Jüli","Aug.","Sept.","Okt.","Now.","Dez.",""] - }, - AM: null, - PM: null, - eras: [{"name":"Vor J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.gu-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.gu-IN.js deleted file mode 100644 index 2b7fa8d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.gu-IN.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture gu-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "gu-IN", "default", { - name: "gu-IN", - englishName: "Gujarati (India)", - nativeName: "ગુજરાતી (ભારત)", - language: "gu", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "રૂ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["રવિવાર","સોમવાર","મંગળવાર","બુધવાર","ગુરુવાર","શુક્રવાર","શનિવાર"], - namesAbbr: ["રવિ","સોમ","મંગળ","બુધ","ગુરુ","શુક્ર","શનિ"], - namesShort: ["ર","સ","મ","બ","ગ","શ","શ"] - }, - months: { - names: ["જાન્યુઆરી","ફેબ્રુઆરી","માર્ચ","એપ્રિલ","મે","જૂન","જુલાઈ","ઑગસ્ટ","સપ્ટેમ્બર","ઑક્ટ્બર","નવેમ્બર","ડિસેમ્બર",""], - namesAbbr: ["જાન્યુ","ફેબ્રુ","માર્ચ","એપ્રિલ","મે","જૂન","જુલાઈ","ઑગસ્ટ","સપ્ટે","ઑક્ટો","નવે","ડિસે",""] - }, - AM: ["પૂર્વ મધ્યાહ્ન","પૂર્વ મધ્યાહ્ન","પૂર્વ મધ્યાહ્ન"], - PM: ["ઉત્તર મધ્યાહ્ન","ઉત્તર મધ્યાહ્ન","ઉત્તર મધ્યાહ્ન"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.gu.js b/Web/Scripts/globalize/cultures/globalize.culture.gu.js deleted file mode 100644 index 42766c5..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.gu.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture gu - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "gu", "default", { - name: "gu", - englishName: "Gujarati", - nativeName: "ગુજરાતી", - language: "gu", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "રૂ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["રવિવાર","સોમવાર","મંગળવાર","બુધવાર","ગુરુવાર","શુક્રવાર","શનિવાર"], - namesAbbr: ["રવિ","સોમ","મંગળ","બુધ","ગુરુ","શુક્ર","શનિ"], - namesShort: ["ર","સ","મ","બ","ગ","શ","શ"] - }, - months: { - names: ["જાન્યુઆરી","ફેબ્રુઆરી","માર્ચ","એપ્રિલ","મે","જૂન","જુલાઈ","ઑગસ્ટ","સપ્ટેમ્બર","ઑક્ટ્બર","નવેમ્બર","ડિસેમ્બર",""], - namesAbbr: ["જાન્યુ","ફેબ્રુ","માર્ચ","એપ્રિલ","મે","જૂન","જુલાઈ","ઑગસ્ટ","સપ્ટે","ઑક્ટો","નવે","ડિસે",""] - }, - AM: ["પૂર્વ મધ્યાહ્ન","પૂર્વ મધ્યાહ્ન","પૂર્વ મધ્યાહ્ન"], - PM: ["ઉત્તર મધ્યાહ્ન","ઉત્તર મધ્યાહ્ન","ઉત્તર મધ્યાહ્ન"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ha-Latn-NG.js b/Web/Scripts/globalize/cultures/globalize.culture.ha-Latn-NG.js deleted file mode 100644 index 63fb776..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ha-Latn-NG.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Globalize Culture ha-Latn-NG - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ha-Latn-NG", "default", { - name: "ha-Latn-NG", - englishName: "Hausa (Latin, Nigeria)", - nativeName: "Hausa (Nigeria)", - language: "ha-Latn", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Lahadi","Litinin","Talata","Laraba","Alhamis","Juma'a","Asabar"], - namesAbbr: ["Lah","Lit","Tal","Lar","Alh","Jum","Asa"], - namesShort: ["L","L","T","L","A","J","A"] - }, - months: { - names: ["Januwaru","Febreru","Maris","Afrilu","Mayu","Yuni","Yuli","Agusta","Satumba","Oktocba","Nuwamba","Disamba",""], - namesAbbr: ["Jan","Feb","Mar","Afr","May","Yun","Yul","Agu","Sat","Okt","Nuw","Dis",""] - }, - AM: ["Safe","safe","SAFE"], - PM: ["Yamma","yamma","YAMMA"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ha-Latn.js b/Web/Scripts/globalize/cultures/globalize.culture.ha-Latn.js deleted file mode 100644 index d770c50..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ha-Latn.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Globalize Culture ha-Latn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ha-Latn", "default", { - name: "ha-Latn", - englishName: "Hausa (Latin)", - nativeName: "Hausa", - language: "ha-Latn", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Lahadi","Litinin","Talata","Laraba","Alhamis","Juma'a","Asabar"], - namesAbbr: ["Lah","Lit","Tal","Lar","Alh","Jum","Asa"], - namesShort: ["L","L","T","L","A","J","A"] - }, - months: { - names: ["Januwaru","Febreru","Maris","Afrilu","Mayu","Yuni","Yuli","Agusta","Satumba","Oktocba","Nuwamba","Disamba",""], - namesAbbr: ["Jan","Feb","Mar","Afr","May","Yun","Yul","Agu","Sat","Okt","Nuw","Dis",""] - }, - AM: ["Safe","safe","SAFE"], - PM: ["Yamma","yamma","YAMMA"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ha.js b/Web/Scripts/globalize/cultures/globalize.culture.ha.js deleted file mode 100644 index 96b726f..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ha.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Globalize Culture ha - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ha", "default", { - name: "ha", - englishName: "Hausa", - nativeName: "Hausa", - language: "ha", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Lahadi","Litinin","Talata","Laraba","Alhamis","Juma'a","Asabar"], - namesAbbr: ["Lah","Lit","Tal","Lar","Alh","Jum","Asa"], - namesShort: ["L","L","T","L","A","J","A"] - }, - months: { - names: ["Januwaru","Febreru","Maris","Afrilu","Mayu","Yuni","Yuli","Agusta","Satumba","Oktocba","Nuwamba","Disamba",""], - namesAbbr: ["Jan","Feb","Mar","Afr","May","Yun","Yul","Agu","Sat","Okt","Nuw","Dis",""] - }, - AM: ["Safe","safe","SAFE"], - PM: ["Yamma","yamma","YAMMA"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.he-IL.js b/Web/Scripts/globalize/cultures/globalize.culture.he-IL.js deleted file mode 100644 index 8cace10..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.he-IL.js +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Globalize Culture he-IL - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "he-IL", "default", { - name: "he-IL", - englishName: "Hebrew (Israel)", - nativeName: "עברית (ישראל)", - language: "he", - isRTL: true, - numberFormat: { - "NaN": "לא מספר", - negativeInfinity: "אינסוף שלילי", - positiveInfinity: "אינסוף חיובי", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "₪" - } - }, - calendars: { - standard: { - days: { - names: ["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","שבת"], - namesAbbr: ["יום א","יום ב","יום ג","יום ד","יום ה","יום ו","שבת"], - namesShort: ["א","ב","ג","ד","ה","ו","ש"] - }, - months: { - names: ["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר",""], - namesAbbr: ["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ",""] - }, - eras: [{"name":"לספירה","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd dd MMMM yyyy HH:mm", - F: "dddd dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - }, - Hebrew: { - name: "Hebrew", - "/": " ", - days: { - names: ["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","שבת"], - namesAbbr: ["א","ב","ג","ד","ה","ו","ש"], - namesShort: ["א","ב","ג","ד","ה","ו","ש"] - }, - months: { - names: ["תשרי","חשון","כסלו","טבת","שבט","אדר","אדר ב","ניסן","אייר","סיון","תמוז","אב","אלול"], - namesAbbr: ["תשרי","חשון","כסלו","טבת","שבט","אדר","אדר ב","ניסן","אייר","סיון","תמוז","אב","אלול"] - }, - eras: [{"name":"C.E.","start":null,"offset":0}], - twoDigitYearMax: 5790, - patterns: { - d: "dd MMMM yyyy", - D: "dddd dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd dd MMMM yyyy HH:mm", - F: "dddd dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.he.js b/Web/Scripts/globalize/cultures/globalize.culture.he.js deleted file mode 100644 index 03f7ea4..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.he.js +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Globalize Culture he - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "he", "default", { - name: "he", - englishName: "Hebrew", - nativeName: "עברית", - language: "he", - isRTL: true, - numberFormat: { - "NaN": "לא מספר", - negativeInfinity: "אינסוף שלילי", - positiveInfinity: "אינסוף חיובי", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "₪" - } - }, - calendars: { - standard: { - days: { - names: ["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","שבת"], - namesAbbr: ["יום א","יום ב","יום ג","יום ד","יום ה","יום ו","שבת"], - namesShort: ["א","ב","ג","ד","ה","ו","ש"] - }, - months: { - names: ["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר",""], - namesAbbr: ["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ",""] - }, - eras: [{"name":"לספירה","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd dd MMMM yyyy HH:mm", - F: "dddd dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - }, - Hebrew: { - name: "Hebrew", - "/": " ", - days: { - names: ["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","שבת"], - namesAbbr: ["א","ב","ג","ד","ה","ו","ש"], - namesShort: ["א","ב","ג","ד","ה","ו","ש"] - }, - months: { - names: ["תשרי","חשון","כסלו","טבת","שבט","אדר","אדר ב","ניסן","אייר","סיון","תמוז","אב","אלול"], - namesAbbr: ["תשרי","חשון","כסלו","טבת","שבט","אדר","אדר ב","ניסן","אייר","סיון","תמוז","אב","אלול"] - }, - eras: [{"name":"C.E.","start":null,"offset":0}], - twoDigitYearMax: 5790, - patterns: { - d: "dd MMMM yyyy", - D: "dddd dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd dd MMMM yyyy HH:mm", - F: "dddd dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.hi-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.hi-IN.js deleted file mode 100644 index d7989e5..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.hi-IN.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture hi-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "hi-IN", "default", { - name: "hi-IN", - englishName: "Hindi (India)", - nativeName: "हिंदी (भारत)", - language: "hi", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"], - namesAbbr: ["रवि.","सोम.","मंगल.","बुध.","गुरु.","शुक्र.","शनि."], - namesShort: ["र","स","म","ब","ग","श","श"] - }, - months: { - names: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""], - namesAbbr: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""] - }, - AM: ["पूर्वाह्न","पूर्वाह्न","पूर्वाह्न"], - PM: ["अपराह्न","अपराह्न","अपराह्न"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.hi.js b/Web/Scripts/globalize/cultures/globalize.culture.hi.js deleted file mode 100644 index 4343d3a..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.hi.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture hi - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "hi", "default", { - name: "hi", - englishName: "Hindi", - nativeName: "हिंदी", - language: "hi", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"], - namesAbbr: ["रवि.","सोम.","मंगल.","बुध.","गुरु.","शुक्र.","शनि."], - namesShort: ["र","स","म","ब","ग","श","श"] - }, - months: { - names: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""], - namesAbbr: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""] - }, - AM: ["पूर्वाह्न","पूर्वाह्न","पूर्वाह्न"], - PM: ["अपराह्न","अपराह्न","अपराह्न"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.hr-BA.js b/Web/Scripts/globalize/cultures/globalize.culture.hr-BA.js deleted file mode 100644 index 3e5e064..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.hr-BA.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture hr-BA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "hr-BA", "default", { - name: "hr-BA", - englishName: "Croatian (Latin, Bosnia and Herzegovina)", - nativeName: "hrvatski (Bosna i Hercegovina)", - language: "hr", - numberFormat: { - pattern: ["- n"], - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "KM" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sri","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["siječanj","veljača","ožujak","travanj","svibanj","lipanj","srpanj","kolovoz","rujan","listopad","studeni","prosinac",""], - namesAbbr: ["sij","vlj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro",""] - }, - monthsGenitive: { - names: ["siječnja","veljače","ožujka","travnja","svibnja","lipnja","srpnja","kolovoza","rujna","listopada","studenog","prosinca",""], - namesAbbr: ["sij","vlj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy.", - D: "d. MMMM yyyy.", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy. H:mm", - F: "d. MMMM yyyy. H:mm:ss", - M: "d. MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.hr-HR.js b/Web/Scripts/globalize/cultures/globalize.culture.hr-HR.js deleted file mode 100644 index 71a796e..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.hr-HR.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture hr-HR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "hr-HR", "default", { - name: "hr-HR", - englishName: "Croatian (Croatia)", - nativeName: "hrvatski (Hrvatska)", - language: "hr", - numberFormat: { - pattern: ["- n"], - ",": ".", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kn" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sri","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["siječanj","veljača","ožujak","travanj","svibanj","lipanj","srpanj","kolovoz","rujan","listopad","studeni","prosinac",""], - namesAbbr: ["sij","vlj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro",""] - }, - monthsGenitive: { - names: ["siječnja","veljače","ožujka","travnja","svibnja","lipnja","srpnja","kolovoza","rujna","listopada","studenog","prosinca",""], - namesAbbr: ["sij","vlj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy.", - D: "d. MMMM yyyy.", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy. H:mm", - F: "d. MMMM yyyy. H:mm:ss", - M: "d. MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.hr.js b/Web/Scripts/globalize/cultures/globalize.culture.hr.js deleted file mode 100644 index 6c597a8..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.hr.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture hr - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "hr", "default", { - name: "hr", - englishName: "Croatian", - nativeName: "hrvatski", - language: "hr", - numberFormat: { - pattern: ["- n"], - ",": ".", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kn" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sri","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["siječanj","veljača","ožujak","travanj","svibanj","lipanj","srpanj","kolovoz","rujan","listopad","studeni","prosinac",""], - namesAbbr: ["sij","vlj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro",""] - }, - monthsGenitive: { - names: ["siječnja","veljače","ožujka","travnja","svibnja","lipnja","srpnja","kolovoza","rujna","listopada","studenog","prosinca",""], - namesAbbr: ["sij","vlj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy.", - D: "d. MMMM yyyy.", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy. H:mm", - F: "d. MMMM yyyy. H:mm:ss", - M: "d. MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.hsb-DE.js b/Web/Scripts/globalize/cultures/globalize.culture.hsb-DE.js deleted file mode 100644 index e30a4da..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.hsb-DE.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Globalize Culture hsb-DE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "hsb-DE", "default", { - name: "hsb-DE", - englishName: "Upper Sorbian (Germany)", - nativeName: "hornjoserbšćina (Němska)", - language: "hsb", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "njedefinowane", - negativeInfinity: "-njekónčne", - positiveInfinity: "+njekónčne", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ". ", - firstDay: 1, - days: { - names: ["njedźela","póndźela","wutora","srjeda","štwórtk","pjatk","sobota"], - namesAbbr: ["nje","pón","wut","srj","štw","pja","sob"], - namesShort: ["n","p","w","s","š","p","s"] - }, - months: { - names: ["januar","februar","měrc","apryl","meja","junij","julij","awgust","september","oktober","nowember","december",""], - namesAbbr: ["jan","feb","měr","apr","mej","jun","jul","awg","sep","okt","now","dec",""] - }, - monthsGenitive: { - names: ["januara","februara","měrca","apryla","meje","junija","julija","awgusta","septembra","oktobra","nowembra","decembra",""], - namesAbbr: ["jan","feb","měr","apr","mej","jun","jul","awg","sep","okt","now","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"po Chr.","start":null,"offset":0}], - patterns: { - d: "d. M. yyyy", - D: "dddd, 'dnja' d. MMMM yyyy", - t: "H.mm 'hodź.'", - T: "H:mm:ss", - f: "dddd, 'dnja' d. MMMM yyyy H.mm 'hodź.'", - F: "dddd, 'dnja' d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.hsb.js b/Web/Scripts/globalize/cultures/globalize.culture.hsb.js deleted file mode 100644 index 57a6b06..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.hsb.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Globalize Culture hsb - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "hsb", "default", { - name: "hsb", - englishName: "Upper Sorbian", - nativeName: "hornjoserbšćina", - language: "hsb", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "njedefinowane", - negativeInfinity: "-njekónčne", - positiveInfinity: "+njekónčne", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ". ", - firstDay: 1, - days: { - names: ["njedźela","póndźela","wutora","srjeda","štwórtk","pjatk","sobota"], - namesAbbr: ["nje","pón","wut","srj","štw","pja","sob"], - namesShort: ["n","p","w","s","š","p","s"] - }, - months: { - names: ["januar","februar","měrc","apryl","meja","junij","julij","awgust","september","oktober","nowember","december",""], - namesAbbr: ["jan","feb","měr","apr","mej","jun","jul","awg","sep","okt","now","dec",""] - }, - monthsGenitive: { - names: ["januara","februara","měrca","apryla","meje","junija","julija","awgusta","septembra","oktobra","nowembra","decembra",""], - namesAbbr: ["jan","feb","měr","apr","mej","jun","jul","awg","sep","okt","now","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"po Chr.","start":null,"offset":0}], - patterns: { - d: "d. M. yyyy", - D: "dddd, 'dnja' d. MMMM yyyy", - t: "H.mm 'hodź.'", - T: "H:mm:ss", - f: "dddd, 'dnja' d. MMMM yyyy H.mm 'hodź.'", - F: "dddd, 'dnja' d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.hu-HU.js b/Web/Scripts/globalize/cultures/globalize.culture.hu-HU.js deleted file mode 100644 index 0156328..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.hu-HU.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture hu-HU - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "hu-HU", "default", { - name: "hu-HU", - englishName: "Hungarian (Hungary)", - nativeName: "magyar (Magyarország)", - language: "hu", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "nem szám", - negativeInfinity: "negatív végtelen", - positiveInfinity: "végtelen", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "Ft" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"], - namesAbbr: ["V","H","K","Sze","Cs","P","Szo"], - namesShort: ["V","H","K","Sze","Cs","P","Szo"] - }, - months: { - names: ["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december",""], - namesAbbr: ["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec.",""] - }, - AM: ["de.","de.","DE."], - PM: ["du.","du.","DU."], - eras: [{"name":"i.sz.","start":null,"offset":0}], - patterns: { - d: "yyyy.MM.dd.", - D: "yyyy. MMMM d.", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy. MMMM d. H:mm", - F: "yyyy. MMMM d. H:mm:ss", - M: "MMMM d.", - Y: "yyyy. MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.hu.js b/Web/Scripts/globalize/cultures/globalize.culture.hu.js deleted file mode 100644 index a4ae56f..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.hu.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture hu - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "hu", "default", { - name: "hu", - englishName: "Hungarian", - nativeName: "magyar", - language: "hu", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "nem szám", - negativeInfinity: "negatív végtelen", - positiveInfinity: "végtelen", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "Ft" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"], - namesAbbr: ["V","H","K","Sze","Cs","P","Szo"], - namesShort: ["V","H","K","Sze","Cs","P","Szo"] - }, - months: { - names: ["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december",""], - namesAbbr: ["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec.",""] - }, - AM: ["de.","de.","DE."], - PM: ["du.","du.","DU."], - eras: [{"name":"i.sz.","start":null,"offset":0}], - patterns: { - d: "yyyy.MM.dd.", - D: "yyyy. MMMM d.", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy. MMMM d. H:mm", - F: "yyyy. MMMM d. H:mm:ss", - M: "MMMM d.", - Y: "yyyy. MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.hy-AM.js b/Web/Scripts/globalize/cultures/globalize.culture.hy-AM.js deleted file mode 100644 index 9fa83be..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.hy-AM.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture hy-AM - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "hy-AM", "default", { - name: "hy-AM", - englishName: "Armenian (Armenia)", - nativeName: "Հայերեն (Հայաստան)", - language: "hy", - numberFormat: { - currency: { - pattern: ["-n $","n $"], - symbol: "դր." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","ՈՒրբաթ","Շաբաթ"], - namesAbbr: ["Կիր","Երկ","Երք","Չրք","Հնգ","ՈՒր","Շբթ"], - namesShort: ["Կ","Ե","Ե","Չ","Հ","Ո","Շ"] - }, - months: { - names: ["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր",""], - namesAbbr: ["ՀՆՎ","ՓՏՎ","ՄՐՏ","ԱՊՐ","ՄՅՍ","ՀՆՍ","ՀԼՍ","ՕԳՍ","ՍԵՊ","ՀՈԿ","ՆՈՅ","ԴԵԿ",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM, yyyy H:mm", - F: "d MMMM, yyyy H:mm:ss", - M: "d MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.hy.js b/Web/Scripts/globalize/cultures/globalize.culture.hy.js deleted file mode 100644 index 3e78786..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.hy.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture hy - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "hy", "default", { - name: "hy", - englishName: "Armenian", - nativeName: "Հայերեն", - language: "hy", - numberFormat: { - currency: { - pattern: ["-n $","n $"], - symbol: "դր." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","ՈՒրբաթ","Շաբաթ"], - namesAbbr: ["Կիր","Երկ","Երք","Չրք","Հնգ","ՈՒր","Շբթ"], - namesShort: ["Կ","Ե","Ե","Չ","Հ","Ո","Շ"] - }, - months: { - names: ["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր",""], - namesAbbr: ["ՀՆՎ","ՓՏՎ","ՄՐՏ","ԱՊՐ","ՄՅՍ","ՀՆՍ","ՀԼՍ","ՕԳՍ","ՍԵՊ","ՀՈԿ","ՆՈՅ","ԴԵԿ",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM, yyyy H:mm", - F: "d MMMM, yyyy H:mm:ss", - M: "d MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.id-ID.js b/Web/Scripts/globalize/cultures/globalize.culture.id-ID.js deleted file mode 100644 index 283badc..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.id-ID.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Globalize Culture id-ID - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "id-ID", "default", { - name: "id-ID", - englishName: "Indonesian (Indonesia)", - nativeName: "Bahasa Indonesia (Indonesia)", - language: "id", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - decimals: 0, - ",": ".", - ".": ",", - symbol: "Rp" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"], - namesAbbr: ["Minggu","Sen","Sel","Rabu","Kamis","Jumat","Sabtu"], - namesShort: ["M","S","S","R","K","J","S"] - }, - months: { - names: ["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember",""], - namesAbbr: ["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agust","Sep","Okt","Nop","Des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM yyyy H:mm", - F: "dd MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.id.js b/Web/Scripts/globalize/cultures/globalize.culture.id.js deleted file mode 100644 index 9027e38..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.id.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Globalize Culture id - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "id", "default", { - name: "id", - englishName: "Indonesian", - nativeName: "Bahasa Indonesia", - language: "id", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - decimals: 0, - ",": ".", - ".": ",", - symbol: "Rp" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"], - namesAbbr: ["Minggu","Sen","Sel","Rabu","Kamis","Jumat","Sabtu"], - namesShort: ["M","S","S","R","K","J","S"] - }, - months: { - names: ["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember",""], - namesAbbr: ["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agust","Sep","Okt","Nop","Des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM yyyy H:mm", - F: "dd MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ig-NG.js b/Web/Scripts/globalize/cultures/globalize.culture.ig-NG.js deleted file mode 100644 index 04ad7a3..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ig-NG.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Globalize Culture ig-NG - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ig-NG", "default", { - name: "ig-NG", - englishName: "Igbo (Nigeria)", - nativeName: "Igbo (Nigeria)", - language: "ig", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Aiku","Aje","Isegun","Ojo'ru","Ojo'bo","Eti","Abameta"], - namesAbbr: ["Aik","Aje","Ise","Ojo","Ojo","Eti","Aba"], - namesShort: ["A","A","I","O","O","E","A"] - }, - months: { - names: ["Onwa mbu","Onwa ibua","Onwa ato","Onwa ano","Onwa ise","Onwa isi","Onwa asa","Onwa asato","Onwa itolu","Onwa iri","Onwa iri n'ofu","Onwa iri n'ibua",""], - namesAbbr: ["mbu.","ibu.","ato.","ano.","ise","isi","asa","asa.","ito.","iri.","n'of.","n'ib.",""] - }, - AM: ["Ututu","ututu","UTUTU"], - PM: ["Efifie","efifie","EFIFIE"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ig.js b/Web/Scripts/globalize/cultures/globalize.culture.ig.js deleted file mode 100644 index 96219ba..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ig.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Globalize Culture ig - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ig", "default", { - name: "ig", - englishName: "Igbo", - nativeName: "Igbo", - language: "ig", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Aiku","Aje","Isegun","Ojo'ru","Ojo'bo","Eti","Abameta"], - namesAbbr: ["Aik","Aje","Ise","Ojo","Ojo","Eti","Aba"], - namesShort: ["A","A","I","O","O","E","A"] - }, - months: { - names: ["Onwa mbu","Onwa ibua","Onwa ato","Onwa ano","Onwa ise","Onwa isi","Onwa asa","Onwa asato","Onwa itolu","Onwa iri","Onwa iri n'ofu","Onwa iri n'ibua",""], - namesAbbr: ["mbu.","ibu.","ato.","ano.","ise","isi","asa","asa.","ito.","iri.","n'of.","n'ib.",""] - }, - AM: ["Ututu","ututu","UTUTU"], - PM: ["Efifie","efifie","EFIFIE"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ii-CN.js b/Web/Scripts/globalize/cultures/globalize.culture.ii-CN.js deleted file mode 100644 index 14906bf..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ii-CN.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture ii-CN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ii-CN", "default", { - name: "ii-CN", - englishName: "Yi (PRC)", - nativeName: "ꆈꌠꁱꂷ (ꍏꉸꏓꂱꇭꉼꇩ)", - language: "ii", - numberFormat: { - groupSizes: [3,0], - "NaN": "ꌗꂷꀋꉬ", - negativeInfinity: "ꀄꊭꌐꀋꉆ", - positiveInfinity: "ꈤꇁꑖꀋꉬ", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["ꑭꆏꑍ","ꆏꊂ꒔","ꆏꊂꑍ","ꆏꊂꌕ","ꆏꊂꇖ","ꆏꊂꉬ","ꆏꊂꃘ"], - namesAbbr: ["ꑭꆏ","ꆏ꒔","ꆏꑍ","ꆏꌕ","ꆏꇖ","ꆏꉬ","ꆏꃘ"], - namesShort: ["ꆏ","꒔","ꑍ","ꌕ","ꇖ","ꉬ","ꃘ"] - }, - months: { - names: ["ꋍꆪ","ꑍꆪ","ꌕꆪ","ꇖꆪ","ꉬꆪ","ꃘꆪ","ꏃꆪ","ꉆꆪ","ꈬꆪ","ꊰꆪ","ꊯꊪꆪ","ꊰꑋꆪ",""], - namesAbbr: ["ꋍꆪ","ꑍꆪ","ꌕꆪ","ꇖꆪ","ꉬꆪ","ꃘꆪ","ꏃꆪ","ꉆꆪ","ꈬꆪ","ꊰꆪ","ꊯꊪꆪ","ꊰꑋꆪ",""] - }, - AM: ["ꂵꆪꈌꈐ","ꂵꆪꈌꈐ","ꂵꆪꈌꈐ"], - PM: ["ꂵꆪꈌꉈ","ꂵꆪꈌꉈ","ꂵꆪꈌꉈ"], - eras: [{"name":"ꇬꑼ","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'ꈎ' M'ꆪ' d'ꑍ'", - t: "tt h:mm", - T: "H:mm:ss", - f: "yyyy'ꈎ' M'ꆪ' d'ꑍ' tt h:mm", - F: "yyyy'ꈎ' M'ꆪ' d'ꑍ' H:mm:ss", - M: "M'ꆪ' d'ꑍ'", - Y: "yyyy'ꈎ' M'ꆪ'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ii.js b/Web/Scripts/globalize/cultures/globalize.culture.ii.js deleted file mode 100644 index 53d078a..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ii.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture ii - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ii", "default", { - name: "ii", - englishName: "Yi", - nativeName: "ꆈꌠꁱꂷ", - language: "ii", - numberFormat: { - groupSizes: [3,0], - "NaN": "ꌗꂷꀋꉬ", - negativeInfinity: "ꀄꊭꌐꀋꉆ", - positiveInfinity: "ꈤꇁꑖꀋꉬ", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["ꑭꆏꑍ","ꆏꊂ꒔","ꆏꊂꑍ","ꆏꊂꌕ","ꆏꊂꇖ","ꆏꊂꉬ","ꆏꊂꃘ"], - namesAbbr: ["ꑭꆏ","ꆏ꒔","ꆏꑍ","ꆏꌕ","ꆏꇖ","ꆏꉬ","ꆏꃘ"], - namesShort: ["ꆏ","꒔","ꑍ","ꌕ","ꇖ","ꉬ","ꃘ"] - }, - months: { - names: ["ꋍꆪ","ꑍꆪ","ꌕꆪ","ꇖꆪ","ꉬꆪ","ꃘꆪ","ꏃꆪ","ꉆꆪ","ꈬꆪ","ꊰꆪ","ꊯꊪꆪ","ꊰꑋꆪ",""], - namesAbbr: ["ꋍꆪ","ꑍꆪ","ꌕꆪ","ꇖꆪ","ꉬꆪ","ꃘꆪ","ꏃꆪ","ꉆꆪ","ꈬꆪ","ꊰꆪ","ꊯꊪꆪ","ꊰꑋꆪ",""] - }, - AM: ["ꂵꆪꈌꈐ","ꂵꆪꈌꈐ","ꂵꆪꈌꈐ"], - PM: ["ꂵꆪꈌꉈ","ꂵꆪꈌꉈ","ꂵꆪꈌꉈ"], - eras: [{"name":"ꇬꑼ","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'ꈎ' M'ꆪ' d'ꑍ'", - t: "tt h:mm", - T: "H:mm:ss", - f: "yyyy'ꈎ' M'ꆪ' d'ꑍ' tt h:mm", - F: "yyyy'ꈎ' M'ꆪ' d'ꑍ' H:mm:ss", - M: "M'ꆪ' d'ꑍ'", - Y: "yyyy'ꈎ' M'ꆪ'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.is-IS.js b/Web/Scripts/globalize/cultures/globalize.culture.is-IS.js deleted file mode 100644 index 795f0f9..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.is-IS.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture is-IS - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "is-IS", "default", { - name: "is-IS", - englishName: "Icelandic (Iceland)", - nativeName: "íslenska (Ísland)", - language: "is", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - decimals: 0, - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sunnudagur","mánudagur","þriðjudagur","miðvikudagur","fimmtudagur","föstudagur","laugardagur"], - namesAbbr: ["sun.","mán.","þri.","mið.","fim.","fös.","lau."], - namesShort: ["su","má","þr","mi","fi","fö","la"] - }, - months: { - names: ["janúar","febrúar","mars","apríl","maí","júní","júlí","ágúst","september","október","nóvember","desember",""], - namesAbbr: ["jan.","feb.","mar.","apr.","maí","jún.","júl.","ágú.","sep.","okt.","nóv.","des.",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.is.js b/Web/Scripts/globalize/cultures/globalize.culture.is.js deleted file mode 100644 index f274692..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.is.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture is - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "is", "default", { - name: "is", - englishName: "Icelandic", - nativeName: "íslenska", - language: "is", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - decimals: 0, - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sunnudagur","mánudagur","þriðjudagur","miðvikudagur","fimmtudagur","föstudagur","laugardagur"], - namesAbbr: ["sun.","mán.","þri.","mið.","fim.","fös.","lau."], - namesShort: ["su","má","þr","mi","fi","fö","la"] - }, - months: { - names: ["janúar","febrúar","mars","apríl","maí","júní","júlí","ágúst","september","október","nóvember","desember",""], - namesAbbr: ["jan.","feb.","mar.","apr.","maí","jún.","júl.","ágú.","sep.","okt.","nóv.","des.",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.it-CH.js b/Web/Scripts/globalize/cultures/globalize.culture.it-CH.js deleted file mode 100644 index d91a2a5..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.it-CH.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture it-CH - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "it-CH", "default", { - name: "it-CH", - englishName: "Italian (Switzerland)", - nativeName: "italiano (Svizzera)", - language: "it", - numberFormat: { - ",": "'", - "NaN": "Non un numero reale", - negativeInfinity: "-Infinito", - positiveInfinity: "+Infinito", - percent: { - pattern: ["-n%","n%"], - ",": "'" - }, - currency: { - pattern: ["$-n","$ n"], - ",": "'", - symbol: "fr." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"], - namesAbbr: ["dom","lun","mar","mer","gio","ven","sab"], - namesShort: ["do","lu","ma","me","gi","ve","sa"] - }, - months: { - names: ["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre",""], - namesAbbr: ["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d. MMMM yyyy HH:mm", - F: "dddd, d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.it-IT.js b/Web/Scripts/globalize/cultures/globalize.culture.it-IT.js deleted file mode 100644 index df4fbd8..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.it-IT.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture it-IT - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "it-IT", "default", { - name: "it-IT", - englishName: "Italian (Italy)", - nativeName: "italiano (Italia)", - language: "it", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "Non un numero reale", - negativeInfinity: "-Infinito", - positiveInfinity: "+Infinito", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"], - namesAbbr: ["dom","lun","mar","mer","gio","ven","sab"], - namesShort: ["do","lu","ma","me","gi","ve","sa"] - }, - months: { - names: ["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre",""], - namesAbbr: ["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.it.js b/Web/Scripts/globalize/cultures/globalize.culture.it.js deleted file mode 100644 index de88495..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.it.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture it - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "it", "default", { - name: "it", - englishName: "Italian", - nativeName: "italiano", - language: "it", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "Non un numero reale", - negativeInfinity: "-Infinito", - positiveInfinity: "+Infinito", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"], - namesAbbr: ["dom","lun","mar","mer","gio","ven","sab"], - namesShort: ["do","lu","ma","me","gi","ve","sa"] - }, - months: { - names: ["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre",""], - namesAbbr: ["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.iu-Cans-CA.js b/Web/Scripts/globalize/cultures/globalize.culture.iu-Cans-CA.js deleted file mode 100644 index ac00a68..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.iu-Cans-CA.js +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Globalize Culture iu-Cans-CA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "iu-Cans-CA", "default", { - name: "iu-Cans-CA", - englishName: "Inuktitut (Syllabics, Canada)", - nativeName: "ᐃᓄᒃᑎᑐᑦ (ᑲᓇᑕᒥ)", - language: "iu-Cans", - numberFormat: { - groupSizes: [3,0], - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["ᓈᑦᑏᖑᔭ","ᓇᒡᒐᔾᔭᐅ","ᐊᐃᑉᐱᖅ","ᐱᖓᑦᓯᖅ","ᓯᑕᒻᒥᖅ","ᑕᓪᓕᕐᒥᖅ","ᓯᕙᑖᕐᕕᒃ"], - namesAbbr: ["ᓈᑦᑏ","ᓇᒡᒐ","ᐊᐃᑉᐱ","ᐱᖓᑦᓯ","ᓯᑕ","ᑕᓪᓕ","ᓯᕙᑖᕐᕕᒃ"], - namesShort: ["ᓈ","ᓇ","ᐊ","ᐱ","ᓯ","ᑕ","ᓯ"] - }, - months: { - names: ["ᔮᓐᓄᐊᕆ","ᕖᕝᕗᐊᕆ","ᒫᑦᓯ","ᐄᐳᕆ","ᒪᐃ","ᔫᓂ","ᔪᓚᐃ","ᐋᒡᒌᓯ","ᓯᑎᐱᕆ","ᐅᑐᐱᕆ","ᓄᕕᐱᕆ","ᑎᓯᐱᕆ",""], - namesAbbr: ["ᔮᓐᓄ","ᕖᕝᕗ","ᒫᑦᓯ","ᐄᐳᕆ","ᒪᐃ","ᔫᓂ","ᔪᓚᐃ","ᐋᒡᒌ","ᓯᑎᐱ","ᐅᑐᐱ","ᓄᕕᐱ","ᑎᓯᐱ",""] - }, - patterns: { - d: "d/M/yyyy", - D: "dddd,MMMM dd,yyyy", - f: "dddd,MMMM dd,yyyy h:mm tt", - F: "dddd,MMMM dd,yyyy h:mm:ss tt", - Y: "MMMM,yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.iu-Cans.js b/Web/Scripts/globalize/cultures/globalize.culture.iu-Cans.js deleted file mode 100644 index e3942c5..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.iu-Cans.js +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Globalize Culture iu-Cans - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "iu-Cans", "default", { - name: "iu-Cans", - englishName: "Inuktitut (Syllabics)", - nativeName: "ᐃᓄᒃᑎᑐᑦ", - language: "iu-Cans", - numberFormat: { - groupSizes: [3,0], - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["ᓈᑦᑏᖑᔭ","ᓇᒡᒐᔾᔭᐅ","ᐊᐃᑉᐱᖅ","ᐱᖓᑦᓯᖅ","ᓯᑕᒻᒥᖅ","ᑕᓪᓕᕐᒥᖅ","ᓯᕙᑖᕐᕕᒃ"], - namesAbbr: ["ᓈᑦᑏ","ᓇᒡᒐ","ᐊᐃᑉᐱ","ᐱᖓᑦᓯ","ᓯᑕ","ᑕᓪᓕ","ᓯᕙᑖᕐᕕᒃ"], - namesShort: ["ᓈ","ᓇ","ᐊ","ᐱ","ᓯ","ᑕ","ᓯ"] - }, - months: { - names: ["ᔮᓐᓄᐊᕆ","ᕖᕝᕗᐊᕆ","ᒫᑦᓯ","ᐄᐳᕆ","ᒪᐃ","ᔫᓂ","ᔪᓚᐃ","ᐋᒡᒌᓯ","ᓯᑎᐱᕆ","ᐅᑐᐱᕆ","ᓄᕕᐱᕆ","ᑎᓯᐱᕆ",""], - namesAbbr: ["ᔮᓐᓄ","ᕖᕝᕗ","ᒫᑦᓯ","ᐄᐳᕆ","ᒪᐃ","ᔫᓂ","ᔪᓚᐃ","ᐋᒡᒌ","ᓯᑎᐱ","ᐅᑐᐱ","ᓄᕕᐱ","ᑎᓯᐱ",""] - }, - patterns: { - d: "d/M/yyyy", - D: "dddd,MMMM dd,yyyy", - f: "dddd,MMMM dd,yyyy h:mm tt", - F: "dddd,MMMM dd,yyyy h:mm:ss tt", - Y: "MMMM,yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.iu-Latn-CA.js b/Web/Scripts/globalize/cultures/globalize.culture.iu-Latn-CA.js deleted file mode 100644 index 689ba45..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.iu-Latn-CA.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Globalize Culture iu-Latn-CA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "iu-Latn-CA", "default", { - name: "iu-Latn-CA", - englishName: "Inuktitut (Latin, Canada)", - nativeName: "Inuktitut (Kanatami)", - language: "iu-Latn", - numberFormat: { - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["Naattiinguja","Naggajjau","Aippiq","Pingatsiq","Sitammiq","Tallirmiq","Sivataarvik"], - namesAbbr: ["Nat","Nag","Aip","Pi","Sit","Tal","Siv"], - namesShort: ["N","N","A","P","S","T","S"] - }, - months: { - names: ["Jaannuari","Viivvuari","Maatsi","Iipuri","Mai","Juuni","Julai","Aaggiisi","Sitipiri","Utupiri","Nuvipiri","Tisipiri",""], - namesAbbr: ["Jan","Viv","Mas","Ipu","Mai","Jun","Jul","Agi","Sii","Uut","Nuv","Tis",""] - }, - patterns: { - d: "d/MM/yyyy", - D: "ddd, MMMM dd,yyyy", - f: "ddd, MMMM dd,yyyy h:mm tt", - F: "ddd, MMMM dd,yyyy h:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.iu-Latn.js b/Web/Scripts/globalize/cultures/globalize.culture.iu-Latn.js deleted file mode 100644 index d6776af..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.iu-Latn.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Globalize Culture iu-Latn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "iu-Latn", "default", { - name: "iu-Latn", - englishName: "Inuktitut (Latin)", - nativeName: "Inuktitut", - language: "iu-Latn", - numberFormat: { - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["Naattiinguja","Naggajjau","Aippiq","Pingatsiq","Sitammiq","Tallirmiq","Sivataarvik"], - namesAbbr: ["Nat","Nag","Aip","Pi","Sit","Tal","Siv"], - namesShort: ["N","N","A","P","S","T","S"] - }, - months: { - names: ["Jaannuari","Viivvuari","Maatsi","Iipuri","Mai","Juuni","Julai","Aaggiisi","Sitipiri","Utupiri","Nuvipiri","Tisipiri",""], - namesAbbr: ["Jan","Viv","Mas","Ipu","Mai","Jun","Jul","Agi","Sii","Uut","Nuv","Tis",""] - }, - patterns: { - d: "d/MM/yyyy", - D: "ddd, MMMM dd,yyyy", - f: "ddd, MMMM dd,yyyy h:mm tt", - F: "ddd, MMMM dd,yyyy h:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.iu.js b/Web/Scripts/globalize/cultures/globalize.culture.iu.js deleted file mode 100644 index 9ec5816..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.iu.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Globalize Culture iu - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "iu", "default", { - name: "iu", - englishName: "Inuktitut", - nativeName: "Inuktitut", - language: "iu", - numberFormat: { - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["Naattiinguja","Naggajjau","Aippiq","Pingatsiq","Sitammiq","Tallirmiq","Sivataarvik"], - namesAbbr: ["Nat","Nag","Aip","Pi","Sit","Tal","Siv"], - namesShort: ["N","N","A","P","S","T","S"] - }, - months: { - names: ["Jaannuari","Viivvuari","Maatsi","Iipuri","Mai","Juuni","Julai","Aaggiisi","Sitipiri","Utupiri","Nuvipiri","Tisipiri",""], - namesAbbr: ["Jan","Viv","Mas","Ipu","Mai","Jun","Jul","Agi","Sii","Uut","Nuv","Tis",""] - }, - patterns: { - d: "d/MM/yyyy", - D: "ddd, MMMM dd,yyyy", - f: "ddd, MMMM dd,yyyy h:mm tt", - F: "ddd, MMMM dd,yyyy h:mm:ss tt" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ja-JP.js b/Web/Scripts/globalize/cultures/globalize.culture.ja-JP.js deleted file mode 100644 index e4c1ff6..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ja-JP.js +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Globalize Culture ja-JP - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ja-JP", "default", { - name: "ja-JP", - englishName: "Japanese (Japan)", - nativeName: "日本語 (日本)", - language: "ja", - numberFormat: { - "NaN": "NaN (非数値)", - negativeInfinity: "-∞", - positiveInfinity: "+∞", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["-$n","$n"], - decimals: 0, - symbol: "¥" - } - }, - calendars: { - standard: { - days: { - names: ["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"], - namesAbbr: ["日","月","火","水","木","金","土"], - namesShort: ["日","月","火","水","木","金","土"] - }, - months: { - names: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["午前","午前","午前"], - PM: ["午後","午後","午後"], - eras: [{"name":"西暦","start":null,"offset":0}], - patterns: { - d: "yyyy/MM/dd", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - }, - Japanese: { - name: "Japanese", - days: { - names: ["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"], - namesAbbr: ["日","月","火","水","木","金","土"], - namesShort: ["日","月","火","水","木","金","土"] - }, - months: { - names: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["午前","午前","午前"], - PM: ["午後","午後","午後"], - eras: [{"name":"平成","start":null,"offset":1867},{"name":"昭和","start":-1812153600000,"offset":1911},{"name":"大正","start":-1357603200000,"offset":1925},{"name":"明治","start":60022080000,"offset":1988}], - twoDigitYearMax: 99, - patterns: { - d: "gg y/M/d", - D: "gg y'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "gg y'年'M'月'd'日' H:mm", - F: "gg y'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "gg y'年'M'月'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ja.js b/Web/Scripts/globalize/cultures/globalize.culture.ja.js deleted file mode 100644 index 14fe806..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ja.js +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Globalize Culture ja - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ja", "default", { - name: "ja", - englishName: "Japanese", - nativeName: "日本語", - language: "ja", - numberFormat: { - "NaN": "NaN (非数値)", - negativeInfinity: "-∞", - positiveInfinity: "+∞", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["-$n","$n"], - decimals: 0, - symbol: "¥" - } - }, - calendars: { - standard: { - days: { - names: ["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"], - namesAbbr: ["日","月","火","水","木","金","土"], - namesShort: ["日","月","火","水","木","金","土"] - }, - months: { - names: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["午前","午前","午前"], - PM: ["午後","午後","午後"], - eras: [{"name":"西暦","start":null,"offset":0}], - patterns: { - d: "yyyy/MM/dd", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - }, - Japanese: { - name: "Japanese", - days: { - names: ["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"], - namesAbbr: ["日","月","火","水","木","金","土"], - namesShort: ["日","月","火","水","木","金","土"] - }, - months: { - names: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["午前","午前","午前"], - PM: ["午後","午後","午後"], - eras: [{"name":"平成","start":null,"offset":1867},{"name":"昭和","start":-1812153600000,"offset":1911},{"name":"大正","start":-1357603200000,"offset":1925},{"name":"明治","start":60022080000,"offset":1988}], - twoDigitYearMax: 99, - patterns: { - d: "gg y/M/d", - D: "gg y'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "gg y'年'M'月'd'日' H:mm", - F: "gg y'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "gg y'年'M'月'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ka-GE.js b/Web/Scripts/globalize/cultures/globalize.culture.ka-GE.js deleted file mode 100644 index d46d777..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ka-GE.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture ka-GE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ka-GE", "default", { - name: "ka-GE", - englishName: "Georgian (Georgia)", - nativeName: "ქართული (საქართველო)", - language: "ka", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "Lari" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"], - namesAbbr: ["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"], - namesShort: ["კ","ო","ს","ო","ხ","პ","შ"] - }, - months: { - names: ["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი",""], - namesAbbr: ["იან","თებ","მარ","აპრ","მაის","ივნ","ივლ","აგვ","სექ","ოქტ","ნოემ","დეკ",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "yyyy 'წლის' dd MM, dddd", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'წლის' dd MM, dddd H:mm", - F: "yyyy 'წლის' dd MM, dddd H:mm:ss", - M: "dd MM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ka.js b/Web/Scripts/globalize/cultures/globalize.culture.ka.js deleted file mode 100644 index 4fb5a0c..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ka.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture ka - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ka", "default", { - name: "ka", - englishName: "Georgian", - nativeName: "ქართული", - language: "ka", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "Lari" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"], - namesAbbr: ["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"], - namesShort: ["კ","ო","ს","ო","ხ","პ","შ"] - }, - months: { - names: ["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი",""], - namesAbbr: ["იან","თებ","მარ","აპრ","მაის","ივნ","ივლ","აგვ","სექ","ოქტ","ნოემ","დეკ",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "yyyy 'წლის' dd MM, dddd", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'წლის' dd MM, dddd H:mm", - F: "yyyy 'წლის' dd MM, dddd H:mm:ss", - M: "dd MM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.kk-KZ.js b/Web/Scripts/globalize/cultures/globalize.culture.kk-KZ.js deleted file mode 100644 index 98ce051..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.kk-KZ.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture kk-KZ - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "kk-KZ", "default", { - name: "kk-KZ", - englishName: "Kazakh (Kazakhstan)", - nativeName: "Қазақ (Қазақстан)", - language: "kk", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-$n","$n"], - ",": " ", - ".": "-", - symbol: "Т" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Жексенбі","Дүйсенбі","Сейсенбі","Сәрсенбі","Бейсенбі","Жұма","Сенбі"], - namesAbbr: ["Жк","Дс","Сс","Ср","Бс","Жм","Сн"], - namesShort: ["Жк","Дс","Сс","Ср","Бс","Жм","Сн"] - }, - months: { - names: ["қаңтар","ақпан","наурыз","сәуір","мамыр","маусым","шілде","тамыз","қыркүйек","қазан","қараша","желтоқсан",""], - namesAbbr: ["Қаң","Ақп","Нау","Сәу","Мам","Мау","Шіл","Там","Қыр","Қаз","Қар","Жел",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy 'ж.'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy 'ж.' H:mm", - F: "d MMMM yyyy 'ж.' H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.kk.js b/Web/Scripts/globalize/cultures/globalize.culture.kk.js deleted file mode 100644 index d1d4877..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.kk.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture kk - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "kk", "default", { - name: "kk", - englishName: "Kazakh", - nativeName: "Қазақ", - language: "kk", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-$n","$n"], - ",": " ", - ".": "-", - symbol: "Т" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Жексенбі","Дүйсенбі","Сейсенбі","Сәрсенбі","Бейсенбі","Жұма","Сенбі"], - namesAbbr: ["Жк","Дс","Сс","Ср","Бс","Жм","Сн"], - namesShort: ["Жк","Дс","Сс","Ср","Бс","Жм","Сн"] - }, - months: { - names: ["қаңтар","ақпан","наурыз","сәуір","мамыр","маусым","шілде","тамыз","қыркүйек","қазан","қараша","желтоқсан",""], - namesAbbr: ["Қаң","Ақп","Нау","Сәу","Мам","Мау","Шіл","Там","Қыр","Қаз","Қар","Жел",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy 'ж.'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy 'ж.' H:mm", - F: "d MMMM yyyy 'ж.' H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.kl-GL.js b/Web/Scripts/globalize/cultures/globalize.culture.kl-GL.js deleted file mode 100644 index 1ad7b00..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.kl-GL.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture kl-GL - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "kl-GL", "default", { - name: "kl-GL", - englishName: "Greenlandic (Greenland)", - nativeName: "kalaallisut (Kalaallit Nunaat)", - language: "kl", - numberFormat: { - ",": ".", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - groupSizes: [3,0], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,0], - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["sapaat","ataasinngorneq","marlunngorneq","pingasunngorneq","sisamanngorneq","tallimanngorneq","arfininngorneq"], - namesAbbr: ["sap","ata","mar","ping","sis","tal","arf"], - namesShort: ["sa","at","ma","pi","si","ta","ar"] - }, - months: { - names: ["januari","februari","martsi","apriili","maaji","juni","juli","aggusti","septembari","oktobari","novembari","decembari",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.kl.js b/Web/Scripts/globalize/cultures/globalize.culture.kl.js deleted file mode 100644 index 55d5449..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.kl.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture kl - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "kl", "default", { - name: "kl", - englishName: "Greenlandic", - nativeName: "kalaallisut", - language: "kl", - numberFormat: { - ",": ".", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - groupSizes: [3,0], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,0], - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["sapaat","ataasinngorneq","marlunngorneq","pingasunngorneq","sisamanngorneq","tallimanngorneq","arfininngorneq"], - namesAbbr: ["sap","ata","mar","ping","sis","tal","arf"], - namesShort: ["sa","at","ma","pi","si","ta","ar"] - }, - months: { - names: ["januari","februari","martsi","apriili","maaji","juni","juli","aggusti","septembari","oktobari","novembari","decembari",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.km-KH.js b/Web/Scripts/globalize/cultures/globalize.culture.km-KH.js deleted file mode 100644 index 92e7aec..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.km-KH.js +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Globalize Culture km-KH - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "km-KH", "default", { - name: "km-KH", - englishName: "Khmer (Cambodia)", - nativeName: "ខ្មែរ (កម្ពុជា)", - language: "km", - numberFormat: { - pattern: ["- n"], - groupSizes: [3,0], - "NaN": "NAN", - negativeInfinity: "-- អនន្ត", - positiveInfinity: "អនន្ត", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["-n$","n$"], - symbol: "៛" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["ថ្ងៃអាទិត្យ","ថ្ងៃច័ន្ទ","ថ្ងៃអង្គារ","ថ្ងៃពុធ","ថ្ងៃព្រហស្បតិ៍","ថ្ងៃសុក្រ","ថ្ងៃសៅរ៍"], - namesAbbr: ["អាទិ.","ច.","អ.","ពុ","ព្រហ.","សុ.","ស."], - namesShort: ["អា","ច","អ","ពុ","ព្","សុ","ស"] - }, - months: { - names: ["មករា","កុម្ភៈ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ",""], - namesAbbr: ["១","២","៣","៤","៥","៦","៧","៨","៩","១០","១១","១២",""] - }, - AM: ["ព្រឹក","ព្រឹក","ព្រឹក"], - PM: ["ល្ងាច","ល្ងាច","ល្ងាច"], - eras: [{"name":"មុនគ.ស.","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "d MMMM yyyy", - t: "H:mm tt", - T: "HH:mm:ss", - f: "d MMMM yyyy H:mm tt", - F: "d MMMM yyyy HH:mm:ss", - M: "'ថ្ងៃទី' dd 'ខែ' MM", - Y: "'ខែ' MM 'ឆ្នាំ' yyyy" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ព្រឹក","ព្រឹក","ព្រឹក"], - PM: ["ល្ងាច","ល្ងាច","ល្ងាច"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm tt", - T: "HH:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm tt", - F: "dddd, MMMM dd, yyyy HH:mm:ss" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.km.js b/Web/Scripts/globalize/cultures/globalize.culture.km.js deleted file mode 100644 index 4463b91..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.km.js +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Globalize Culture km - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "km", "default", { - name: "km", - englishName: "Khmer", - nativeName: "ខ្មែរ", - language: "km", - numberFormat: { - pattern: ["- n"], - groupSizes: [3,0], - "NaN": "NAN", - negativeInfinity: "-- អនន្ត", - positiveInfinity: "អនន្ត", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["-n$","n$"], - symbol: "៛" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["ថ្ងៃអាទិត្យ","ថ្ងៃច័ន្ទ","ថ្ងៃអង្គារ","ថ្ងៃពុធ","ថ្ងៃព្រហស្បតិ៍","ថ្ងៃសុក្រ","ថ្ងៃសៅរ៍"], - namesAbbr: ["អាទិ.","ច.","អ.","ពុ","ព្រហ.","សុ.","ស."], - namesShort: ["អា","ច","អ","ពុ","ព្","សុ","ស"] - }, - months: { - names: ["មករា","កុម្ភៈ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ",""], - namesAbbr: ["១","២","៣","៤","៥","៦","៧","៨","៩","១០","១១","១២",""] - }, - AM: ["ព្រឹក","ព្រឹក","ព្រឹក"], - PM: ["ល្ងាច","ល្ងាច","ល្ងាច"], - eras: [{"name":"មុនគ.ស.","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "d MMMM yyyy", - t: "H:mm tt", - T: "HH:mm:ss", - f: "d MMMM yyyy H:mm tt", - F: "d MMMM yyyy HH:mm:ss", - M: "'ថ្ងៃទី' dd 'ខែ' MM", - Y: "'ខែ' MM 'ឆ្នាំ' yyyy" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ព្រឹក","ព្រឹក","ព្រឹក"], - PM: ["ល្ងាច","ល្ងាច","ល្ងាច"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm tt", - T: "HH:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm tt", - F: "dddd, MMMM dd, yyyy HH:mm:ss" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.kn-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.kn-IN.js deleted file mode 100644 index aa6ff62..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.kn-IN.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture kn-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "kn-IN", "default", { - name: "kn-IN", - englishName: "Kannada (India)", - nativeName: "ಕನ್ನಡ (ಭಾರತ)", - language: "kn", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ರೂ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ಭಾನುವಾರ","ಸೋಮವಾರ","ಮಂಗಳವಾರ","ಬುಧವಾರ","ಗುರುವಾರ","ಶುಕ್ರವಾರ","ಶನಿವಾರ"], - namesAbbr: ["ಭಾನು.","ಸೋಮ.","ಮಂಗಳ.","ಬುಧ.","ಗುರು.","ಶುಕ್ರ.","ಶನಿ."], - namesShort: ["ರ","ಸ","ಮ","ಬ","ಗ","ಶ","ಶ"] - }, - months: { - names: ["ಜನವರಿ","ಫೆಬ್ರವರಿ","ಮಾರ್ಚ್","ಎಪ್ರಿಲ್","ಮೇ","ಜೂನ್","ಜುಲೈ","ಆಗಸ್ಟ್","ಸೆಪ್ಟಂಬರ್","ಅಕ್ಟೋಬರ್","ನವೆಂಬರ್","ಡಿಸೆಂಬರ್",""], - namesAbbr: ["ಜನವರಿ","ಫೆಬ್ರವರಿ","ಮಾರ್ಚ್","ಎಪ್ರಿಲ್","ಮೇ","ಜೂನ್","ಜುಲೈ","ಆಗಸ್ಟ್","ಸೆಪ್ಟಂಬರ್","ಅಕ್ಟೋಬರ್","ನವೆಂಬರ್","ಡಿಸೆಂಬರ್",""] - }, - AM: ["ಪೂರ್ವಾಹ್ನ","ಪೂರ್ವಾಹ್ನ","ಪೂರ್ವಾಹ್ನ"], - PM: ["ಅಪರಾಹ್ನ","ಅಪರಾಹ್ನ","ಅಪರಾಹ್ನ"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.kn.js b/Web/Scripts/globalize/cultures/globalize.culture.kn.js deleted file mode 100644 index 65af8db..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.kn.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture kn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "kn", "default", { - name: "kn", - englishName: "Kannada", - nativeName: "ಕನ್ನಡ", - language: "kn", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ರೂ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ಭಾನುವಾರ","ಸೋಮವಾರ","ಮಂಗಳವಾರ","ಬುಧವಾರ","ಗುರುವಾರ","ಶುಕ್ರವಾರ","ಶನಿವಾರ"], - namesAbbr: ["ಭಾನು.","ಸೋಮ.","ಮಂಗಳ.","ಬುಧ.","ಗುರು.","ಶುಕ್ರ.","ಶನಿ."], - namesShort: ["ರ","ಸ","ಮ","ಬ","ಗ","ಶ","ಶ"] - }, - months: { - names: ["ಜನವರಿ","ಫೆಬ್ರವರಿ","ಮಾರ್ಚ್","ಎಪ್ರಿಲ್","ಮೇ","ಜೂನ್","ಜುಲೈ","ಆಗಸ್ಟ್","ಸೆಪ್ಟಂಬರ್","ಅಕ್ಟೋಬರ್","ನವೆಂಬರ್","ಡಿಸೆಂಬರ್",""], - namesAbbr: ["ಜನವರಿ","ಫೆಬ್ರವರಿ","ಮಾರ್ಚ್","ಎಪ್ರಿಲ್","ಮೇ","ಜೂನ್","ಜುಲೈ","ಆಗಸ್ಟ್","ಸೆಪ್ಟಂಬರ್","ಅಕ್ಟೋಬರ್","ನವೆಂಬರ್","ಡಿಸೆಂಬರ್",""] - }, - AM: ["ಪೂರ್ವಾಹ್ನ","ಪೂರ್ವಾಹ್ನ","ಪೂರ್ವಾಹ್ನ"], - PM: ["ಅಪರಾಹ್ನ","ಅಪರಾಹ್ನ","ಅಪರಾಹ್ನ"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ko-KR.js b/Web/Scripts/globalize/cultures/globalize.culture.ko-KR.js deleted file mode 100644 index 153f761..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ko-KR.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Globalize Culture ko-KR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ko-KR", "default", { - name: "ko-KR", - englishName: "Korean (Korea)", - nativeName: "한국어 (대한민국)", - language: "ko", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - decimals: 0, - symbol: "₩" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["일요일","월요일","화요일","수요일","목요일","금요일","토요일"], - namesAbbr: ["일","월","화","수","목","금","토"], - namesShort: ["일","월","화","수","목","금","토"] - }, - months: { - names: ["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["오전","오전","오전"], - PM: ["오후","오후","오후"], - eras: [{"name":"서기","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "yyyy'년' M'월' d'일' dddd", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "yyyy'년' M'월' d'일' dddd tt h:mm", - F: "yyyy'년' M'월' d'일' dddd tt h:mm:ss", - M: "M'월' d'일'", - Y: "yyyy'년' M'월'" - } - }, - Korean: { - name: "Korean", - "/": "-", - days: { - names: ["일요일","월요일","화요일","수요일","목요일","금요일","토요일"], - namesAbbr: ["일","월","화","수","목","금","토"], - namesShort: ["일","월","화","수","목","금","토"] - }, - months: { - names: ["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["오전","오전","오전"], - PM: ["오후","오후","오후"], - eras: [{"name":"단기","start":null,"offset":-2333}], - twoDigitYearMax: 4362, - patterns: { - d: "gg yyyy-MM-dd", - D: "gg yyyy'년' M'월' d'일' dddd", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "gg yyyy'년' M'월' d'일' dddd tt h:mm", - F: "gg yyyy'년' M'월' d'일' dddd tt h:mm:ss", - M: "M'월' d'일'", - Y: "gg yyyy'년' M'월'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ko.js b/Web/Scripts/globalize/cultures/globalize.culture.ko.js deleted file mode 100644 index 7cd1c93..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ko.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Globalize Culture ko - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ko", "default", { - name: "ko", - englishName: "Korean", - nativeName: "한국어", - language: "ko", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - decimals: 0, - symbol: "₩" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["일요일","월요일","화요일","수요일","목요일","금요일","토요일"], - namesAbbr: ["일","월","화","수","목","금","토"], - namesShort: ["일","월","화","수","목","금","토"] - }, - months: { - names: ["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["오전","오전","오전"], - PM: ["오후","오후","오후"], - eras: [{"name":"서기","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "yyyy'년' M'월' d'일' dddd", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "yyyy'년' M'월' d'일' dddd tt h:mm", - F: "yyyy'년' M'월' d'일' dddd tt h:mm:ss", - M: "M'월' d'일'", - Y: "yyyy'년' M'월'" - } - }, - Korean: { - name: "Korean", - "/": "-", - days: { - names: ["일요일","월요일","화요일","수요일","목요일","금요일","토요일"], - namesAbbr: ["일","월","화","수","목","금","토"], - namesShort: ["일","월","화","수","목","금","토"] - }, - months: { - names: ["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["오전","오전","오전"], - PM: ["오후","오후","오후"], - eras: [{"name":"단기","start":null,"offset":-2333}], - twoDigitYearMax: 4362, - patterns: { - d: "gg yyyy-MM-dd", - D: "gg yyyy'년' M'월' d'일' dddd", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "gg yyyy'년' M'월' d'일' dddd tt h:mm", - F: "gg yyyy'년' M'월' d'일' dddd tt h:mm:ss", - M: "M'월' d'일'", - Y: "gg yyyy'년' M'월'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.kok-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.kok-IN.js deleted file mode 100644 index 1d9fca1..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.kok-IN.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture kok-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "kok-IN", "default", { - name: "kok-IN", - englishName: "Konkani (India)", - nativeName: "कोंकणी (भारत)", - language: "kok", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["आयतार","सोमार","मंगळार","बुधवार","बिरेस्तार","सुक्रार","शेनवार"], - namesAbbr: ["आय.","सोम.","मंगळ.","बुध.","बिरे.","सुक्र.","शेन."], - namesShort: ["आ","स","म","ब","ब","स","श"] - }, - months: { - names: ["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोवेम्बर","डिसेंबर",""], - namesAbbr: ["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोवेम्बर","डिसेंबर",""] - }, - AM: ["म.पू.","म.पू.","म.पू."], - PM: ["म.नं.","म.नं.","म.नं."], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.kok.js b/Web/Scripts/globalize/cultures/globalize.culture.kok.js deleted file mode 100644 index f6b3b3e..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.kok.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture kok - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "kok", "default", { - name: "kok", - englishName: "Konkani", - nativeName: "कोंकणी", - language: "kok", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["आयतार","सोमार","मंगळार","बुधवार","बिरेस्तार","सुक्रार","शेनवार"], - namesAbbr: ["आय.","सोम.","मंगळ.","बुध.","बिरे.","सुक्र.","शेन."], - namesShort: ["आ","स","म","ब","ब","स","श"] - }, - months: { - names: ["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोवेम्बर","डिसेंबर",""], - namesAbbr: ["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोवेम्बर","डिसेंबर",""] - }, - AM: ["म.पू.","म.पू.","म.पू."], - PM: ["म.नं.","म.नं.","म.नं."], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ky-KG.js b/Web/Scripts/globalize/cultures/globalize.culture.ky-KG.js deleted file mode 100644 index 1b372f8..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ky-KG.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture ky-KG - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ky-KG", "default", { - name: "ky-KG", - englishName: "Kyrgyz (Kyrgyzstan)", - nativeName: "Кыргыз (Кыргызстан)", - language: "ky", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": "-", - symbol: "сом" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Жекшемби","Дүйшөмбү","Шейшемби","Шаршемби","Бейшемби","Жума","Ишемби"], - namesAbbr: ["Жш","Дш","Шш","Шр","Бш","Жм","Иш"], - namesShort: ["Жш","Дш","Шш","Шр","Бш","Жм","Иш"] - }, - months: { - names: ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d'-'MMMM yyyy'-ж.'", - t: "H:mm", - T: "H:mm:ss", - f: "d'-'MMMM yyyy'-ж.' H:mm", - F: "d'-'MMMM yyyy'-ж.' H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy'-ж.'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ky.js b/Web/Scripts/globalize/cultures/globalize.culture.ky.js deleted file mode 100644 index b19156a..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ky.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture ky - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ky", "default", { - name: "ky", - englishName: "Kyrgyz", - nativeName: "Кыргыз", - language: "ky", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": "-", - symbol: "сом" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Жекшемби","Дүйшөмбү","Шейшемби","Шаршемби","Бейшемби","Жума","Ишемби"], - namesAbbr: ["Жш","Дш","Шш","Шр","Бш","Жм","Иш"], - namesShort: ["Жш","Дш","Шш","Шр","Бш","Жм","Иш"] - }, - months: { - names: ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d'-'MMMM yyyy'-ж.'", - t: "H:mm", - T: "H:mm:ss", - f: "d'-'MMMM yyyy'-ж.' H:mm", - F: "d'-'MMMM yyyy'-ж.' H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy'-ж.'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.lb-LU.js b/Web/Scripts/globalize/cultures/globalize.culture.lb-LU.js deleted file mode 100644 index 74d0f64..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.lb-LU.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture lb-LU - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "lb-LU", "default", { - name: "lb-LU", - englishName: "Luxembourgish (Luxembourg)", - nativeName: "Lëtzebuergesch (Luxembourg)", - language: "lb", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "n. num.", - negativeInfinity: "-onendlech", - positiveInfinity: "+onendlech", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Sonndeg","Méindeg","Dënschdeg","Mëttwoch","Donneschdeg","Freideg","Samschdeg"], - namesAbbr: ["Son","Méi","Dën","Mët","Don","Fre","Sam"], - namesShort: ["So","Mé","Dë","Më","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","Mäerz","Abrëll","Mee","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mäe","Abr","Mee","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.lb.js b/Web/Scripts/globalize/cultures/globalize.culture.lb.js deleted file mode 100644 index 51c616a..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.lb.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture lb - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "lb", "default", { - name: "lb", - englishName: "Luxembourgish", - nativeName: "Lëtzebuergesch", - language: "lb", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "n. num.", - negativeInfinity: "-onendlech", - positiveInfinity: "+onendlech", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Sonndeg","Méindeg","Dënschdeg","Mëttwoch","Donneschdeg","Freideg","Samschdeg"], - namesAbbr: ["Son","Méi","Dën","Mët","Don","Fre","Sam"], - namesShort: ["So","Mé","Dë","Më","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","Mäerz","Abrëll","Mee","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mäe","Abr","Mee","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.lo-LA.js b/Web/Scripts/globalize/cultures/globalize.culture.lo-LA.js deleted file mode 100644 index a6f75e9..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.lo-LA.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture lo-LA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "lo-LA", "default", { - name: "lo-LA", - englishName: "Lao (Lao P.D.R.)", - nativeName: "ລາວ (ສ.ປ.ປ. ລາວ)", - language: "lo", - numberFormat: { - pattern: ["(n)"], - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - }, - currency: { - pattern: ["(n$)","n$"], - groupSizes: [3,0], - symbol: "₭" - } - }, - calendars: { - standard: { - days: { - names: ["ວັນອາທິດ","ວັນຈັນ","ວັນອັງຄານ","ວັນພຸດ","ວັນພະຫັດ","ວັນສຸກ","ວັນເສົາ"], - namesAbbr: ["ອາທິດ","ຈັນ","ອັງຄານ","ພຸດ","ພະຫັດ","ສຸກ","ເສົາ"], - namesShort: ["ອ","ຈ","ອ","ພ","ພ","ສ","ເ"] - }, - months: { - names: ["ມັງກອນ","ກຸມພາ","ມີນາ","ເມສາ","ພຶດສະພາ","ມິຖຸນາ","ກໍລະກົດ","ສິງຫາ","ກັນຍາ","ຕຸລາ","ພະຈິກ","ທັນວາ",""], - namesAbbr: ["ມັງກອນ","ກຸມພາ","ມີນາ","ເມສາ","ພຶດສະພາ","ມິຖຸນາ","ກໍລະກົດ","ສິງຫາ","ກັນຍາ","ຕຸລາ","ພະຈິກ","ທັນວາ",""] - }, - AM: ["ເຊົ້າ","ເຊົ້າ","ເຊົ້າ"], - PM: ["ແລງ","ແລງ","ແລງ"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm tt", - T: "HH:mm:ss", - f: "dd MMMM yyyy H:mm tt", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.lo.js b/Web/Scripts/globalize/cultures/globalize.culture.lo.js deleted file mode 100644 index 91a0734..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.lo.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture lo - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "lo", "default", { - name: "lo", - englishName: "Lao", - nativeName: "ລາວ", - language: "lo", - numberFormat: { - pattern: ["(n)"], - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - }, - currency: { - pattern: ["(n$)","n$"], - groupSizes: [3,0], - symbol: "₭" - } - }, - calendars: { - standard: { - days: { - names: ["ວັນອາທິດ","ວັນຈັນ","ວັນອັງຄານ","ວັນພຸດ","ວັນພະຫັດ","ວັນສຸກ","ວັນເສົາ"], - namesAbbr: ["ອາທິດ","ຈັນ","ອັງຄານ","ພຸດ","ພະຫັດ","ສຸກ","ເສົາ"], - namesShort: ["ອ","ຈ","ອ","ພ","ພ","ສ","ເ"] - }, - months: { - names: ["ມັງກອນ","ກຸມພາ","ມີນາ","ເມສາ","ພຶດສະພາ","ມິຖຸນາ","ກໍລະກົດ","ສິງຫາ","ກັນຍາ","ຕຸລາ","ພະຈິກ","ທັນວາ",""], - namesAbbr: ["ມັງກອນ","ກຸມພາ","ມີນາ","ເມສາ","ພຶດສະພາ","ມິຖຸນາ","ກໍລະກົດ","ສິງຫາ","ກັນຍາ","ຕຸລາ","ພະຈິກ","ທັນວາ",""] - }, - AM: ["ເຊົ້າ","ເຊົ້າ","ເຊົ້າ"], - PM: ["ແລງ","ແລງ","ແລງ"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm tt", - T: "HH:mm:ss", - f: "dd MMMM yyyy H:mm tt", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.lt-LT.js b/Web/Scripts/globalize/cultures/globalize.culture.lt-LT.js deleted file mode 100644 index e61c1c6..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.lt-LT.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Globalize Culture lt-LT - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "lt-LT", "default", { - name: "lt-LT", - englishName: "Lithuanian (Lithuania)", - nativeName: "lietuvių (Lietuva)", - language: "lt", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-begalybė", - positiveInfinity: "begalybė", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Lt" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sekmadienis","pirmadienis","antradienis","trečiadienis","ketvirtadienis","penktadienis","šeštadienis"], - namesAbbr: ["Sk","Pr","An","Tr","Kt","Pn","Št"], - namesShort: ["S","P","A","T","K","Pn","Š"] - }, - months: { - names: ["sausis","vasaris","kovas","balandis","gegužė","birželis","liepa","rugpjūtis","rugsėjis","spalis","lapkritis","gruodis",""], - namesAbbr: ["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rgp","Rgs","Spl","Lap","Grd",""] - }, - monthsGenitive: { - names: ["sausio","vasario","kovo","balandžio","gegužės","birželio","liepos","rugpjūčio","rugsėjo","spalio","lapkričio","gruodžio",""], - namesAbbr: ["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rgp","Rgs","Spl","Lap","Grd",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy.MM.dd", - D: "yyyy 'm.' MMMM d 'd.'", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'm.' MMMM d 'd.' HH:mm", - F: "yyyy 'm.' MMMM d 'd.' HH:mm:ss", - M: "MMMM d 'd.'", - Y: "yyyy 'm.' MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.lt.js b/Web/Scripts/globalize/cultures/globalize.culture.lt.js deleted file mode 100644 index 56aeb3b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.lt.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Globalize Culture lt - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "lt", "default", { - name: "lt", - englishName: "Lithuanian", - nativeName: "lietuvių", - language: "lt", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-begalybė", - positiveInfinity: "begalybė", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Lt" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sekmadienis","pirmadienis","antradienis","trečiadienis","ketvirtadienis","penktadienis","šeštadienis"], - namesAbbr: ["Sk","Pr","An","Tr","Kt","Pn","Št"], - namesShort: ["S","P","A","T","K","Pn","Š"] - }, - months: { - names: ["sausis","vasaris","kovas","balandis","gegužė","birželis","liepa","rugpjūtis","rugsėjis","spalis","lapkritis","gruodis",""], - namesAbbr: ["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rgp","Rgs","Spl","Lap","Grd",""] - }, - monthsGenitive: { - names: ["sausio","vasario","kovo","balandžio","gegužės","birželio","liepos","rugpjūčio","rugsėjo","spalio","lapkričio","gruodžio",""], - namesAbbr: ["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rgp","Rgs","Spl","Lap","Grd",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy.MM.dd", - D: "yyyy 'm.' MMMM d 'd.'", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'm.' MMMM d 'd.' HH:mm", - F: "yyyy 'm.' MMMM d 'd.' HH:mm:ss", - M: "MMMM d 'd.'", - Y: "yyyy 'm.' MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.lv-LV.js b/Web/Scripts/globalize/cultures/globalize.culture.lv-LV.js deleted file mode 100644 index 60319c4..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.lv-LV.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Globalize Culture lv-LV - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "lv-LV", "default", { - name: "lv-LV", - englishName: "Latvian (Latvia)", - nativeName: "latviešu (Latvija)", - language: "lv", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-bezgalība", - positiveInfinity: "bezgalība", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": " ", - ".": ",", - symbol: "Ls" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["svētdiena","pirmdiena","otrdiena","trešdiena","ceturtdiena","piektdiena","sestdiena"], - namesAbbr: ["sv","pr","ot","tr","ce","pk","se"], - namesShort: ["sv","pr","ot","tr","ce","pk","se"] - }, - months: { - names: ["janvāris","februāris","marts","aprīlis","maijs","jūnijs","jūlijs","augusts","septembris","oktobris","novembris","decembris",""], - namesAbbr: ["jan","feb","mar","apr","mai","jūn","jūl","aug","sep","okt","nov","dec",""] - }, - monthsGenitive: { - names: ["janvārī","februārī","martā","aprīlī","maijā","jūnijā","jūlijā","augustā","septembrī","oktobrī","novembrī","decembrī",""], - namesAbbr: ["jan","feb","mar","apr","mai","jūn","jūl","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy.MM.dd.", - D: "dddd, yyyy'. gada 'd. MMMM", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, yyyy'. gada 'd. MMMM H:mm", - F: "dddd, yyyy'. gada 'd. MMMM H:mm:ss", - M: "d. MMMM", - Y: "yyyy. MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.lv.js b/Web/Scripts/globalize/cultures/globalize.culture.lv.js deleted file mode 100644 index 1324959..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.lv.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Globalize Culture lv - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "lv", "default", { - name: "lv", - englishName: "Latvian", - nativeName: "latviešu", - language: "lv", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-bezgalība", - positiveInfinity: "bezgalība", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": " ", - ".": ",", - symbol: "Ls" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["svētdiena","pirmdiena","otrdiena","trešdiena","ceturtdiena","piektdiena","sestdiena"], - namesAbbr: ["sv","pr","ot","tr","ce","pk","se"], - namesShort: ["sv","pr","ot","tr","ce","pk","se"] - }, - months: { - names: ["janvāris","februāris","marts","aprīlis","maijs","jūnijs","jūlijs","augusts","septembris","oktobris","novembris","decembris",""], - namesAbbr: ["jan","feb","mar","apr","mai","jūn","jūl","aug","sep","okt","nov","dec",""] - }, - monthsGenitive: { - names: ["janvārī","februārī","martā","aprīlī","maijā","jūnijā","jūlijā","augustā","septembrī","oktobrī","novembrī","decembrī",""], - namesAbbr: ["jan","feb","mar","apr","mai","jūn","jūl","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy.MM.dd.", - D: "dddd, yyyy'. gada 'd. MMMM", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, yyyy'. gada 'd. MMMM H:mm", - F: "dddd, yyyy'. gada 'd. MMMM H:mm:ss", - M: "d. MMMM", - Y: "yyyy. MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.mi-NZ.js b/Web/Scripts/globalize/cultures/globalize.culture.mi-NZ.js deleted file mode 100644 index e8498a2..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.mi-NZ.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture mi-NZ - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "mi-NZ", "default", { - name: "mi-NZ", - englishName: "Maori (New Zealand)", - nativeName: "Reo Māori (Aotearoa)", - language: "mi", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Rātapu","Rāhina","Rātū","Rāapa","Rāpare","Rāmere","Rāhoroi"], - namesAbbr: ["Ta","Hi","Tū","Apa","Pa","Me","Ho"], - namesShort: ["Ta","Hi","Tū","Aa","Pa","Me","Ho"] - }, - months: { - names: ["Kohi-tātea","Hui-tanguru","Poutū-te-rangi","Paenga-whāwhā","Haratua","Pipiri","Hōngongoi","Here-turi-kōkā","Mahuru","Whiringa-ā-nuku","Whiringa-ā-rangi","Hakihea",""], - namesAbbr: ["Kohi","Hui","Pou","Pae","Hara","Pipi","Hōngo","Here","Mahu","Nuku","Rangi","Haki",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd MMMM, yyyy", - f: "dddd, dd MMMM, yyyy h:mm tt", - F: "dddd, dd MMMM, yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM, yy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.mi.js b/Web/Scripts/globalize/cultures/globalize.culture.mi.js deleted file mode 100644 index 54e9bbb..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.mi.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture mi - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "mi", "default", { - name: "mi", - englishName: "Maori", - nativeName: "Reo Māori", - language: "mi", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Rātapu","Rāhina","Rātū","Rāapa","Rāpare","Rāmere","Rāhoroi"], - namesAbbr: ["Ta","Hi","Tū","Apa","Pa","Me","Ho"], - namesShort: ["Ta","Hi","Tū","Aa","Pa","Me","Ho"] - }, - months: { - names: ["Kohi-tātea","Hui-tanguru","Poutū-te-rangi","Paenga-whāwhā","Haratua","Pipiri","Hōngongoi","Here-turi-kōkā","Mahuru","Whiringa-ā-nuku","Whiringa-ā-rangi","Hakihea",""], - namesAbbr: ["Kohi","Hui","Pou","Pae","Hara","Pipi","Hōngo","Here","Mahu","Nuku","Rangi","Haki",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd MMMM, yyyy", - f: "dddd, dd MMMM, yyyy h:mm tt", - F: "dddd, dd MMMM, yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM, yy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.mk-MK.js b/Web/Scripts/globalize/cultures/globalize.culture.mk-MK.js deleted file mode 100644 index d2f9c04..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.mk-MK.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture mk-MK - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "mk-MK", "default", { - name: "mk-MK", - englishName: "Macedonian (Former Yugoslav Republic of Macedonia)", - nativeName: "македонски јазик (Македонија)", - language: "mk", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "ден." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недела","понеделник","вторник","среда","четврток","петок","сабота"], - namesAbbr: ["нед","пон","втр","срд","чет","пет","саб"], - namesShort: ["не","по","вт","ср","че","пе","са"] - }, - months: { - names: ["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември",""], - namesAbbr: ["јан","фев","мар","апр","мај","јун","јул","авг","сеп","окт","ное","дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "dddd, dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, dd MMMM yyyy HH:mm", - F: "dddd, dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.mk.js b/Web/Scripts/globalize/cultures/globalize.culture.mk.js deleted file mode 100644 index 0fdc048..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.mk.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture mk - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "mk", "default", { - name: "mk", - englishName: "Macedonian (FYROM)", - nativeName: "македонски јазик", - language: "mk", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "ден." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недела","понеделник","вторник","среда","четврток","петок","сабота"], - namesAbbr: ["нед","пон","втр","срд","чет","пет","саб"], - namesShort: ["не","по","вт","ср","че","пе","са"] - }, - months: { - names: ["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември",""], - namesAbbr: ["јан","фев","мар","апр","мај","јун","јул","авг","сеп","окт","ное","дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "dddd, dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, dd MMMM yyyy HH:mm", - F: "dddd, dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ml-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.ml-IN.js deleted file mode 100644 index 1c43494..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ml-IN.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture ml-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ml-IN", "default", { - name: "ml-IN", - englishName: "Malayalam (India)", - nativeName: "മലയാളം (ഭാരതം)", - language: "ml", - numberFormat: { - groupSizes: [3,2], - percent: { - pattern: ["-%n","%n"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ക" - } - }, - calendars: { - standard: { - "/": "-", - ":": ".", - firstDay: 1, - days: { - names: ["ഞായറാഴ്ച","തിങ്കളാഴ്ച","ചൊവ്വാഴ്ച","ബുധനാഴ്ച","വ്യാഴാഴ്ച","വെള്ളിയാഴ്ച","ശനിയാഴ്ച"], - namesAbbr: ["ഞായർ.","തിങ്കൾ.","ചൊവ്വ.","ബുധൻ.","വ്യാഴം.","വെള്ളി.","ശനി."], - namesShort: ["ഞ","ത","ച","ബ","വ","വെ","ശ"] - }, - months: { - names: ["ജനുവരി","ഫെബ്റുവരി","മാറ്ച്ച്","ഏപ്റില്","മെയ്","ജൂണ്","ജൂലൈ","ഓഗസ്ററ്","സെപ്ററംബറ്","ഒക്ടോബറ്","നവംബറ്","ഡിസംബറ്",""], - namesAbbr: ["ജനുവരി","ഫെബ്റുവരി","മാറ്ച്ച്","ഏപ്റില്","മെയ്","ജൂണ്","ജൂലൈ","ഓഗസ്ററ്","സെപ്ററംബറ്","ഒക്ടോബറ്","നവംബറ്","ഡിസംബറ്",""] - }, - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH.mm", - T: "HH.mm.ss", - f: "dd MMMM yyyy HH.mm", - F: "dd MMMM yyyy HH.mm.ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ml.js b/Web/Scripts/globalize/cultures/globalize.culture.ml.js deleted file mode 100644 index b6b89e8..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ml.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture ml - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ml", "default", { - name: "ml", - englishName: "Malayalam", - nativeName: "മലയാളം", - language: "ml", - numberFormat: { - groupSizes: [3,2], - percent: { - pattern: ["-%n","%n"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ക" - } - }, - calendars: { - standard: { - "/": "-", - ":": ".", - firstDay: 1, - days: { - names: ["ഞായറാഴ്ച","തിങ്കളാഴ്ച","ചൊവ്വാഴ്ച","ബുധനാഴ്ച","വ്യാഴാഴ്ച","വെള്ളിയാഴ്ച","ശനിയാഴ്ച"], - namesAbbr: ["ഞായർ.","തിങ്കൾ.","ചൊവ്വ.","ബുധൻ.","വ്യാഴം.","വെള്ളി.","ശനി."], - namesShort: ["ഞ","ത","ച","ബ","വ","വെ","ശ"] - }, - months: { - names: ["ജനുവരി","ഫെബ്റുവരി","മാറ്ച്ച്","ഏപ്റില്","മെയ്","ജൂണ്","ജൂലൈ","ഓഗസ്ററ്","സെപ്ററംബറ്","ഒക്ടോബറ്","നവംബറ്","ഡിസംബറ്",""], - namesAbbr: ["ജനുവരി","ഫെബ്റുവരി","മാറ്ച്ച്","ഏപ്റില്","മെയ്","ജൂണ്","ജൂലൈ","ഓഗസ്ററ്","സെപ്ററംബറ്","ഒക്ടോബറ്","നവംബറ്","ഡിസംബറ്",""] - }, - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH.mm", - T: "HH.mm.ss", - f: "dd MMMM yyyy HH.mm", - F: "dd MMMM yyyy HH.mm.ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.mn-Cyrl.js b/Web/Scripts/globalize/cultures/globalize.culture.mn-Cyrl.js deleted file mode 100644 index dd07a23..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.mn-Cyrl.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture mn-Cyrl - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "mn-Cyrl", "default", { - name: "mn-Cyrl", - englishName: "Mongolian (Cyrillic)", - nativeName: "Монгол хэл", - language: "mn-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "₮" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Ням","Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба"], - namesAbbr: ["Ня","Да","Мя","Лх","Пү","Ба","Бя"], - namesShort: ["Ня","Да","Мя","Лх","Пү","Ба","Бя"] - }, - months: { - names: ["1 дүгээр сар","2 дугаар сар","3 дугаар сар","4 дүгээр сар","5 дугаар сар","6 дугаар сар","7 дугаар сар","8 дугаар сар","9 дүгээр сар","10 дугаар сар","11 дүгээр сар","12 дугаар сар",""], - namesAbbr: ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII",""] - }, - monthsGenitive: { - names: ["1 дүгээр сарын","2 дугаар сарын","3 дугаар сарын","4 дүгээр сарын","5 дугаар сарын","6 дугаар сарын","7 дугаар сарын","8 дугаар сарын","9 дүгээр сарын","10 дугаар сарын","11 дүгээр сарын","12 дугаар сарын",""], - namesAbbr: ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII",""] - }, - AM: null, - PM: null, - patterns: { - d: "yy.MM.dd", - D: "yyyy 'оны' MMMM d", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'оны' MMMM d H:mm", - F: "yyyy 'оны' MMMM d H:mm:ss", - M: "d MMMM", - Y: "yyyy 'он' MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.mn-MN.js b/Web/Scripts/globalize/cultures/globalize.culture.mn-MN.js deleted file mode 100644 index 0f0a8a3..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.mn-MN.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture mn-MN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "mn-MN", "default", { - name: "mn-MN", - englishName: "Mongolian (Cyrillic, Mongolia)", - nativeName: "Монгол хэл (Монгол улс)", - language: "mn-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "₮" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Ням","Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба"], - namesAbbr: ["Ня","Да","Мя","Лх","Пү","Ба","Бя"], - namesShort: ["Ня","Да","Мя","Лх","Пү","Ба","Бя"] - }, - months: { - names: ["1 дүгээр сар","2 дугаар сар","3 дугаар сар","4 дүгээр сар","5 дугаар сар","6 дугаар сар","7 дугаар сар","8 дугаар сар","9 дүгээр сар","10 дугаар сар","11 дүгээр сар","12 дугаар сар",""], - namesAbbr: ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII",""] - }, - monthsGenitive: { - names: ["1 дүгээр сарын","2 дугаар сарын","3 дугаар сарын","4 дүгээр сарын","5 дугаар сарын","6 дугаар сарын","7 дугаар сарын","8 дугаар сарын","9 дүгээр сарын","10 дугаар сарын","11 дүгээр сарын","12 дугаар сарын",""], - namesAbbr: ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII",""] - }, - AM: null, - PM: null, - patterns: { - d: "yy.MM.dd", - D: "yyyy 'оны' MMMM d", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'оны' MMMM d H:mm", - F: "yyyy 'оны' MMMM d H:mm:ss", - M: "d MMMM", - Y: "yyyy 'он' MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.mn-Mong-CN.js b/Web/Scripts/globalize/cultures/globalize.culture.mn-Mong-CN.js deleted file mode 100644 index 02f2e0b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.mn-Mong-CN.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture mn-Mong-CN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "mn-Mong-CN", "default", { - name: "mn-Mong-CN", - englishName: "Mongolian (Traditional Mongolian, PRC)", - nativeName: "ᠮᠤᠨᠭᠭᠤᠯ ᠬᠡᠯᠡ (ᠪᠦᠭᠦᠳᠡ ᠨᠠᠢᠷᠠᠮᠳᠠᠬᠤ ᠳᠤᠮᠳᠠᠳᠤ ᠠᠷᠠᠳ ᠣᠯᠣᠰ)", - language: "mn-Mong", - numberFormat: { - groupSizes: [3,0], - "NaN": "ᠲᠤᠭᠠᠠ ᠪᠤᠰᠤ", - negativeInfinity: "ᠰᠦᠬᠡᠷᠬᠦ ᠬᠢᠵᠠᠭᠠᠷᠭᠦᠢ ᠶᠡᠬᠡ", - positiveInfinity: "ᠡᠶ᠋ᠡᠷᠬᠦ ᠬᠢᠵᠠᠭᠠᠷᠭᠦᠢ ᠶᠠᠬᠡ", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["$-n","$n"], - groupSizes: [3,0], - symbol: "¥" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠡᠳᠦᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠨᠢᠭᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠬᠣᠶᠠᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠭᠤᠷᠪᠠᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠳᠥᠷᠪᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠲᠠᠪᠤᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠵᠢᠷᠭᠤᠭᠠᠨ"], - namesAbbr: ["ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠡᠳᠦᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠨᠢᠭᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠬᠣᠶᠠᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠭᠤᠷᠪᠠᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠳᠥᠷᠪᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠲᠠᠪᠤᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠵᠢᠷᠭᠤᠭᠠᠨ"], - namesShort: ["ᠡ\u200d","ᠨᠢ\u200d","ᠬᠣ\u200d","ᠭᠤ\u200d","ᠳᠥ\u200d","ᠲᠠ\u200d","ᠵᠢ\u200d"] - }, - months: { - names: ["ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠭᠤᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠦᠷᠪᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠠᠪᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠵᠢᠷᠭᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠤᠯᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠨᠠᠢᠮᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠶᠢᠰᠦᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ",""], - namesAbbr: ["ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠭᠤᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠦᠷᠪᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠠᠪᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠵᠢᠷᠭᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠤᠯᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠨᠠᠢᠮᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠶᠢᠰᠦᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ",""] - }, - AM: null, - PM: null, - eras: [{"name":"ᠣᠨ ᠲᠣᠭᠠᠯᠠᠯ ᠤᠨ","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'ᠣᠨ ᠤ᠋' M'ᠰᠠᠷ᠎ᠠ \u202fᠢᠢᠨ 'd' ᠤ᠋ ᠡᠳᠦᠷ'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'ᠣᠨ ᠤ᠋' M'ᠰᠠᠷ᠎ᠠ \u202fᠢᠢᠨ 'd' ᠤ᠋ ᠡᠳᠦᠷ' H:mm", - F: "yyyy'ᠣᠨ ᠤ᠋' M'ᠰᠠᠷ᠎ᠠ \u202fᠢᠢᠨ 'd' ᠤ᠋ ᠡᠳᠦᠷ' H:mm:ss", - M: "M'ᠰᠠᠷ᠎ᠠ' d'ᠡᠳᠦᠷ'", - Y: "yyyy'ᠣᠨ' M'ᠰᠠᠷ᠎ᠠ'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.mn-Mong.js b/Web/Scripts/globalize/cultures/globalize.culture.mn-Mong.js deleted file mode 100644 index 7f21608..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.mn-Mong.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture mn-Mong - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "mn-Mong", "default", { - name: "mn-Mong", - englishName: "Mongolian (Traditional Mongolian)", - nativeName: "ᠮᠤᠨᠭᠭᠤᠯ ᠬᠡᠯᠡ", - language: "mn-Mong", - numberFormat: { - groupSizes: [3,0], - "NaN": "ᠲᠤᠭᠠᠠ ᠪᠤᠰᠤ", - negativeInfinity: "ᠰᠦᠬᠡᠷᠬᠦ ᠬᠢᠵᠠᠭᠠᠷᠭᠦᠢ ᠶᠡᠬᠡ", - positiveInfinity: "ᠡᠶ᠋ᠡᠷᠬᠦ ᠬᠢᠵᠠᠭᠠᠷᠭᠦᠢ ᠶᠠᠬᠡ", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["$-n","$n"], - groupSizes: [3,0], - symbol: "¥" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠡᠳᠦᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠨᠢᠭᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠬᠣᠶᠠᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠭᠤᠷᠪᠠᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠳᠥᠷᠪᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠲᠠᠪᠤᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠵᠢᠷᠭᠤᠭᠠᠨ"], - namesAbbr: ["ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠡᠳᠦᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠨᠢᠭᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠬᠣᠶᠠᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠭᠤᠷᠪᠠᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠳᠥᠷᠪᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠲᠠᠪᠤᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠵᠢᠷᠭᠤᠭᠠᠨ"], - namesShort: ["ᠡ\u200d","ᠨᠢ\u200d","ᠬᠣ\u200d","ᠭᠤ\u200d","ᠳᠥ\u200d","ᠲᠠ\u200d","ᠵᠢ\u200d"] - }, - months: { - names: ["ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠭᠤᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠦᠷᠪᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠠᠪᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠵᠢᠷᠭᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠤᠯᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠨᠠᠢᠮᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠶᠢᠰᠦᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ",""], - namesAbbr: ["ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠭᠤᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠦᠷᠪᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠠᠪᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠵᠢᠷᠭᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠤᠯᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠨᠠᠢᠮᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠶᠢᠰᠦᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ",""] - }, - AM: null, - PM: null, - eras: [{"name":"ᠣᠨ ᠲᠣᠭᠠᠯᠠᠯ ᠤᠨ","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'ᠣᠨ ᠤ᠋' M'ᠰᠠᠷ᠎ᠠ \u202fᠢᠢᠨ 'd' ᠤ᠋ ᠡᠳᠦᠷ'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'ᠣᠨ ᠤ᠋' M'ᠰᠠᠷ᠎ᠠ \u202fᠢᠢᠨ 'd' ᠤ᠋ ᠡᠳᠦᠷ' H:mm", - F: "yyyy'ᠣᠨ ᠤ᠋' M'ᠰᠠᠷ᠎ᠠ \u202fᠢᠢᠨ 'd' ᠤ᠋ ᠡᠳᠦᠷ' H:mm:ss", - M: "M'ᠰᠠᠷ᠎ᠠ' d'ᠡᠳᠦᠷ'", - Y: "yyyy'ᠣᠨ' M'ᠰᠠᠷ᠎ᠠ'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.mn.js b/Web/Scripts/globalize/cultures/globalize.culture.mn.js deleted file mode 100644 index 5d43c23..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.mn.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture mn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "mn", "default", { - name: "mn", - englishName: "Mongolian", - nativeName: "Монгол хэл", - language: "mn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "₮" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Ням","Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба"], - namesAbbr: ["Ня","Да","Мя","Лх","Пү","Ба","Бя"], - namesShort: ["Ня","Да","Мя","Лх","Пү","Ба","Бя"] - }, - months: { - names: ["1 дүгээр сар","2 дугаар сар","3 дугаар сар","4 дүгээр сар","5 дугаар сар","6 дугаар сар","7 дугаар сар","8 дугаар сар","9 дүгээр сар","10 дугаар сар","11 дүгээр сар","12 дугаар сар",""], - namesAbbr: ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII",""] - }, - monthsGenitive: { - names: ["1 дүгээр сарын","2 дугаар сарын","3 дугаар сарын","4 дүгээр сарын","5 дугаар сарын","6 дугаар сарын","7 дугаар сарын","8 дугаар сарын","9 дүгээр сарын","10 дугаар сарын","11 дүгээр сарын","12 дугаар сарын",""], - namesAbbr: ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII",""] - }, - AM: null, - PM: null, - patterns: { - d: "yy.MM.dd", - D: "yyyy 'оны' MMMM d", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'оны' MMMM d H:mm", - F: "yyyy 'оны' MMMM d H:mm:ss", - M: "d MMMM", - Y: "yyyy 'он' MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.moh-CA.js b/Web/Scripts/globalize/cultures/globalize.culture.moh-CA.js deleted file mode 100644 index 98a5a2e..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.moh-CA.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Globalize Culture moh-CA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "moh-CA", "default", { - name: "moh-CA", - englishName: "Mohawk (Mohawk)", - nativeName: "Kanien'kéha", - language: "moh", - numberFormat: { - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["Awentatokentì:ke","Awentataón'ke","Ratironhia'kehronòn:ke","Soséhne","Okaristiiáhne","Ronwaia'tanentaktonhne","Entákta"], - namesShort: ["S","M","T","W","T","F","S"] - }, - months: { - names: ["Tsothohrkó:Wa","Enniska","Enniskó:Wa","Onerahtókha","Onerahtohkó:Wa","Ohiari:Ha","Ohiarihkó:Wa","Seskéha","Seskehkó:Wa","Kenténha","Kentenhkó:Wa","Tsothóhrha",""] - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.moh.js b/Web/Scripts/globalize/cultures/globalize.culture.moh.js deleted file mode 100644 index 2bd054c..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.moh.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Globalize Culture moh - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "moh", "default", { - name: "moh", - englishName: "Mohawk", - nativeName: "Kanien'kéha", - language: "moh", - numberFormat: { - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["Awentatokentì:ke","Awentataón'ke","Ratironhia'kehronòn:ke","Soséhne","Okaristiiáhne","Ronwaia'tanentaktonhne","Entákta"], - namesShort: ["S","M","T","W","T","F","S"] - }, - months: { - names: ["Tsothohrkó:Wa","Enniska","Enniskó:Wa","Onerahtókha","Onerahtohkó:Wa","Ohiari:Ha","Ohiarihkó:Wa","Seskéha","Seskehkó:Wa","Kenténha","Kentenhkó:Wa","Tsothóhrha",""] - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.mr-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.mr-IN.js deleted file mode 100644 index cc703a2..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.mr-IN.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture mr-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "mr-IN", "default", { - name: "mr-IN", - englishName: "Marathi (India)", - nativeName: "मराठी (भारत)", - language: "mr", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["रविवार","सोमवार","मंगळवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"], - namesAbbr: ["रवि.","सोम.","मंगळ.","बुध.","गुरु.","शुक्र.","शनि."], - namesShort: ["र","स","म","ब","ग","श","श"] - }, - months: { - names: ["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोव्हेंबर","डिसेंबर",""], - namesAbbr: ["जाने.","फेब्रु.","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टें.","ऑक्टो.","नोव्हें.","डिसें.",""] - }, - AM: ["म.पू.","म.पू.","म.पू."], - PM: ["म.नं.","म.नं.","म.नं."], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.mr.js b/Web/Scripts/globalize/cultures/globalize.culture.mr.js deleted file mode 100644 index 2d275be..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.mr.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture mr - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "mr", "default", { - name: "mr", - englishName: "Marathi", - nativeName: "मराठी", - language: "mr", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["रविवार","सोमवार","मंगळवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"], - namesAbbr: ["रवि.","सोम.","मंगळ.","बुध.","गुरु.","शुक्र.","शनि."], - namesShort: ["र","स","म","ब","ग","श","श"] - }, - months: { - names: ["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोव्हेंबर","डिसेंबर",""], - namesAbbr: ["जाने.","फेब्रु.","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टें.","ऑक्टो.","नोव्हें.","डिसें.",""] - }, - AM: ["म.पू.","म.पू.","म.पू."], - PM: ["म.नं.","म.नं.","म.नं."], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ms-BN.js b/Web/Scripts/globalize/cultures/globalize.culture.ms-BN.js deleted file mode 100644 index f6b6229..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ms-BN.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Globalize Culture ms-BN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ms-BN", "default", { - name: "ms-BN", - englishName: "Malay (Brunei Darussalam)", - nativeName: "Bahasa Melayu (Brunei Darussalam)", - language: "ms", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - decimals: 0, - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"], - namesAbbr: ["Ahad","Isnin","Sel","Rabu","Khamis","Jumaat","Sabtu"], - namesShort: ["A","I","S","R","K","J","S"] - }, - months: { - names: ["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember",""], - namesAbbr: ["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogos","Sept","Okt","Nov","Dis",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM yyyy H:mm", - F: "dd MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ms-MY.js b/Web/Scripts/globalize/cultures/globalize.culture.ms-MY.js deleted file mode 100644 index 7a55c38..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ms-MY.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture ms-MY - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ms-MY", "default", { - name: "ms-MY", - englishName: "Malay (Malaysia)", - nativeName: "Bahasa Melayu (Malaysia)", - language: "ms", - numberFormat: { - currency: { - decimals: 0, - symbol: "RM" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"], - namesAbbr: ["Ahad","Isnin","Sel","Rabu","Khamis","Jumaat","Sabtu"], - namesShort: ["A","I","S","R","K","J","S"] - }, - months: { - names: ["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember",""], - namesAbbr: ["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogos","Sept","Okt","Nov","Dis",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM yyyy H:mm", - F: "dd MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ms.js b/Web/Scripts/globalize/cultures/globalize.culture.ms.js deleted file mode 100644 index 9a8ed21..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ms.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture ms - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ms", "default", { - name: "ms", - englishName: "Malay", - nativeName: "Bahasa Melayu", - language: "ms", - numberFormat: { - currency: { - decimals: 0, - symbol: "RM" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"], - namesAbbr: ["Ahad","Isnin","Sel","Rabu","Khamis","Jumaat","Sabtu"], - namesShort: ["A","I","S","R","K","J","S"] - }, - months: { - names: ["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember",""], - namesAbbr: ["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogos","Sept","Okt","Nov","Dis",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM yyyy H:mm", - F: "dd MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.mt-MT.js b/Web/Scripts/globalize/cultures/globalize.culture.mt-MT.js deleted file mode 100644 index 639c902..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.mt-MT.js +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Globalize Culture mt-MT - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "mt-MT", "default", { - name: "mt-MT", - englishName: "Maltese (Malta)", - nativeName: "Malti (Malta)", - language: "mt", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Il-Ħadd","It-Tnejn","It-Tlieta","L-Erbgħa","Il-Ħamis","Il-Ġimgħa","Is-Sibt"], - namesAbbr: ["Ħad","Tne","Tli","Erb","Ħam","Ġim","Sib"], - namesShort: ["I","I","I","L","I","I","I"] - }, - months: { - names: ["Jannar","Frar","Marzu","April","Mejju","Ġunju","Lulju","Awissu","Settembru","Ottubru","Novembru","Diċembru",""], - namesAbbr: ["Jan","Fra","Mar","Apr","Mej","Ġun","Lul","Awi","Set","Ott","Nov","Diċ",""] - }, - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d' ta\\' 'MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' ta\\' 'MMMM yyyy HH:mm", - F: "dddd, d' ta\\' 'MMMM yyyy HH:mm:ss", - M: "d' ta\\' 'MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.mt.js b/Web/Scripts/globalize/cultures/globalize.culture.mt.js deleted file mode 100644 index cde5105..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.mt.js +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Globalize Culture mt - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "mt", "default", { - name: "mt", - englishName: "Maltese", - nativeName: "Malti", - language: "mt", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Il-Ħadd","It-Tnejn","It-Tlieta","L-Erbgħa","Il-Ħamis","Il-Ġimgħa","Is-Sibt"], - namesAbbr: ["Ħad","Tne","Tli","Erb","Ħam","Ġim","Sib"], - namesShort: ["I","I","I","L","I","I","I"] - }, - months: { - names: ["Jannar","Frar","Marzu","April","Mejju","Ġunju","Lulju","Awissu","Settembru","Ottubru","Novembru","Diċembru",""], - namesAbbr: ["Jan","Fra","Mar","Apr","Mej","Ġun","Lul","Awi","Set","Ott","Nov","Diċ",""] - }, - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d' ta\\' 'MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' ta\\' 'MMMM yyyy HH:mm", - F: "dddd, d' ta\\' 'MMMM yyyy HH:mm:ss", - M: "d' ta\\' 'MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.nb-NO.js b/Web/Scripts/globalize/cultures/globalize.culture.nb-NO.js deleted file mode 100644 index 27c7442..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.nb-NO.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture nb-NO - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "nb-NO", "default", { - name: "nb-NO", - englishName: "Norwegian, Bokmål (Norway)", - nativeName: "norsk, bokmål (Norge)", - language: "nb", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"], - namesAbbr: ["sø","ma","ti","on","to","fr","lø"], - namesShort: ["sø","ma","ti","on","to","fr","lø"] - }, - months: { - names: ["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.nb.js b/Web/Scripts/globalize/cultures/globalize.culture.nb.js deleted file mode 100644 index 8b959ed..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.nb.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture nb - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "nb", "default", { - name: "nb", - englishName: "Norwegian (Bokmål)", - nativeName: "norsk (bokmål)", - language: "nb", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"], - namesAbbr: ["sø","ma","ti","on","to","fr","lø"], - namesShort: ["sø","ma","ti","on","to","fr","lø"] - }, - months: { - names: ["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ne-NP.js b/Web/Scripts/globalize/cultures/globalize.culture.ne-NP.js deleted file mode 100644 index e353fba..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ne-NP.js +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Globalize Culture ne-NP - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ne-NP", "default", { - name: "ne-NP", - englishName: "Nepali (Nepal)", - nativeName: "नेपाली (नेपाल)", - language: "ne", - numberFormat: { - groupSizes: [3,2], - "NaN": "nan", - negativeInfinity: "-infinity", - positiveInfinity: "infinity", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,2] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "रु" - } - }, - calendars: { - standard: { - days: { - names: ["आइतवार","सोमवार","मङ्गलवार","बुधवार","बिहीवार","शुक्रवार","शनिवार"], - namesAbbr: ["आइत","सोम","मङ्गल","बुध","बिही","शुक्र","शनि"], - namesShort: ["आ","सो","म","बु","बि","शु","श"] - }, - months: { - names: ["जनवरी","फेब्रुअरी","मार्च","अप्रिल","मे","जून","जुलाई","अगस्त","सेप्टेम्बर","अक्टोबर","नोभेम्बर","डिसेम्बर",""], - namesAbbr: ["जन","फेब","मार्च","अप्रिल","मे","जून","जुलाई","अग","सेप्ट","अक्ट","नोभ","डिस",""] - }, - AM: ["विहानी","विहानी","विहानी"], - PM: ["बेलुकी","बेलुकी","बेलुकी"], - eras: [{"name":"a.d.","start":null,"offset":0}], - patterns: { - Y: "MMMM,yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ne.js b/Web/Scripts/globalize/cultures/globalize.culture.ne.js deleted file mode 100644 index c36a960..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ne.js +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Globalize Culture ne - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ne", "default", { - name: "ne", - englishName: "Nepali", - nativeName: "नेपाली", - language: "ne", - numberFormat: { - groupSizes: [3,2], - "NaN": "nan", - negativeInfinity: "-infinity", - positiveInfinity: "infinity", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,2] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "रु" - } - }, - calendars: { - standard: { - days: { - names: ["आइतवार","सोमवार","मङ्गलवार","बुधवार","बिहीवार","शुक्रवार","शनिवार"], - namesAbbr: ["आइत","सोम","मङ्गल","बुध","बिही","शुक्र","शनि"], - namesShort: ["आ","सो","म","बु","बि","शु","श"] - }, - months: { - names: ["जनवरी","फेब्रुअरी","मार्च","अप्रिल","मे","जून","जुलाई","अगस्त","सेप्टेम्बर","अक्टोबर","नोभेम्बर","डिसेम्बर",""], - namesAbbr: ["जन","फेब","मार्च","अप्रिल","मे","जून","जुलाई","अग","सेप्ट","अक्ट","नोभ","डिस",""] - }, - AM: ["विहानी","विहानी","विहानी"], - PM: ["बेलुकी","बेलुकी","बेलुकी"], - eras: [{"name":"a.d.","start":null,"offset":0}], - patterns: { - Y: "MMMM,yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.nl-BE.js b/Web/Scripts/globalize/cultures/globalize.culture.nl-BE.js deleted file mode 100644 index 39417db..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.nl-BE.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture nl-BE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "nl-BE", "default", { - name: "nl-BE", - englishName: "Dutch (Belgium)", - nativeName: "Nederlands (België)", - language: "nl", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NaN (Niet-een-getal)", - negativeInfinity: "-oneindig", - positiveInfinity: "oneindig", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"], - namesAbbr: ["zo","ma","di","wo","do","vr","za"], - namesShort: ["zo","ma","di","wo","do","vr","za"] - }, - months: { - names: ["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd d MMMM yyyy H:mm", - F: "dddd d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.nl-NL.js b/Web/Scripts/globalize/cultures/globalize.culture.nl-NL.js deleted file mode 100644 index 39994a6..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.nl-NL.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture nl-NL - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "nl-NL", "default", { - name: "nl-NL", - englishName: "Dutch (Netherlands)", - nativeName: "Nederlands (Nederland)", - language: "nl", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"], - namesAbbr: ["zo","ma","di","wo","do","vr","za"], - namesShort: ["zo","ma","di","wo","do","vr","za"] - }, - months: { - names: ["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d-M-yyyy", - D: "dddd d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd d MMMM yyyy H:mm", - F: "dddd d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.nl.js b/Web/Scripts/globalize/cultures/globalize.culture.nl.js deleted file mode 100644 index cb58ea8..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.nl.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture nl - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "nl", "default", { - name: "nl", - englishName: "Dutch", - nativeName: "Nederlands", - language: "nl", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"], - namesAbbr: ["zo","ma","di","wo","do","vr","za"], - namesShort: ["zo","ma","di","wo","do","vr","za"] - }, - months: { - names: ["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d-M-yyyy", - D: "dddd d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd d MMMM yyyy H:mm", - F: "dddd d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.nn-NO.js b/Web/Scripts/globalize/cultures/globalize.culture.nn-NO.js deleted file mode 100644 index e50b1e5..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.nn-NO.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture nn-NO - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "nn-NO", "default", { - name: "nn-NO", - englishName: "Norwegian, Nynorsk (Norway)", - nativeName: "norsk, nynorsk (Noreg)", - language: "nn", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["søndag","måndag","tysdag","onsdag","torsdag","fredag","laurdag"], - namesAbbr: ["sø","må","ty","on","to","fr","la"], - namesShort: ["sø","må","ty","on","to","fr","la"] - }, - months: { - names: ["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.nn.js b/Web/Scripts/globalize/cultures/globalize.culture.nn.js deleted file mode 100644 index 7f5fa46..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.nn.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture nn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "nn", "default", { - name: "nn", - englishName: "Norwegian (Nynorsk)", - nativeName: "norsk (nynorsk)", - language: "nn", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["søndag","måndag","tysdag","onsdag","torsdag","fredag","laurdag"], - namesAbbr: ["sø","må","ty","on","to","fr","la"], - namesShort: ["sø","må","ty","on","to","fr","la"] - }, - months: { - names: ["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.no.js b/Web/Scripts/globalize/cultures/globalize.culture.no.js deleted file mode 100644 index 5f38c71..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.no.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture no - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "no", "default", { - name: "no", - englishName: "Norwegian", - nativeName: "norsk", - language: "no", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"], - namesAbbr: ["sø","ma","ti","on","to","fr","lø"], - namesShort: ["sø","ma","ti","on","to","fr","lø"] - }, - months: { - names: ["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.nso-ZA.js b/Web/Scripts/globalize/cultures/globalize.culture.nso-ZA.js deleted file mode 100644 index d334ee0..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.nso-ZA.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture nso-ZA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "nso-ZA", "default", { - name: "nso-ZA", - englishName: "Sesotho sa Leboa (South Africa)", - nativeName: "Sesotho sa Leboa (Afrika Borwa)", - language: "nso", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["Lamorena","Mošupologo","Labobedi","Laboraro","Labone","Labohlano","Mokibelo"], - namesAbbr: ["Lam","Moš","Lbb","Lbr","Lbn","Lbh","Mok"], - namesShort: ["L","M","L","L","L","L","M"] - }, - months: { - names: ["Pherekgong","Hlakola","Mopitlo","Moranang","Mosegamanye","Ngoatobošego","Phuphu","Phato","Lewedi","Diphalana","Dibatsela","Manthole",""], - namesAbbr: ["Pher","Hlak","Mop","Mor","Mos","Ngwat","Phup","Phat","Lew","Dip","Dib","Man",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.nso.js b/Web/Scripts/globalize/cultures/globalize.culture.nso.js deleted file mode 100644 index 9933d40..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.nso.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture nso - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "nso", "default", { - name: "nso", - englishName: "Sesotho sa Leboa", - nativeName: "Sesotho sa Leboa", - language: "nso", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["Lamorena","Mošupologo","Labobedi","Laboraro","Labone","Labohlano","Mokibelo"], - namesAbbr: ["Lam","Moš","Lbb","Lbr","Lbn","Lbh","Mok"], - namesShort: ["L","M","L","L","L","L","M"] - }, - months: { - names: ["Pherekgong","Hlakola","Mopitlo","Moranang","Mosegamanye","Ngoatobošego","Phuphu","Phato","Lewedi","Diphalana","Dibatsela","Manthole",""], - namesAbbr: ["Pher","Hlak","Mop","Mor","Mos","Ngwat","Phup","Phat","Lew","Dip","Dib","Man",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.oc-FR.js b/Web/Scripts/globalize/cultures/globalize.culture.oc-FR.js deleted file mode 100644 index c175e7c..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.oc-FR.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Globalize Culture oc-FR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "oc-FR", "default", { - name: "oc-FR", - englishName: "Occitan (France)", - nativeName: "Occitan (França)", - language: "oc", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numeric", - negativeInfinity: "-Infinit", - positiveInfinity: "+Infinit", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimenge","diluns","dimars","dimècres","dijòus","divendres","dissabte"], - namesAbbr: ["dim.","lun.","mar.","mèc.","jòu.","ven.","sab."], - namesShort: ["di","lu","ma","mè","jò","ve","sa"] - }, - months: { - names: ["genier","febrier","març","abril","mai","junh","julh","agost","setembre","octobre","novembre","desembre",""], - namesAbbr: ["gen.","feb.","mar.","abr.","mai.","jun.","jul.","ag.","set.","oct.","nov.","des.",""] - }, - monthsGenitive: { - names: ["de genier","de febrier","de març","d'abril","de mai","de junh","de julh","d'agost","de setembre","d'octobre","de novembre","de desembre",""], - namesAbbr: ["gen.","feb.","mar.","abr.","mai.","jun.","jul.","ag.","set.","oct.","nov.","des.",""] - }, - AM: null, - PM: null, - eras: [{"name":"après Jèsus-Crist","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd,' lo 'd MMMM' de 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd,' lo 'd MMMM' de 'yyyy HH:mm", - F: "dddd,' lo 'd MMMM' de 'yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.oc.js b/Web/Scripts/globalize/cultures/globalize.culture.oc.js deleted file mode 100644 index 7547503..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.oc.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Globalize Culture oc - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "oc", "default", { - name: "oc", - englishName: "Occitan", - nativeName: "Occitan", - language: "oc", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numeric", - negativeInfinity: "-Infinit", - positiveInfinity: "+Infinit", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimenge","diluns","dimars","dimècres","dijòus","divendres","dissabte"], - namesAbbr: ["dim.","lun.","mar.","mèc.","jòu.","ven.","sab."], - namesShort: ["di","lu","ma","mè","jò","ve","sa"] - }, - months: { - names: ["genier","febrier","març","abril","mai","junh","julh","agost","setembre","octobre","novembre","desembre",""], - namesAbbr: ["gen.","feb.","mar.","abr.","mai.","jun.","jul.","ag.","set.","oct.","nov.","des.",""] - }, - monthsGenitive: { - names: ["de genier","de febrier","de març","d'abril","de mai","de junh","de julh","d'agost","de setembre","d'octobre","de novembre","de desembre",""], - namesAbbr: ["gen.","feb.","mar.","abr.","mai.","jun.","jul.","ag.","set.","oct.","nov.","des.",""] - }, - AM: null, - PM: null, - eras: [{"name":"après Jèsus-Crist","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd,' lo 'd MMMM' de 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd,' lo 'd MMMM' de 'yyyy HH:mm", - F: "dddd,' lo 'd MMMM' de 'yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.or-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.or-IN.js deleted file mode 100644 index 2da61a7..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.or-IN.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Globalize Culture or-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "or-IN", "default", { - name: "or-IN", - englishName: "Oriya (India)", - nativeName: "ଓଡ଼ିଆ (ଭାରତ)", - language: "or", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ଟ" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["ରବିବାର","ସୋମବାର","ମଙ୍ଗଳବାର","ବୁଧବାର","ଗୁରୁବାର","ଶୁକ୍ରବାର","ଶନିବାର"], - namesAbbr: ["ରବି.","ସୋମ.","ମଙ୍ଗଳ.","ବୁଧ.","ଗୁରୁ.","ଶୁକ୍ର.","ଶନି."], - namesShort: ["ର","ସୋ","ମ","ବୁ","ଗୁ","ଶୁ","ଶ"] - }, - months: { - names: ["ଜାନୁୟାରୀ","ଫ୍ରେବୃୟାରୀ","ମାର୍ଚ୍ଚ","ଏପ୍ରିଲ୍\u200c","ମେ","ଜୁନ୍\u200c","ଜୁଲାଇ","ଅଗଷ୍ଟ","ସେପ୍ଟେମ୍ବର","ଅକ୍ଟୋବର","ନଭେମ୍ବର","(ଡିସେମ୍ବର",""], - namesAbbr: ["ଜାନୁୟାରୀ","ଫ୍ରେବୃୟାରୀ","ମାର୍ଚ୍ଚ","ଏପ୍ରିଲ୍\u200c","ମେ","ଜୁନ୍\u200c","ଜୁଲାଇ","ଅଗଷ୍ଟ","ସେପ୍ଟେମ୍ବର","ଅକ୍ଟୋବର","ନଭେମ୍ବର","(ଡିସେମ୍ବର",""] - }, - eras: [{"name":"ଖ୍ରୀଷ୍ଟାବ୍ଦ","start":null,"offset":0}], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.or.js b/Web/Scripts/globalize/cultures/globalize.culture.or.js deleted file mode 100644 index 3ce2909..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.or.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Globalize Culture or - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "or", "default", { - name: "or", - englishName: "Oriya", - nativeName: "ଓଡ଼ିଆ", - language: "or", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ଟ" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["ରବିବାର","ସୋମବାର","ମଙ୍ଗଳବାର","ବୁଧବାର","ଗୁରୁବାର","ଶୁକ୍ରବାର","ଶନିବାର"], - namesAbbr: ["ରବି.","ସୋମ.","ମଙ୍ଗଳ.","ବୁଧ.","ଗୁରୁ.","ଶୁକ୍ର.","ଶନି."], - namesShort: ["ର","ସୋ","ମ","ବୁ","ଗୁ","ଶୁ","ଶ"] - }, - months: { - names: ["ଜାନୁୟାରୀ","ଫ୍ରେବୃୟାରୀ","ମାର୍ଚ୍ଚ","ଏପ୍ରିଲ୍\u200c","ମେ","ଜୁନ୍\u200c","ଜୁଲାଇ","ଅଗଷ୍ଟ","ସେପ୍ଟେମ୍ବର","ଅକ୍ଟୋବର","ନଭେମ୍ବର","(ଡିସେମ୍ବର",""], - namesAbbr: ["ଜାନୁୟାରୀ","ଫ୍ରେବୃୟାରୀ","ମାର୍ଚ୍ଚ","ଏପ୍ରିଲ୍\u200c","ମେ","ଜୁନ୍\u200c","ଜୁଲାଇ","ଅଗଷ୍ଟ","ସେପ୍ଟେମ୍ବର","ଅକ୍ଟୋବର","ନଭେମ୍ବର","(ଡିସେମ୍ବର",""] - }, - eras: [{"name":"ଖ୍ରୀଷ୍ଟାବ୍ଦ","start":null,"offset":0}], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.pa-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.pa-IN.js deleted file mode 100644 index dcaab14..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.pa-IN.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture pa-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "pa-IN", "default", { - name: "pa-IN", - englishName: "Punjabi (India)", - nativeName: "ਪੰਜਾਬੀ (ਭਾਰਤ)", - language: "pa", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ਰੁ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ਐਤਵਾਰ","ਸੋਮਵਾਰ","ਮੰਗਲਵਾਰ","ਬੁੱਧਵਾਰ","ਵੀਰਵਾਰ","ਸ਼ੁੱਕਰਵਾਰ","ਸ਼ਨਿੱਚਰਵਾਰ"], - namesAbbr: ["ਐਤ.","ਸੋਮ.","ਮੰਗਲ.","ਬੁੱਧ.","ਵੀਰ.","ਸ਼ੁਕਰ.","ਸ਼ਨਿੱਚਰ."], - namesShort: ["ਐ","ਸ","ਮ","ਬ","ਵ","ਸ਼","ਸ਼"] - }, - months: { - names: ["ਜਨਵਰੀ","ਫ਼ਰਵਰੀ","ਮਾਰਚ","ਅਪ੍ਰੈਲ","ਮਈ","ਜੂਨ","ਜੁਲਾਈ","ਅਗਸਤ","ਸਤੰਬਰ","ਅਕਤੂਬਰ","ਨਵੰਬਰ","ਦਸੰਬਰ",""], - namesAbbr: ["ਜਨਵਰੀ","ਫ਼ਰਵਰੀ","ਮਾਰਚ","ਅਪ੍ਰੈਲ","ਮਈ","ਜੂਨ","ਜੁਲਾਈ","ਅਗਸਤ","ਸਤੰਬਰ","ਅਕਤੂਬਰ","ਨਵੰਬਰ","ਦਸੰਬਰ",""] - }, - AM: ["ਸਵੇਰ","ਸਵੇਰ","ਸਵੇਰ"], - PM: ["ਸ਼ਾਮ","ਸ਼ਾਮ","ਸ਼ਾਮ"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy dddd", - t: "tt hh:mm", - T: "tt hh:mm:ss", - f: "dd MMMM yyyy dddd tt hh:mm", - F: "dd MMMM yyyy dddd tt hh:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.pa.js b/Web/Scripts/globalize/cultures/globalize.culture.pa.js deleted file mode 100644 index 74cbec2..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.pa.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture pa - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "pa", "default", { - name: "pa", - englishName: "Punjabi", - nativeName: "ਪੰਜਾਬੀ", - language: "pa", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ਰੁ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ਐਤਵਾਰ","ਸੋਮਵਾਰ","ਮੰਗਲਵਾਰ","ਬੁੱਧਵਾਰ","ਵੀਰਵਾਰ","ਸ਼ੁੱਕਰਵਾਰ","ਸ਼ਨਿੱਚਰਵਾਰ"], - namesAbbr: ["ਐਤ.","ਸੋਮ.","ਮੰਗਲ.","ਬੁੱਧ.","ਵੀਰ.","ਸ਼ੁਕਰ.","ਸ਼ਨਿੱਚਰ."], - namesShort: ["ਐ","ਸ","ਮ","ਬ","ਵ","ਸ਼","ਸ਼"] - }, - months: { - names: ["ਜਨਵਰੀ","ਫ਼ਰਵਰੀ","ਮਾਰਚ","ਅਪ੍ਰੈਲ","ਮਈ","ਜੂਨ","ਜੁਲਾਈ","ਅਗਸਤ","ਸਤੰਬਰ","ਅਕਤੂਬਰ","ਨਵੰਬਰ","ਦਸੰਬਰ",""], - namesAbbr: ["ਜਨਵਰੀ","ਫ਼ਰਵਰੀ","ਮਾਰਚ","ਅਪ੍ਰੈਲ","ਮਈ","ਜੂਨ","ਜੁਲਾਈ","ਅਗਸਤ","ਸਤੰਬਰ","ਅਕਤੂਬਰ","ਨਵੰਬਰ","ਦਸੰਬਰ",""] - }, - AM: ["ਸਵੇਰ","ਸਵੇਰ","ਸਵੇਰ"], - PM: ["ਸ਼ਾਮ","ਸ਼ਾਮ","ਸ਼ਾਮ"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy dddd", - t: "tt hh:mm", - T: "tt hh:mm:ss", - f: "dd MMMM yyyy dddd tt hh:mm", - F: "dd MMMM yyyy dddd tt hh:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.pl-PL.js b/Web/Scripts/globalize/cultures/globalize.culture.pl-PL.js deleted file mode 100644 index f737ad9..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.pl-PL.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Globalize Culture pl-PL - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "pl-PL", "default", { - name: "pl-PL", - englishName: "Polish (Poland)", - nativeName: "polski (Polska)", - language: "pl", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "nie jest liczbą", - negativeInfinity: "-nieskończoność", - positiveInfinity: "+nieskończoność", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "zł" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"], - namesAbbr: ["niedz.","pon.","wt.","śr.","czw.","pt.","sob."], - namesShort: ["N","Pn","Wt","Śr","Cz","Pt","So"] - }, - months: { - names: ["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień",""], - namesAbbr: ["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru",""] - }, - monthsGenitive: { - names: ["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia",""], - namesAbbr: ["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.pl.js b/Web/Scripts/globalize/cultures/globalize.culture.pl.js deleted file mode 100644 index 2a1188d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.pl.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Globalize Culture pl - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "pl", "default", { - name: "pl", - englishName: "Polish", - nativeName: "polski", - language: "pl", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "nie jest liczbą", - negativeInfinity: "-nieskończoność", - positiveInfinity: "+nieskończoność", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "zł" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"], - namesAbbr: ["niedz.","pon.","wt.","śr.","czw.","pt.","sob."], - namesShort: ["N","Pn","Wt","Śr","Cz","Pt","So"] - }, - months: { - names: ["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień",""], - namesAbbr: ["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru",""] - }, - monthsGenitive: { - names: ["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia",""], - namesAbbr: ["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.prs-AF.js b/Web/Scripts/globalize/cultures/globalize.culture.prs-AF.js deleted file mode 100644 index b50d211..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.prs-AF.js +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Globalize Culture prs-AF - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "prs-AF", "default", { - name: "prs-AF", - englishName: "Dari (Afghanistan)", - nativeName: "درى (افغانستان)", - language: "prs", - isRTL: true, - numberFormat: { - pattern: ["n-"], - ",": ".", - ".": ",", - "NaN": "غ ع", - negativeInfinity: "-∞", - positiveInfinity: "∞", - percent: { - pattern: ["%n-","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$n-","$n"], - symbol: "؋" - } - }, - calendars: { - standard: { - name: "Hijri", - firstDay: 5, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - f: "dd/MM/yyyy h:mm tt", - F: "dd/MM/yyyy h:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_Localized: { - firstDay: 5, - days: { - names: ["یکشنبه","دوشنبه","سه\u200cشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesAbbr: ["یکشنبه","دوشنبه","سه\u200cشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesShort: ["ی","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګاښ","زمرى","وږى","تله","لړم","ليندۍ","مرغومى",""], - namesAbbr: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګاښ","زمرى","وږى","تله","لړم","ليندۍ","مرغومى",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"ل.ه","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy, dd, MMMM, dddd", - f: "yyyy, dd, MMMM, dddd h:mm tt", - F: "yyyy, dd, MMMM, dddd h:mm:ss tt", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.prs.js b/Web/Scripts/globalize/cultures/globalize.culture.prs.js deleted file mode 100644 index aaf297b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.prs.js +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Globalize Culture prs - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "prs", "default", { - name: "prs", - englishName: "Dari", - nativeName: "درى", - language: "prs", - isRTL: true, - numberFormat: { - pattern: ["n-"], - ",": ".", - ".": ",", - "NaN": "غ ع", - negativeInfinity: "-∞", - positiveInfinity: "∞", - percent: { - pattern: ["%n-","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$n-","$n"], - symbol: "؋" - } - }, - calendars: { - standard: { - name: "Hijri", - firstDay: 5, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - f: "dd/MM/yyyy h:mm tt", - F: "dd/MM/yyyy h:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_Localized: { - firstDay: 5, - days: { - names: ["یکشنبه","دوشنبه","سه\u200cشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesAbbr: ["یکشنبه","دوشنبه","سه\u200cشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesShort: ["ی","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګاښ","زمرى","وږى","تله","لړم","ليندۍ","مرغومى",""], - namesAbbr: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګاښ","زمرى","وږى","تله","لړم","ليندۍ","مرغومى",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"ل.ه","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy, dd, MMMM, dddd", - f: "yyyy, dd, MMMM, dddd h:mm tt", - F: "yyyy, dd, MMMM, dddd h:mm:ss tt", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ps-AF.js b/Web/Scripts/globalize/cultures/globalize.culture.ps-AF.js deleted file mode 100644 index bf38c1b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ps-AF.js +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Globalize Culture ps-AF - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ps-AF", "default", { - name: "ps-AF", - englishName: "Pashto (Afghanistan)", - nativeName: "پښتو (افغانستان)", - language: "ps", - isRTL: true, - numberFormat: { - pattern: ["n-"], - ",": "،", - ".": ",", - "NaN": "غ ع", - negativeInfinity: "-∞", - positiveInfinity: "∞", - percent: { - pattern: ["%n-","%n"], - ",": "،", - ".": "," - }, - currency: { - pattern: ["$n-","$n"], - ",": "٬", - ".": "٫", - symbol: "؋" - } - }, - calendars: { - standard: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - f: "dd/MM/yyyy h:mm tt", - F: "dd/MM/yyyy h:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_Localized: { - firstDay: 6, - days: { - names: ["یکشنبه","دوشنبه","سه\u200cشنبه","چارشنبه","پنجشنبه","جمعه","شنبه"], - namesAbbr: ["یکشنبه","دوشنبه","سه\u200cشنبه","چارشنبه","پنجشنبه","جمعه","شنبه"], - namesShort: ["ی","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګا ښزمرى","زمرى","وږى","تله","لړم","لنڈ ۍ","مرغومى",""], - namesAbbr: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګا ښ","زمرى","وږى","تله","لړم","لنڈ ۍ","مرغومى",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"ل.ه","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy, dd, MMMM, dddd", - f: "yyyy, dd, MMMM, dddd h:mm tt", - F: "yyyy, dd, MMMM, dddd h:mm:ss tt", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ps.js b/Web/Scripts/globalize/cultures/globalize.culture.ps.js deleted file mode 100644 index 9220a75..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ps.js +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Globalize Culture ps - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ps", "default", { - name: "ps", - englishName: "Pashto", - nativeName: "پښتو", - language: "ps", - isRTL: true, - numberFormat: { - pattern: ["n-"], - ",": "،", - ".": ",", - "NaN": "غ ع", - negativeInfinity: "-∞", - positiveInfinity: "∞", - percent: { - pattern: ["%n-","%n"], - ",": "،", - ".": "," - }, - currency: { - pattern: ["$n-","$n"], - ",": "٬", - ".": "٫", - symbol: "؋" - } - }, - calendars: { - standard: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - f: "dd/MM/yyyy h:mm tt", - F: "dd/MM/yyyy h:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_Localized: { - firstDay: 6, - days: { - names: ["یکشنبه","دوشنبه","سه\u200cشنبه","چارشنبه","پنجشنبه","جمعه","شنبه"], - namesAbbr: ["یکشنبه","دوشنبه","سه\u200cشنبه","چارشنبه","پنجشنبه","جمعه","شنبه"], - namesShort: ["ی","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګا ښزمرى","زمرى","وږى","تله","لړم","لنڈ ۍ","مرغومى",""], - namesAbbr: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګا ښ","زمرى","وږى","تله","لړم","لنڈ ۍ","مرغومى",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"ل.ه","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy, dd, MMMM, dddd", - f: "yyyy, dd, MMMM, dddd h:mm tt", - F: "yyyy, dd, MMMM, dddd h:mm:ss tt", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.pt-BR.js b/Web/Scripts/globalize/cultures/globalize.culture.pt-BR.js deleted file mode 100644 index c9a1321..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.pt-BR.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture pt-BR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "pt-BR", "default", { - name: "pt-BR", - englishName: "Portuguese (Brazil)", - nativeName: "Português (Brasil)", - language: "pt", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NaN (Não é um número)", - negativeInfinity: "-Infinito", - positiveInfinity: "+Infinito", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": ",", - symbol: "R$" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"], - namesAbbr: ["dom","seg","ter","qua","qui","sex","sáb"], - namesShort: ["D","S","T","Q","Q","S","S"] - }, - months: { - names: ["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro",""], - namesAbbr: ["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d' de 'MMMM' de 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' de 'MMMM' de 'yyyy HH:mm", - F: "dddd, d' de 'MMMM' de 'yyyy HH:mm:ss", - M: "dd' de 'MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.pt-PT.js b/Web/Scripts/globalize/cultures/globalize.culture.pt-PT.js deleted file mode 100644 index 67a957f..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.pt-PT.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture pt-PT - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "pt-PT", "default", { - name: "pt-PT", - englishName: "Portuguese (Portugal)", - nativeName: "português (Portugal)", - language: "pt", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NaN (Não é um número)", - negativeInfinity: "-Infinito", - positiveInfinity: "+Infinito", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"], - namesAbbr: ["dom","seg","ter","qua","qui","sex","sáb"], - namesShort: ["D","S","T","Q","Q","S","S"] - }, - months: { - names: ["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro",""], - namesAbbr: ["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd-MM-yyyy", - D: "dddd, d' de 'MMMM' de 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' de 'MMMM' de 'yyyy HH:mm", - F: "dddd, d' de 'MMMM' de 'yyyy HH:mm:ss", - M: "d/M", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.pt.js b/Web/Scripts/globalize/cultures/globalize.culture.pt.js deleted file mode 100644 index 45cbbff..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.pt.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture pt - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "pt", "default", { - name: "pt", - englishName: "Portuguese", - nativeName: "Português", - language: "pt", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NaN (Não é um número)", - negativeInfinity: "-Infinito", - positiveInfinity: "+Infinito", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": ",", - symbol: "R$" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"], - namesAbbr: ["dom","seg","ter","qua","qui","sex","sáb"], - namesShort: ["D","S","T","Q","Q","S","S"] - }, - months: { - names: ["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro",""], - namesAbbr: ["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d' de 'MMMM' de 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' de 'MMMM' de 'yyyy HH:mm", - F: "dddd, d' de 'MMMM' de 'yyyy HH:mm:ss", - M: "dd' de 'MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.qut-GT.js b/Web/Scripts/globalize/cultures/globalize.culture.qut-GT.js deleted file mode 100644 index 40f8658..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.qut-GT.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Globalize Culture qut-GT - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "qut-GT", "default", { - name: "qut-GT", - englishName: "K'iche (Guatemala)", - nativeName: "K'iche (Guatemala)", - language: "qut", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - symbol: "Q" - } - }, - calendars: { - standard: { - days: { - names: ["juq'ij","kaq'ij","oxq'ij","kajq'ij","joq'ij","waqq'ij","wuqq'ij"], - namesAbbr: ["juq","kaq","oxq","kajq","joq","waqq","wuqq"], - namesShort: ["ju","ka","ox","ka","jo","wa","wu"] - }, - months: { - names: ["nab'e ik'","ukab' ik'","rox ik'","ukaj ik'","uro' ik'","uwaq ik'","uwuq ik'","uwajxaq ik'","ub'elej ik'","ulaj ik'","ujulaj ik'","ukab'laj ik'",""], - namesAbbr: ["nab'e","ukab","rox","ukaj","uro","uwaq","uwuq","uwajxaq","ub'elej","ulaj","ujulaj","ukab'laj",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.qut.js b/Web/Scripts/globalize/cultures/globalize.culture.qut.js deleted file mode 100644 index 6d6569d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.qut.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Globalize Culture qut - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "qut", "default", { - name: "qut", - englishName: "K'iche", - nativeName: "K'iche", - language: "qut", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - symbol: "Q" - } - }, - calendars: { - standard: { - days: { - names: ["juq'ij","kaq'ij","oxq'ij","kajq'ij","joq'ij","waqq'ij","wuqq'ij"], - namesAbbr: ["juq","kaq","oxq","kajq","joq","waqq","wuqq"], - namesShort: ["ju","ka","ox","ka","jo","wa","wu"] - }, - months: { - names: ["nab'e ik'","ukab' ik'","rox ik'","ukaj ik'","uro' ik'","uwaq ik'","uwuq ik'","uwajxaq ik'","ub'elej ik'","ulaj ik'","ujulaj ik'","ukab'laj ik'",""], - namesAbbr: ["nab'e","ukab","rox","ukaj","uro","uwaq","uwuq","uwajxaq","ub'elej","ulaj","ujulaj","ukab'laj",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.quz-BO.js b/Web/Scripts/globalize/cultures/globalize.culture.quz-BO.js deleted file mode 100644 index 72a80e6..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.quz-BO.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Globalize Culture quz-BO - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "quz-BO", "default", { - name: "quz-BO", - englishName: "Quechua (Bolivia)", - nativeName: "runasimi (Qullasuyu)", - language: "quz", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": ",", - symbol: "$b" - } - }, - calendars: { - standard: { - days: { - names: ["intichaw","killachaw","atipachaw","quyllurchaw","Ch' askachaw","Illapachaw","k'uychichaw"], - namesAbbr: ["int","kil","ati","quy","Ch'","Ill","k'u"], - namesShort: ["d","k","a","m","h","b","k"] - }, - months: { - names: ["Qulla puquy","Hatun puquy","Pauqar waray","ayriwa","Aymuray","Inti raymi","Anta Sitwa","Qhapaq Sitwa","Uma raymi","Kantaray","Ayamarq'a","Kapaq Raymi",""], - namesAbbr: ["Qul","Hat","Pau","ayr","Aym","Int","Ant","Qha","Uma","Kan","Aya","Kap",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.quz-EC.js b/Web/Scripts/globalize/cultures/globalize.culture.quz-EC.js deleted file mode 100644 index 30c4b2f..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.quz-EC.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Globalize Culture quz-EC - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "quz-EC", "default", { - name: "quz-EC", - englishName: "Quechua (Ecuador)", - nativeName: "runasimi (Ecuador)", - language: "quz", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - days: { - names: ["intichaw","killachaw","atipachaw","quyllurchaw","Ch' askachaw","Illapachaw","k'uychichaw"], - namesAbbr: ["int","kil","ati","quy","Ch'","Ill","k'u"], - namesShort: ["d","k","a","m","h","b","k"] - }, - months: { - names: ["Qulla puquy","Hatun puquy","Pauqar waray","ayriwa","Aymuray","Inti raymi","Anta Sitwa","Qhapaq Sitwa","Uma raymi","Kantaray","Ayamarq'a","Kapaq Raymi",""], - namesAbbr: ["Qul","Hat","Pau","ayr","Aym","Int","Ant","Qha","Uma","Kan","Aya","Kap",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.quz-PE.js b/Web/Scripts/globalize/cultures/globalize.culture.quz-PE.js deleted file mode 100644 index e98b310..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.quz-PE.js +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Globalize Culture quz-PE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "quz-PE", "default", { - name: "quz-PE", - englishName: "Quechua (Peru)", - nativeName: "runasimi (Piruw)", - language: "quz", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$ -n","$ n"], - symbol: "S/." - } - }, - calendars: { - standard: { - days: { - names: ["intichaw","killachaw","atipachaw","quyllurchaw","Ch' askachaw","Illapachaw","k'uychichaw"], - namesAbbr: ["int","kil","ati","quy","Ch'","Ill","k'u"], - namesShort: ["d","k","a","m","h","b","k"] - }, - months: { - names: ["Qulla puquy","Hatun puquy","Pauqar waray","ayriwa","Aymuray","Inti raymi","Anta Sitwa","Qhapaq Sitwa","Uma raymi","Kantaray","Ayamarq'a","Kapaq Raymi",""], - namesAbbr: ["Qul","Hat","Pau","ayr","Aym","Int","Ant","Qha","Uma","Kan","Aya","Kap",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.quz.js b/Web/Scripts/globalize/cultures/globalize.culture.quz.js deleted file mode 100644 index 705134d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.quz.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Globalize Culture quz - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "quz", "default", { - name: "quz", - englishName: "Quechua", - nativeName: "runasimi", - language: "quz", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": ",", - symbol: "$b" - } - }, - calendars: { - standard: { - days: { - names: ["intichaw","killachaw","atipachaw","quyllurchaw","Ch' askachaw","Illapachaw","k'uychichaw"], - namesAbbr: ["int","kil","ati","quy","Ch'","Ill","k'u"], - namesShort: ["d","k","a","m","h","b","k"] - }, - months: { - names: ["Qulla puquy","Hatun puquy","Pauqar waray","ayriwa","Aymuray","Inti raymi","Anta Sitwa","Qhapaq Sitwa","Uma raymi","Kantaray","Ayamarq'a","Kapaq Raymi",""], - namesAbbr: ["Qul","Hat","Pau","ayr","Aym","Int","Ant","Qha","Uma","Kan","Aya","Kap",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.rm-CH.js b/Web/Scripts/globalize/cultures/globalize.culture.rm-CH.js deleted file mode 100644 index bac6d14..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.rm-CH.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture rm-CH - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "rm-CH", "default", { - name: "rm-CH", - englishName: "Romansh (Switzerland)", - nativeName: "Rumantsch (Svizra)", - language: "rm", - numberFormat: { - ",": "'", - "NaN": "betg def.", - negativeInfinity: "-infinit", - positiveInfinity: "+infinit", - percent: { - pattern: ["-n%","n%"], - ",": "'" - }, - currency: { - pattern: ["$-n","$ n"], - ",": "'", - symbol: "fr." - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dumengia","glindesdi","mardi","mesemna","gievgia","venderdi","sonda"], - namesAbbr: ["du","gli","ma","me","gie","ve","so"], - namesShort: ["du","gli","ma","me","gie","ve","so"] - }, - months: { - names: ["schaner","favrer","mars","avrigl","matg","zercladur","fanadur","avust","settember","october","november","december",""], - namesAbbr: ["schan","favr","mars","avr","matg","zercl","fan","avust","sett","oct","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"s. Cr.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d MMMM yyyy HH:mm", - F: "dddd, d MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.rm.js b/Web/Scripts/globalize/cultures/globalize.culture.rm.js deleted file mode 100644 index 761118d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.rm.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture rm - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "rm", "default", { - name: "rm", - englishName: "Romansh", - nativeName: "Rumantsch", - language: "rm", - numberFormat: { - ",": "'", - "NaN": "betg def.", - negativeInfinity: "-infinit", - positiveInfinity: "+infinit", - percent: { - pattern: ["-n%","n%"], - ",": "'" - }, - currency: { - pattern: ["$-n","$ n"], - ",": "'", - symbol: "fr." - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dumengia","glindesdi","mardi","mesemna","gievgia","venderdi","sonda"], - namesAbbr: ["du","gli","ma","me","gie","ve","so"], - namesShort: ["du","gli","ma","me","gie","ve","so"] - }, - months: { - names: ["schaner","favrer","mars","avrigl","matg","zercladur","fanadur","avust","settember","october","november","december",""], - namesAbbr: ["schan","favr","mars","avr","matg","zercl","fan","avust","sett","oct","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"s. Cr.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d MMMM yyyy HH:mm", - F: "dddd, d MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ro-RO.js b/Web/Scripts/globalize/cultures/globalize.culture.ro-RO.js deleted file mode 100644 index f677ccf..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ro-RO.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture ro-RO - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ro-RO", "default", { - name: "ro-RO", - englishName: "Romanian (Romania)", - nativeName: "română (România)", - language: "ro", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "lei" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["duminică","luni","marţi","miercuri","joi","vineri","sâmbătă"], - namesAbbr: ["D","L","Ma","Mi","J","V","S"], - namesShort: ["D","L","Ma","Mi","J","V","S"] - }, - months: { - names: ["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie",""], - namesAbbr: ["ian.","feb.","mar.","apr.","mai.","iun.","iul.","aug.","sep.","oct.","nov.","dec.",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ro.js b/Web/Scripts/globalize/cultures/globalize.culture.ro.js deleted file mode 100644 index 3d5ac20..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ro.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture ro - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ro", "default", { - name: "ro", - englishName: "Romanian", - nativeName: "română", - language: "ro", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "lei" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["duminică","luni","marţi","miercuri","joi","vineri","sâmbătă"], - namesAbbr: ["D","L","Ma","Mi","J","V","S"], - namesShort: ["D","L","Ma","Mi","J","V","S"] - }, - months: { - names: ["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie",""], - namesAbbr: ["ian.","feb.","mar.","apr.","mai.","iun.","iul.","aug.","sep.","oct.","nov.","dec.",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ru-RU.js b/Web/Scripts/globalize/cultures/globalize.culture.ru-RU.js deleted file mode 100644 index 5946b15..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ru-RU.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Globalize Culture ru-RU - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ru-RU", "default", { - name: "ru-RU", - englishName: "Russian (Russia)", - nativeName: "русский (Россия)", - language: "ru", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "р." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"], - namesAbbr: ["Вс","Пн","Вт","Ср","Чт","Пт","Сб"], - namesShort: ["Вс","Пн","Вт","Ср","Чт","Пт","Сб"] - }, - months: { - names: ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь",""], - namesAbbr: ["янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек",""] - }, - monthsGenitive: { - names: ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря",""], - namesAbbr: ["янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy 'г.'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy 'г.' H:mm", - F: "d MMMM yyyy 'г.' H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ru.js b/Web/Scripts/globalize/cultures/globalize.culture.ru.js deleted file mode 100644 index 23d54fa..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ru.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Globalize Culture ru - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ru", "default", { - name: "ru", - englishName: "Russian", - nativeName: "русский", - language: "ru", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "р." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"], - namesAbbr: ["Вс","Пн","Вт","Ср","Чт","Пт","Сб"], - namesShort: ["Вс","Пн","Вт","Ср","Чт","Пт","Сб"] - }, - months: { - names: ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь",""], - namesAbbr: ["янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек",""] - }, - monthsGenitive: { - names: ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря",""], - namesAbbr: ["янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy 'г.'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy 'г.' H:mm", - F: "d MMMM yyyy 'г.' H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.rw-RW.js b/Web/Scripts/globalize/cultures/globalize.culture.rw-RW.js deleted file mode 100644 index 6052f4d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.rw-RW.js +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Globalize Culture rw-RW - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "rw-RW", "default", { - name: "rw-RW", - englishName: "Kinyarwanda (Rwanda)", - nativeName: "Kinyarwanda (Rwanda)", - language: "rw", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$-n","$ n"], - ",": " ", - ".": ",", - symbol: "RWF" - } - }, - calendars: { - standard: { - days: { - names: ["Ku wa mbere","Ku wa kabiri","Ku wa gatatu","Ku wa kane","Ku wa gatanu","Ku wa gatandatu","Ku cyumweru"], - namesAbbr: ["mbe.","kab.","gat.","kan.","gat.","gat.","cyu."], - namesShort: ["mb","ka","ga","ka","ga","ga","cy"] - }, - months: { - names: ["Mutarama","Gashyantare","Werurwe","Mata","Gicurasi","Kamena","Nyakanga","Kanama","Nzeli","Ukwakira","Ugushyingo","Ukuboza",""], - namesAbbr: ["Mut","Gas","Wer","Mat","Gic","Kam","Nya","Kan","Nze","Ukwa","Ugu","Uku",""] - }, - AM: ["saa moya z.m.","saa moya z.m.","SAA MOYA Z.M."], - PM: ["saa moya z.n.","saa moya z.n.","SAA MOYA Z.N."], - eras: [{"name":"AD","start":null,"offset":0}] - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.rw.js b/Web/Scripts/globalize/cultures/globalize.culture.rw.js deleted file mode 100644 index 8d63d97..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.rw.js +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Globalize Culture rw - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "rw", "default", { - name: "rw", - englishName: "Kinyarwanda", - nativeName: "Kinyarwanda", - language: "rw", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$-n","$ n"], - ",": " ", - ".": ",", - symbol: "RWF" - } - }, - calendars: { - standard: { - days: { - names: ["Ku wa mbere","Ku wa kabiri","Ku wa gatatu","Ku wa kane","Ku wa gatanu","Ku wa gatandatu","Ku cyumweru"], - namesAbbr: ["mbe.","kab.","gat.","kan.","gat.","gat.","cyu."], - namesShort: ["mb","ka","ga","ka","ga","ga","cy"] - }, - months: { - names: ["Mutarama","Gashyantare","Werurwe","Mata","Gicurasi","Kamena","Nyakanga","Kanama","Nzeli","Ukwakira","Ugushyingo","Ukuboza",""], - namesAbbr: ["Mut","Gas","Wer","Mat","Gic","Kam","Nya","Kan","Nze","Ukwa","Ugu","Uku",""] - }, - AM: ["saa moya z.m.","saa moya z.m.","SAA MOYA Z.M."], - PM: ["saa moya z.n.","saa moya z.n.","SAA MOYA Z.N."], - eras: [{"name":"AD","start":null,"offset":0}] - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sa-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.sa-IN.js deleted file mode 100644 index b94958d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sa-IN.js +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Globalize Culture sa-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sa-IN", "default", { - name: "sa-IN", - englishName: "Sanskrit (India)", - nativeName: "संस्कृत (भारतम्)", - language: "sa", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["रविवासरः","सोमवासरः","मङ्गलवासरः","बुधवासरः","गुरुवासरः","शुक्रवासरः","शनिवासरः"], - namesAbbr: ["रविवासरः","सोमवासरः","मङ्गलवासरः","बुधवासरः","गुरुवासरः","शुक्रवासरः","शनिवासरः"], - namesShort: ["र","स","म","ब","ग","श","श"] - }, - months: { - names: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""], - namesAbbr: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""] - }, - AM: ["पूर्वाह्न","पूर्वाह्न","पूर्वाह्न"], - PM: ["अपराह्न","अपराह्न","अपराह्न"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy dddd", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy dddd HH:mm", - F: "dd MMMM yyyy dddd HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sa.js b/Web/Scripts/globalize/cultures/globalize.culture.sa.js deleted file mode 100644 index 059f4bf..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sa.js +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Globalize Culture sa - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sa", "default", { - name: "sa", - englishName: "Sanskrit", - nativeName: "संस्कृत", - language: "sa", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["रविवासरः","सोमवासरः","मङ्गलवासरः","बुधवासरः","गुरुवासरः","शुक्रवासरः","शनिवासरः"], - namesAbbr: ["रविवासरः","सोमवासरः","मङ्गलवासरः","बुधवासरः","गुरुवासरः","शुक्रवासरः","शनिवासरः"], - namesShort: ["र","स","म","ब","ग","श","श"] - }, - months: { - names: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""], - namesAbbr: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""] - }, - AM: ["पूर्वाह्न","पूर्वाह्न","पूर्वाह्न"], - PM: ["अपराह्न","अपराह्न","अपराह्न"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy dddd", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy dddd HH:mm", - F: "dd MMMM yyyy dddd HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sah-RU.js b/Web/Scripts/globalize/cultures/globalize.culture.sah-RU.js deleted file mode 100644 index 7d1ae37..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sah-RU.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Globalize Culture sah-RU - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sah-RU", "default", { - name: "sah-RU", - englishName: "Yakut (Russia)", - nativeName: "саха (Россия)", - language: "sah", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "NAN", - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "с." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["баскыһыанньа","бэнидиэнньик","оптуорунньук","сэрэдэ","чэппиэр","бээтинсэ","субуота"], - namesAbbr: ["Бс","Бн","Оп","Ср","Чп","Бт","Сб"], - namesShort: ["Бс","Бн","Оп","Ср","Чп","Бт","Сб"] - }, - months: { - names: ["Тохсунньу","Олунньу","Кулун тутар","Муус устар","Ыам ыйа","Бэс ыйа","От ыйа","Атырдьах ыйа","Балаҕан ыйа","Алтынньы","Сэтинньи","Ахсынньы",""], - namesAbbr: ["тхс","олн","кул","мст","ыам","бэс","отй","атр","блҕ","алт","стн","ахс",""] - }, - monthsGenitive: { - names: ["тохсунньу","олунньу","кулун тутар","муус устар","ыам ыйын","бэс ыйын","от ыйын","атырдьах ыйын","балаҕан ыйын","алтынньы","сэтинньи","ахсынньы",""], - namesAbbr: ["тхс","олн","кул","мст","ыам","бэс","отй","атр","блҕ","алт","стн","ахс",""] - }, - AM: null, - PM: null, - patterns: { - d: "MM.dd.yyyy", - D: "MMMM d yyyy 'с.'", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d yyyy 'с.' H:mm", - F: "MMMM d yyyy 'с.' H:mm:ss", - Y: "MMMM yyyy 'с.'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sah.js b/Web/Scripts/globalize/cultures/globalize.culture.sah.js deleted file mode 100644 index 4ad841b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sah.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Globalize Culture sah - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sah", "default", { - name: "sah", - englishName: "Yakut", - nativeName: "саха", - language: "sah", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "NAN", - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "с." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["баскыһыанньа","бэнидиэнньик","оптуорунньук","сэрэдэ","чэппиэр","бээтинсэ","субуота"], - namesAbbr: ["Бс","Бн","Оп","Ср","Чп","Бт","Сб"], - namesShort: ["Бс","Бн","Оп","Ср","Чп","Бт","Сб"] - }, - months: { - names: ["Тохсунньу","Олунньу","Кулун тутар","Муус устар","Ыам ыйа","Бэс ыйа","От ыйа","Атырдьах ыйа","Балаҕан ыйа","Алтынньы","Сэтинньи","Ахсынньы",""], - namesAbbr: ["тхс","олн","кул","мст","ыам","бэс","отй","атр","блҕ","алт","стн","ахс",""] - }, - monthsGenitive: { - names: ["тохсунньу","олунньу","кулун тутар","муус устар","ыам ыйын","бэс ыйын","от ыйын","атырдьах ыйын","балаҕан ыйын","алтынньы","сэтинньи","ахсынньы",""], - namesAbbr: ["тхс","олн","кул","мст","ыам","бэс","отй","атр","блҕ","алт","стн","ахс",""] - }, - AM: null, - PM: null, - patterns: { - d: "MM.dd.yyyy", - D: "MMMM d yyyy 'с.'", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d yyyy 'с.' H:mm", - F: "MMMM d yyyy 'с.' H:mm:ss", - Y: "MMMM yyyy 'с.'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.se-FI.js b/Web/Scripts/globalize/cultures/globalize.culture.se-FI.js deleted file mode 100644 index b270fa5..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.se-FI.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture se-FI - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "se-FI", "default", { - name: "se-FI", - englishName: "Sami, Northern (Finland)", - nativeName: "davvisámegiella (Suopma)", - language: "se", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sotnabeaivi","vuossárga","maŋŋebárga","gaskavahkku","duorastat","bearjadat","lávvardat"], - namesAbbr: ["sotn","vuos","maŋ","gask","duor","bear","láv"], - namesShort: ["s","m","d","g","d","b","l"] - }, - months: { - names: ["ođđajagemánnu","guovvamánnu","njukčamánnu","cuoŋománnu","miessemánnu","geassemánnu","suoidnemánnu","borgemánnu","čakčamánnu","golggotmánnu","skábmamánnu","juovlamánnu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - monthsGenitive: { - names: ["ođđajagimánu","guovvamánu","njukčamánu","cuoŋománu","miessemánu","geassemánu","suoidnemánu","borgemánu","čakčamánu","golggotmánu","skábmamánu","juovlamánu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "MMMM d'. b. 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d'. b. 'yyyy H:mm", - F: "MMMM d'. b. 'yyyy H:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.se-NO.js b/Web/Scripts/globalize/cultures/globalize.culture.se-NO.js deleted file mode 100644 index 46f387f..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.se-NO.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture se-NO - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "se-NO", "default", { - name: "se-NO", - englishName: "Sami, Northern (Norway)", - nativeName: "davvisámegiella (Norga)", - language: "se", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sotnabeaivi","vuossárga","maŋŋebárga","gaskavahkku","duorastat","bearjadat","lávvardat"], - namesAbbr: ["sotn","vuos","maŋ","gask","duor","bear","láv"], - namesShort: ["s","m","d","g","d","b","l"] - }, - months: { - names: ["ođđajagemánnu","guovvamánnu","njukčamánnu","cuoŋománnu","miessemánnu","geassemánnu","suoidnemánnu","borgemánnu","čakčamánnu","golggotmánnu","skábmamánnu","juovlamánnu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - monthsGenitive: { - names: ["ođđajagimánu","guovvamánu","njukčamánu","cuoŋománu","miessemánu","geassemánu","suoidnemánu","borgemánu","čakčamánu","golggotmánu","skábmamánu","juovlamánu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.se-SE.js b/Web/Scripts/globalize/cultures/globalize.culture.se-SE.js deleted file mode 100644 index fd4ec32..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.se-SE.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture se-SE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "se-SE", "default", { - name: "se-SE", - englishName: "Sami, Northern (Sweden)", - nativeName: "davvisámegiella (Ruoŧŧa)", - language: "se", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["sotnabeaivi","mánnodat","disdat","gaskavahkku","duorastat","bearjadat","lávvardat"], - namesAbbr: ["sotn","mán","dis","gask","duor","bear","láv"], - namesShort: ["s","m","d","g","d","b","l"] - }, - months: { - names: ["ođđajagemánnu","guovvamánnu","njukčamánnu","cuoŋománnu","miessemánnu","geassemánnu","suoidnemánnu","borgemánnu","čakčamánnu","golggotmánnu","skábmamánnu","juovlamánnu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - monthsGenitive: { - names: ["ođđajagimánu","guovvamánu","njukčamánu","cuoŋománu","miessemánu","geassemánu","suoidnemánu","borgemánu","čakčamánu","golggotmánu","skábmamánu","juovlamánu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.se.js b/Web/Scripts/globalize/cultures/globalize.culture.se.js deleted file mode 100644 index 9a5dcec..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.se.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture se - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "se", "default", { - name: "se", - englishName: "Sami (Northern)", - nativeName: "davvisámegiella", - language: "se", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sotnabeaivi","vuossárga","maŋŋebárga","gaskavahkku","duorastat","bearjadat","lávvardat"], - namesAbbr: ["sotn","vuos","maŋ","gask","duor","bear","láv"], - namesShort: ["s","m","d","g","d","b","l"] - }, - months: { - names: ["ođđajagemánnu","guovvamánnu","njukčamánnu","cuoŋománnu","miessemánnu","geassemánnu","suoidnemánnu","borgemánnu","čakčamánnu","golggotmánnu","skábmamánnu","juovlamánnu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - monthsGenitive: { - names: ["ođđajagimánu","guovvamánu","njukčamánu","cuoŋománu","miessemánu","geassemánu","suoidnemánu","borgemánu","čakčamánu","golggotmánu","skábmamánu","juovlamánu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.si-LK.js b/Web/Scripts/globalize/cultures/globalize.culture.si-LK.js deleted file mode 100644 index a331625..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.si-LK.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture si-LK - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "si-LK", "default", { - name: "si-LK", - englishName: "Sinhala (Sri Lanka)", - nativeName: "සිංහල (ශ්\u200dරී ලංකා)", - language: "si", - numberFormat: { - groupSizes: [3,2], - negativeInfinity: "-අනන්තය", - positiveInfinity: "අනන්තය", - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["($ n)","$ n"], - symbol: "රු." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ඉරිදා","සඳුදා","අඟහරුවාදා","බදාදා","බ්\u200dරහස්පතින්දා","සිකුරාදා","සෙනසුරාදා"], - namesAbbr: ["ඉරිදා","සඳුදා","කුජදා","බුදදා","ගුරුදා","කිවිදා","ශනිදා"], - namesShort: ["ඉ","ස","අ","බ","බ්\u200dර","සි","සෙ"] - }, - months: { - names: ["ජනවාරි","පෙබරවාරි","මාර්තු","අ\u200cප්\u200dරේල්","මැයි","ජූනි","ජූලි","අ\u200cගෝස්තු","සැප්තැම්බර්","ඔක්තෝබර්","නොවැම්බර්","දෙසැම්බර්",""], - namesAbbr: ["ජන.","පෙබ.","මාර්තු.","අප්\u200dරේල්.","මැයි.","ජූනි.","ජූලි.","අගෝ.","සැප්.","ඔක්.","නොවැ.","දෙසැ.",""] - }, - AM: ["පෙ.ව.","පෙ.ව.","පෙ.ව."], - PM: ["ප.ව.","ප.ව.","ප.ව."], - eras: [{"name":"ක්\u200dරි.ව.","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "yyyy MMMM' මස 'dd' වැනිදා 'dddd", - f: "yyyy MMMM' මස 'dd' වැනිදා 'dddd h:mm tt", - F: "yyyy MMMM' මස 'dd' වැනිදා 'dddd h:mm:ss tt", - Y: "yyyy MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.si.js b/Web/Scripts/globalize/cultures/globalize.culture.si.js deleted file mode 100644 index c9141e2..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.si.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture si - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "si", "default", { - name: "si", - englishName: "Sinhala", - nativeName: "සිංහල", - language: "si", - numberFormat: { - groupSizes: [3,2], - negativeInfinity: "-අනන්තය", - positiveInfinity: "අනන්තය", - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["($ n)","$ n"], - symbol: "රු." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ඉරිදා","සඳුදා","අඟහරුවාදා","බදාදා","බ්\u200dරහස්පතින්දා","සිකුරාදා","සෙනසුරාදා"], - namesAbbr: ["ඉරිදා","සඳුදා","කුජදා","බුදදා","ගුරුදා","කිවිදා","ශනිදා"], - namesShort: ["ඉ","ස","අ","බ","බ්\u200dර","සි","සෙ"] - }, - months: { - names: ["ජනවාරි","පෙබරවාරි","මාර්තු","අ\u200cප්\u200dරේල්","මැයි","ජූනි","ජූලි","අ\u200cගෝස්තු","සැප්තැම්බර්","ඔක්තෝබර්","නොවැම්බර්","දෙසැම්බර්",""], - namesAbbr: ["ජන.","පෙබ.","මාර්තු.","අප්\u200dරේල්.","මැයි.","ජූනි.","ජූලි.","අගෝ.","සැප්.","ඔක්.","නොවැ.","දෙසැ.",""] - }, - AM: ["පෙ.ව.","පෙ.ව.","පෙ.ව."], - PM: ["ප.ව.","ප.ව.","ප.ව."], - eras: [{"name":"ක්\u200dරි.ව.","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "yyyy MMMM' මස 'dd' වැනිදා 'dddd", - f: "yyyy MMMM' මස 'dd' වැනිදා 'dddd h:mm tt", - F: "yyyy MMMM' මස 'dd' වැනිදා 'dddd h:mm:ss tt", - Y: "yyyy MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sk-SK.js b/Web/Scripts/globalize/cultures/globalize.culture.sk-SK.js deleted file mode 100644 index feff22d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sk-SK.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Globalize Culture sk-SK - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sk-SK", "default", { - name: "sk-SK", - englishName: "Slovak (Slovakia)", - nativeName: "slovenčina (Slovenská republika)", - language: "sk", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Nie je číslo", - negativeInfinity: "-nekonečno", - positiveInfinity: "+nekonečno", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ". ", - firstDay: 1, - days: { - names: ["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"], - namesAbbr: ["ne","po","ut","st","št","pi","so"], - namesShort: ["ne","po","ut","st","št","pi","so"] - }, - months: { - names: ["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - monthsGenitive: { - names: ["januára","februára","marca","apríla","mája","júna","júla","augusta","septembra","októbra","novembra","decembra",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. l.","start":null,"offset":0}], - patterns: { - d: "d. M. yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sk.js b/Web/Scripts/globalize/cultures/globalize.culture.sk.js deleted file mode 100644 index 3cd66db..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sk.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Globalize Culture sk - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sk", "default", { - name: "sk", - englishName: "Slovak", - nativeName: "slovenčina", - language: "sk", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Nie je číslo", - negativeInfinity: "-nekonečno", - positiveInfinity: "+nekonečno", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ". ", - firstDay: 1, - days: { - names: ["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"], - namesAbbr: ["ne","po","ut","st","št","pi","so"], - namesShort: ["ne","po","ut","st","št","pi","so"] - }, - months: { - names: ["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - monthsGenitive: { - names: ["januára","februára","marca","apríla","mája","júna","júla","augusta","septembra","októbra","novembra","decembra",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. l.","start":null,"offset":0}], - patterns: { - d: "d. M. yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sl-SI.js b/Web/Scripts/globalize/cultures/globalize.culture.sl-SI.js deleted file mode 100644 index 7ddc54a..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sl-SI.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture sl-SI - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sl-SI", "default", { - name: "sl-SI", - englishName: "Slovenian (Slovenia)", - nativeName: "slovenski (Slovenija)", - language: "sl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-neskončnost", - positiveInfinity: "neskončnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"], - namesAbbr: ["ned","pon","tor","sre","čet","pet","sob"], - namesShort: ["ne","po","to","sr","če","pe","so"] - }, - months: { - names: ["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sl.js b/Web/Scripts/globalize/cultures/globalize.culture.sl.js deleted file mode 100644 index a75dbde..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sl.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture sl - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sl", "default", { - name: "sl", - englishName: "Slovenian", - nativeName: "slovenski", - language: "sl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-neskončnost", - positiveInfinity: "neskončnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"], - namesAbbr: ["ned","pon","tor","sre","čet","pet","sob"], - namesShort: ["ne","po","to","sr","če","pe","so"] - }, - months: { - names: ["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sma-NO.js b/Web/Scripts/globalize/cultures/globalize.culture.sma-NO.js deleted file mode 100644 index 4954494..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sma-NO.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture sma-NO - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sma-NO", "default", { - name: "sma-NO", - englishName: "Sami, Southern (Norway)", - nativeName: "åarjelsaemiengiele (Nöörje)", - language: "sma", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["aejlege","måanta","dæjsta","gaskevåhkoe","duarsta","bearjadahke","laavvardahke"], - namesAbbr: ["aej","måa","dæj","gask","duar","bearj","laav"], - namesShort: ["a","m","d","g","d","b","l"] - }, - months: { - names: ["tsïengele","goevte","njoktje","voerhtje","suehpede","ruffie","snjaltje","mïetske","skïerede","golke","rahka","goeve",""], - namesAbbr: ["tsïen","goevt","njok","voer","sueh","ruff","snja","mïet","skïer","golk","rahk","goev",""] - }, - monthsGenitive: { - names: ["tsïengelen","goevten","njoktjen","voerhtjen","suehpeden","ruffien","snjaltjen","mïetsken","skïereden","golken","rahkan","goeven",""], - namesAbbr: ["tsïen","goevt","njok","voer","sueh","ruff","snja","mïet","skïer","golk","rahk","goev",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sma-SE.js b/Web/Scripts/globalize/cultures/globalize.culture.sma-SE.js deleted file mode 100644 index d6c02c0..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sma-SE.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture sma-SE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sma-SE", "default", { - name: "sma-SE", - englishName: "Sami, Southern (Sweden)", - nativeName: "åarjelsaemiengiele (Sveerje)", - language: "sma", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["aejlege","måanta","dæjsta","gaskevåhkoe","duarsta","bearjadahke","laavvardahke"], - namesAbbr: ["aej","måa","dæj","gask","duar","bearj","laav"], - namesShort: ["a","m","d","g","d","b","l"] - }, - months: { - names: ["tsïengele","goevte","njoktje","voerhtje","suehpede","ruffie","snjaltje","mïetske","skïerede","golke","rahka","goeve",""], - namesAbbr: ["tsïen","goevt","njok","voer","sueh","ruff","snja","mïet","skïer","golk","rahk","goev",""] - }, - monthsGenitive: { - names: ["tsïengelen","goevten","njoktjen","voerhtjen","suehpeden","ruffien","snjaltjen","mïetsken","skïereden","golken","rahkan","goeven",""], - namesAbbr: ["tsïen","goevt","njok","voer","sueh","ruff","snja","mïet","skïer","golk","rahk","goev",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sma.js b/Web/Scripts/globalize/cultures/globalize.culture.sma.js deleted file mode 100644 index 5b89356..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sma.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture sma - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sma", "default", { - name: "sma", - englishName: "Sami (Southern)", - nativeName: "åarjelsaemiengiele", - language: "sma", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["aejlege","måanta","dæjsta","gaskevåhkoe","duarsta","bearjadahke","laavvardahke"], - namesAbbr: ["aej","måa","dæj","gask","duar","bearj","laav"], - namesShort: ["a","m","d","g","d","b","l"] - }, - months: { - names: ["tsïengele","goevte","njoktje","voerhtje","suehpede","ruffie","snjaltje","mïetske","skïerede","golke","rahka","goeve",""], - namesAbbr: ["tsïen","goevt","njok","voer","sueh","ruff","snja","mïet","skïer","golk","rahk","goev",""] - }, - monthsGenitive: { - names: ["tsïengelen","goevten","njoktjen","voerhtjen","suehpeden","ruffien","snjaltjen","mïetsken","skïereden","golken","rahkan","goeven",""], - namesAbbr: ["tsïen","goevt","njok","voer","sueh","ruff","snja","mïet","skïer","golk","rahk","goev",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.smj-NO.js b/Web/Scripts/globalize/cultures/globalize.culture.smj-NO.js deleted file mode 100644 index f6f1382..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.smj-NO.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture smj-NO - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "smj-NO", "default", { - name: "smj-NO", - englishName: "Sami, Lule (Norway)", - nativeName: "julevusámegiella (Vuodna)", - language: "smj", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sådnåbiejvve","mánnodahka","dijstahka","gasskavahkko","duorastahka","bierjjedahka","lávvodahka"], - namesAbbr: ["såd","mán","dis","gas","duor","bier","láv"], - namesShort: ["s","m","d","g","d","b","l"] - }, - months: { - names: ["ådåjakmánno","guovvamánno","sjnjuktjamánno","vuoratjismánno","moarmesmánno","biehtsemánno","sjnjilltjamánno","bårggemánno","ragátmánno","gålgådismánno","basádismánno","javllamánno",""], - namesAbbr: ["ådåj","guov","snju","vuor","moar","bieh","snji","bårg","ragá","gålg","basá","javl",""] - }, - monthsGenitive: { - names: ["ådåjakmáno","guovvamáno","sjnjuktjamáno","vuoratjismáno","moarmesmáno","biehtsemáno","sjnjilltjamáno","bårggemáno","ragátmáno","gålgådismáno","basádismáno","javllamáno",""], - namesAbbr: ["ådåj","guov","snju","vuor","moar","bieh","snji","bårg","ragá","gålg","basá","javl",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.smj-SE.js b/Web/Scripts/globalize/cultures/globalize.culture.smj-SE.js deleted file mode 100644 index b7ee88a..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.smj-SE.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture smj-SE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "smj-SE", "default", { - name: "smj-SE", - englishName: "Sami, Lule (Sweden)", - nativeName: "julevusámegiella (Svierik)", - language: "smj", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ájllek","mánnodahka","dijstahka","gasskavahkko","duorastahka","bierjjedahka","lávvodahka"], - namesAbbr: ["ájl","mán","dis","gas","duor","bier","láv"], - namesShort: ["á","m","d","g","d","b","l"] - }, - months: { - names: ["ådåjakmánno","guovvamánno","sjnjuktjamánno","vuoratjismánno","moarmesmánno","biehtsemánno","sjnjilltjamánno","bårggemánno","ragátmánno","gålgådismánno","basádismánno","javllamánno",""], - namesAbbr: ["ådåj","guov","snju","vuor","moar","bieh","snji","bårg","ragá","gålg","basá","javl",""] - }, - monthsGenitive: { - names: ["ådåjakmáno","guovvamáno","sjnjuktjamáno","vuoratjismáno","moarmesmáno","biehtsemáno","sjnjilltjamáno","bårggemáno","ragátmáno","gålgådismáno","basádismáno","javllamáno",""], - namesAbbr: ["ådåj","guov","snju","vuor","moar","bieh","snji","bårg","ragá","gålg","basá","javl",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.smj.js b/Web/Scripts/globalize/cultures/globalize.culture.smj.js deleted file mode 100644 index 021f9a3..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.smj.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture smj - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "smj", "default", { - name: "smj", - englishName: "Sami (Lule)", - nativeName: "julevusámegiella", - language: "smj", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ájllek","mánnodahka","dijstahka","gasskavahkko","duorastahka","bierjjedahka","lávvodahka"], - namesAbbr: ["ájl","mán","dis","gas","duor","bier","láv"], - namesShort: ["á","m","d","g","d","b","l"] - }, - months: { - names: ["ådåjakmánno","guovvamánno","sjnjuktjamánno","vuoratjismánno","moarmesmánno","biehtsemánno","sjnjilltjamánno","bårggemánno","ragátmánno","gålgådismánno","basádismánno","javllamánno",""], - namesAbbr: ["ådåj","guov","snju","vuor","moar","bieh","snji","bårg","ragá","gålg","basá","javl",""] - }, - monthsGenitive: { - names: ["ådåjakmáno","guovvamáno","sjnjuktjamáno","vuoratjismáno","moarmesmáno","biehtsemáno","sjnjilltjamáno","bårggemáno","ragátmáno","gålgådismáno","basádismáno","javllamáno",""], - namesAbbr: ["ådåj","guov","snju","vuor","moar","bieh","snji","bårg","ragá","gålg","basá","javl",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.smn-FI.js b/Web/Scripts/globalize/cultures/globalize.culture.smn-FI.js deleted file mode 100644 index ce73bd3..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.smn-FI.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture smn-FI - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "smn-FI", "default", { - name: "smn-FI", - englishName: "Sami, Inari (Finland)", - nativeName: "sämikielâ (Suomâ)", - language: "smn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["pasepeivi","vuossargâ","majebargâ","koskokko","tuorâstâh","vástuppeivi","lávárdâh"], - namesAbbr: ["pa","vu","ma","ko","tu","vá","lá"], - namesShort: ["p","v","m","k","t","v","l"] - }, - months: { - names: ["uđđâivemáánu","kuovâmáánu","njuhčâmáánu","cuáŋuimáánu","vyesimáánu","kesimáánu","syeinimáánu","porgemáánu","čohčâmáánu","roovvâdmáánu","skammâmáánu","juovlâmáánu",""], - namesAbbr: ["uđiv","kuov","njuh","cuoŋ","vyes","kesi","syei","porg","čoh","roov","ska","juov",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "MMMM d'. p. 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d'. p. 'yyyy H:mm", - F: "MMMM d'. p. 'yyyy H:mm:ss", - M: "MMMM d'. p. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.smn.js b/Web/Scripts/globalize/cultures/globalize.culture.smn.js deleted file mode 100644 index aba89e0..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.smn.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Globalize Culture smn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "smn", "default", { - name: "smn", - englishName: "Sami (Inari)", - nativeName: "sämikielâ", - language: "smn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["pasepeivi","vuossargâ","majebargâ","koskokko","tuorâstâh","vástuppeivi","lávárdâh"], - namesAbbr: ["pa","vu","ma","ko","tu","vá","lá"], - namesShort: ["p","v","m","k","t","v","l"] - }, - months: { - names: ["uđđâivemáánu","kuovâmáánu","njuhčâmáánu","cuáŋuimáánu","vyesimáánu","kesimáánu","syeinimáánu","porgemáánu","čohčâmáánu","roovvâdmáánu","skammâmáánu","juovlâmáánu",""], - namesAbbr: ["uđiv","kuov","njuh","cuoŋ","vyes","kesi","syei","porg","čoh","roov","ska","juov",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "MMMM d'. p. 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d'. p. 'yyyy H:mm", - F: "MMMM d'. p. 'yyyy H:mm:ss", - M: "MMMM d'. p. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sms-FI.js b/Web/Scripts/globalize/cultures/globalize.culture.sms-FI.js deleted file mode 100644 index d5a23e1..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sms-FI.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture sms-FI - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sms-FI", "default", { - name: "sms-FI", - englishName: "Sami, Skolt (Finland)", - nativeName: "sääm´ǩiõll (Lää´ddjânnam)", - language: "sms", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["pâ´sspei´vv","vuõssargg","mââibargg","seärad","nelljdpei´vv","piâtnâc","sue´vet"], - namesAbbr: ["pâ","vu","mâ","se","ne","pi","su"], - namesShort: ["p","v","m","s","n","p","s"] - }, - months: { - names: ["ođđee´jjmään","tä´lvvmään","pâ´zzlâšttammään","njuhččmään","vue´ssmään","ǩie´ssmään","suei´nnmään","på´rǧǧmään","čõhččmään","kålggmään","skamm´mään","rosttovmään",""], - namesAbbr: ["ođjm","tä´lvv","pâzl","njuh","vue","ǩie","suei","på´r","čõh","kålg","ska","rost",""] - }, - monthsGenitive: { - names: ["ođđee´jjmannu","tä´lvvmannu","pâ´zzlâšttammannu","njuhččmannu","vue´ssmannu","ǩie´ssmannu","suei´nnmannu","på´rǧǧmannu","čõhččmannu","kålggmannu","skamm´mannu","rosttovmannu",""], - namesAbbr: ["ođjm","tä´lvv","pâzl","njuh","vue","ǩie","suei","på´r","čõh","kålg","ska","rost",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "MMMM d'. p. 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d'. p. 'yyyy H:mm", - F: "MMMM d'. p. 'yyyy H:mm:ss", - M: "MMMM d'. p. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sms.js b/Web/Scripts/globalize/cultures/globalize.culture.sms.js deleted file mode 100644 index b5bf2b9..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sms.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture sms - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sms", "default", { - name: "sms", - englishName: "Sami (Skolt)", - nativeName: "sääm´ǩiõll", - language: "sms", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["pâ´sspei´vv","vuõssargg","mââibargg","seärad","nelljdpei´vv","piâtnâc","sue´vet"], - namesAbbr: ["pâ","vu","mâ","se","ne","pi","su"], - namesShort: ["p","v","m","s","n","p","s"] - }, - months: { - names: ["ođđee´jjmään","tä´lvvmään","pâ´zzlâšttammään","njuhččmään","vue´ssmään","ǩie´ssmään","suei´nnmään","på´rǧǧmään","čõhččmään","kålggmään","skamm´mään","rosttovmään",""], - namesAbbr: ["ođjm","tä´lvv","pâzl","njuh","vue","ǩie","suei","på´r","čõh","kålg","ska","rost",""] - }, - monthsGenitive: { - names: ["ođđee´jjmannu","tä´lvvmannu","pâ´zzlâšttammannu","njuhččmannu","vue´ssmannu","ǩie´ssmannu","suei´nnmannu","på´rǧǧmannu","čõhččmannu","kålggmannu","skamm´mannu","rosttovmannu",""], - namesAbbr: ["ođjm","tä´lvv","pâzl","njuh","vue","ǩie","suei","på´r","čõh","kålg","ska","rost",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "MMMM d'. p. 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d'. p. 'yyyy H:mm", - F: "MMMM d'. p. 'yyyy H:mm:ss", - M: "MMMM d'. p. '", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sq-AL.js b/Web/Scripts/globalize/cultures/globalize.culture.sq-AL.js deleted file mode 100644 index b5c770d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sq-AL.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture sq-AL - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sq-AL", "default", { - name: "sq-AL", - englishName: "Albanian (Albania)", - nativeName: "shqipe (Shqipëria)", - language: "sq", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-infinit", - positiveInfinity: "infinit", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": ".", - ".": ",", - symbol: "Lek" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["e diel","e hënë","e martë","e mërkurë","e enjte","e premte","e shtunë"], - namesAbbr: ["Die","Hën","Mar","Mër","Enj","Pre","Sht"], - namesShort: ["Di","Hë","Ma","Më","En","Pr","Sh"] - }, - months: { - names: ["janar","shkurt","mars","prill","maj","qershor","korrik","gusht","shtator","tetor","nëntor","dhjetor",""], - namesAbbr: ["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gsh","Sht","Tet","Nën","Dhj",""] - }, - AM: ["PD","pd","PD"], - PM: ["MD","md","MD"], - patterns: { - d: "yyyy-MM-dd", - D: "yyyy-MM-dd", - t: "h:mm.tt", - T: "h:mm:ss.tt", - f: "yyyy-MM-dd h:mm.tt", - F: "yyyy-MM-dd h:mm:ss.tt", - Y: "yyyy-MM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sq.js b/Web/Scripts/globalize/cultures/globalize.culture.sq.js deleted file mode 100644 index d6a8f99..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sq.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture sq - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sq", "default", { - name: "sq", - englishName: "Albanian", - nativeName: "shqipe", - language: "sq", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-infinit", - positiveInfinity: "infinit", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": ".", - ".": ",", - symbol: "Lek" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["e diel","e hënë","e martë","e mërkurë","e enjte","e premte","e shtunë"], - namesAbbr: ["Die","Hën","Mar","Mër","Enj","Pre","Sht"], - namesShort: ["Di","Hë","Ma","Më","En","Pr","Sh"] - }, - months: { - names: ["janar","shkurt","mars","prill","maj","qershor","korrik","gusht","shtator","tetor","nëntor","dhjetor",""], - namesAbbr: ["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gsh","Sht","Tet","Nën","Dhj",""] - }, - AM: ["PD","pd","PD"], - PM: ["MD","md","MD"], - patterns: { - d: "yyyy-MM-dd", - D: "yyyy-MM-dd", - t: "h:mm.tt", - T: "h:mm:ss.tt", - f: "yyyy-MM-dd h:mm.tt", - F: "yyyy-MM-dd h:mm:ss.tt", - Y: "yyyy-MM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl-BA.js b/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl-BA.js deleted file mode 100644 index 5d8fc4e..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl-BA.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture sr-Cyrl-BA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sr-Cyrl-BA", "default", { - name: "sr-Cyrl-BA", - englishName: "Serbian (Cyrillic, Bosnia and Herzegovina)", - nativeName: "српски (Босна и Херцеговина)", - language: "sr-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "КМ" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недеља","понедељак","уторак","среда","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["н","п","у","с","ч","п","с"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl-CS.js b/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl-CS.js deleted file mode 100644 index 475658f..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl-CS.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture sr-Cyrl-CS - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sr-Cyrl-CS", "default", { - name: "sr-Cyrl-CS", - englishName: "Serbian (Cyrillic, Serbia and Montenegro (Former))", - nativeName: "српски (Србија и Црна Гора (Претходно))", - language: "sr-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Дин." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недеља","понедељак","уторак","среда","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["не","по","ут","ср","че","пе","су"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl-ME.js b/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl-ME.js deleted file mode 100644 index 99b44a7..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl-ME.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture sr-Cyrl-ME - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sr-Cyrl-ME", "default", { - name: "sr-Cyrl-ME", - englishName: "Serbian (Cyrillic, Montenegro)", - nativeName: "српски (Црна Гора)", - language: "sr-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недеља","понедељак","уторак","среда","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["не","по","ут","ср","че","пе","су"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl-RS.js b/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl-RS.js deleted file mode 100644 index d5a0181..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl-RS.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture sr-Cyrl-RS - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sr-Cyrl-RS", "default", { - name: "sr-Cyrl-RS", - englishName: "Serbian (Cyrillic, Serbia)", - nativeName: "српски (Србија)", - language: "sr-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Дин." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недеља","понедељак","уторак","среда","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["не","по","ут","ср","че","пе","су"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl.js b/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl.js deleted file mode 100644 index 3b96b8e..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sr-Cyrl.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture sr-Cyrl - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sr-Cyrl", "default", { - name: "sr-Cyrl", - englishName: "Serbian (Cyrillic)", - nativeName: "српски", - language: "sr-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Дин." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недеља","понедељак","уторак","среда","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["не","по","ут","ср","че","пе","су"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn-BA.js b/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn-BA.js deleted file mode 100644 index 32184ae..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn-BA.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture sr-Latn-BA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sr-Latn-BA", "default", { - name: "sr-Latn-BA", - englishName: "Serbian (Latin, Bosnia and Herzegovina)", - nativeName: "srpski (Bosna i Hercegovina)", - language: "sr-Latn", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-beskonačnost", - positiveInfinity: "+beskonačnost", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "KM" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sre","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"n.e.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn-CS.js b/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn-CS.js deleted file mode 100644 index 741ec2b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn-CS.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture sr-Latn-CS - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sr-Latn-CS", "default", { - name: "sr-Latn-CS", - englishName: "Serbian (Latin, Serbia and Montenegro (Former))", - nativeName: "srpski (Srbija i Crna Gora (Prethodno))", - language: "sr-Latn", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-beskonačnost", - positiveInfinity: "+beskonačnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Din." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sre","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"n.e.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn-ME.js b/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn-ME.js deleted file mode 100644 index ea98474..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn-ME.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture sr-Latn-ME - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sr-Latn-ME", "default", { - name: "sr-Latn-ME", - englishName: "Serbian (Latin, Montenegro)", - nativeName: "srpski (Crna Gora)", - language: "sr-Latn", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-beskonačnost", - positiveInfinity: "+beskonačnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sre","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"n.e.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn-RS.js b/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn-RS.js deleted file mode 100644 index f3c3730..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn-RS.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture sr-Latn-RS - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sr-Latn-RS", "default", { - name: "sr-Latn-RS", - englishName: "Serbian (Latin, Serbia)", - nativeName: "srpski (Srbija)", - language: "sr-Latn", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-beskonačnost", - positiveInfinity: "+beskonačnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Din." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sre","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"n.e.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn.js b/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn.js deleted file mode 100644 index c657979..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sr-Latn.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture sr-Latn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sr-Latn", "default", { - name: "sr-Latn", - englishName: "Serbian (Latin)", - nativeName: "srpski", - language: "sr-Latn", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-beskonačnost", - positiveInfinity: "+beskonačnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Din." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sre","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"n.e.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sr.js b/Web/Scripts/globalize/cultures/globalize.culture.sr.js deleted file mode 100644 index 2d691fe..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sr.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Globalize Culture sr - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sr", "default", { - name: "sr", - englishName: "Serbian", - nativeName: "srpski", - language: "sr", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-beskonačnost", - positiveInfinity: "+beskonačnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Din." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sre","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"n.e.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sv-FI.js b/Web/Scripts/globalize/cultures/globalize.culture.sv-FI.js deleted file mode 100644 index 1aa912e..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sv-FI.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture sv-FI - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sv-FI", "default", { - name: "sv-FI", - englishName: "Swedish (Finland)", - nativeName: "svenska (Finland)", - language: "sv", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"], - namesAbbr: ["sö","må","ti","on","to","fr","lö"], - namesShort: ["sö","må","ti","on","to","fr","lö"] - }, - months: { - names: ["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "'den 'd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "'den 'd MMMM yyyy HH:mm", - F: "'den 'd MMMM yyyy HH:mm:ss", - M: "'den 'd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sv-SE.js b/Web/Scripts/globalize/cultures/globalize.culture.sv-SE.js deleted file mode 100644 index 5c2c729..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sv-SE.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture sv-SE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sv-SE", "default", { - name: "sv-SE", - englishName: "Swedish (Sweden)", - nativeName: "svenska (Sverige)", - language: "sv", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"], - namesAbbr: ["sö","må","ti","on","to","fr","lö"], - namesShort: ["sö","må","ti","on","to","fr","lö"] - }, - months: { - names: ["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "'den 'd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "'den 'd MMMM yyyy HH:mm", - F: "'den 'd MMMM yyyy HH:mm:ss", - M: "'den 'd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sv.js b/Web/Scripts/globalize/cultures/globalize.culture.sv.js deleted file mode 100644 index ed02c2f..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sv.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture sv - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sv", "default", { - name: "sv", - englishName: "Swedish", - nativeName: "svenska", - language: "sv", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"], - namesAbbr: ["sö","må","ti","on","to","fr","lö"], - namesShort: ["sö","må","ti","on","to","fr","lö"] - }, - months: { - names: ["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "'den 'd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "'den 'd MMMM yyyy HH:mm", - F: "'den 'd MMMM yyyy HH:mm:ss", - M: "'den 'd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sw-KE.js b/Web/Scripts/globalize/cultures/globalize.culture.sw-KE.js deleted file mode 100644 index 579e4fa..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sw-KE.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Globalize Culture sw-KE - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sw-KE", "default", { - name: "sw-KE", - englishName: "Kiswahili (Kenya)", - nativeName: "Kiswahili (Kenya)", - language: "sw", - numberFormat: { - currency: { - symbol: "S" - } - }, - calendars: { - standard: { - days: { - names: ["Jumapili","Jumatatu","Jumanne","Jumatano","Alhamisi","Ijumaa","Jumamosi"], - namesAbbr: ["Jumap.","Jumat.","Juman.","Jumat.","Alh.","Iju.","Jumam."], - namesShort: ["P","T","N","T","A","I","M"] - }, - months: { - names: ["Januari","Februari","Machi","Aprili","Mei","Juni","Julai","Agosti","Septemba","Oktoba","Novemba","Decemba",""], - namesAbbr: ["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ago","Sep","Okt","Nov","Dec",""] - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.sw.js b/Web/Scripts/globalize/cultures/globalize.culture.sw.js deleted file mode 100644 index 14824e9..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.sw.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Globalize Culture sw - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "sw", "default", { - name: "sw", - englishName: "Kiswahili", - nativeName: "Kiswahili", - language: "sw", - numberFormat: { - currency: { - symbol: "S" - } - }, - calendars: { - standard: { - days: { - names: ["Jumapili","Jumatatu","Jumanne","Jumatano","Alhamisi","Ijumaa","Jumamosi"], - namesAbbr: ["Jumap.","Jumat.","Juman.","Jumat.","Alh.","Iju.","Jumam."], - namesShort: ["P","T","N","T","A","I","M"] - }, - months: { - names: ["Januari","Februari","Machi","Aprili","Mei","Juni","Julai","Agosti","Septemba","Oktoba","Novemba","Decemba",""], - namesAbbr: ["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ago","Sep","Okt","Nov","Dec",""] - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.syr-SY.js b/Web/Scripts/globalize/cultures/globalize.culture.syr-SY.js deleted file mode 100644 index b44cf98..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.syr-SY.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture syr-SY - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "syr-SY", "default", { - name: "syr-SY", - englishName: "Syriac (Syria)", - nativeName: "ܣܘܪܝܝܐ (سوريا)", - language: "syr", - isRTL: true, - numberFormat: { - currency: { - pattern: ["$n-","$ n"], - symbol: "ل.س.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["ܚܕ ܒܫܒܐ","ܬܪܝܢ ܒܫܒܐ","ܬܠܬܐ ܒܫܒܐ","ܐܪܒܥܐ ܒܫܒܐ","ܚܡܫܐ ܒܫܒܐ","ܥܪܘܒܬܐ","ܫܒܬܐ"], - namesAbbr: ["\u070fܐ \u070fܒܫ","\u070fܒ \u070fܒܫ","\u070fܓ \u070fܒܫ","\u070fܕ \u070fܒܫ","\u070fܗ \u070fܒܫ","\u070fܥܪܘܒ","\u070fܫܒ"], - namesShort: ["ܐ","ܒ","ܓ","ܕ","ܗ","ܥ","ܫ"] - }, - months: { - names: ["ܟܢܘܢ ܐܚܪܝ","ܫܒܛ","ܐܕܪ","ܢܝܣܢ","ܐܝܪ","ܚܙܝܪܢ","ܬܡܘܙ","ܐܒ","ܐܝܠܘܠ","ܬܫܪܝ ܩܕܝܡ","ܬܫܪܝ ܐܚܪܝ","ܟܢܘܢ ܩܕܝܡ",""], - namesAbbr: ["\u070fܟܢ \u070fܒ","ܫܒܛ","ܐܕܪ","ܢܝܣܢ","ܐܝܪ","ܚܙܝܪܢ","ܬܡܘܙ","ܐܒ","ܐܝܠܘܠ","\u070fܬܫ \u070fܐ","\u070fܬܫ \u070fܒ","\u070fܟܢ \u070fܐ",""] - }, - AM: ["ܩ.ܛ","ܩ.ܛ","ܩ.ܛ"], - PM: ["ܒ.ܛ","ܒ.ܛ","ܒ.ܛ"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.syr.js b/Web/Scripts/globalize/cultures/globalize.culture.syr.js deleted file mode 100644 index 2d9f1d2..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.syr.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture syr - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "syr", "default", { - name: "syr", - englishName: "Syriac", - nativeName: "ܣܘܪܝܝܐ", - language: "syr", - isRTL: true, - numberFormat: { - currency: { - pattern: ["$n-","$ n"], - symbol: "ل.س.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["ܚܕ ܒܫܒܐ","ܬܪܝܢ ܒܫܒܐ","ܬܠܬܐ ܒܫܒܐ","ܐܪܒܥܐ ܒܫܒܐ","ܚܡܫܐ ܒܫܒܐ","ܥܪܘܒܬܐ","ܫܒܬܐ"], - namesAbbr: ["\u070fܐ \u070fܒܫ","\u070fܒ \u070fܒܫ","\u070fܓ \u070fܒܫ","\u070fܕ \u070fܒܫ","\u070fܗ \u070fܒܫ","\u070fܥܪܘܒ","\u070fܫܒ"], - namesShort: ["ܐ","ܒ","ܓ","ܕ","ܗ","ܥ","ܫ"] - }, - months: { - names: ["ܟܢܘܢ ܐܚܪܝ","ܫܒܛ","ܐܕܪ","ܢܝܣܢ","ܐܝܪ","ܚܙܝܪܢ","ܬܡܘܙ","ܐܒ","ܐܝܠܘܠ","ܬܫܪܝ ܩܕܝܡ","ܬܫܪܝ ܐܚܪܝ","ܟܢܘܢ ܩܕܝܡ",""], - namesAbbr: ["\u070fܟܢ \u070fܒ","ܫܒܛ","ܐܕܪ","ܢܝܣܢ","ܐܝܪ","ܚܙܝܪܢ","ܬܡܘܙ","ܐܒ","ܐܝܠܘܠ","\u070fܬܫ \u070fܐ","\u070fܬܫ \u070fܒ","\u070fܟܢ \u070fܐ",""] - }, - AM: ["ܩ.ܛ","ܩ.ܛ","ܩ.ܛ"], - PM: ["ܒ.ܛ","ܒ.ܛ","ܒ.ܛ"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ta-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.ta-IN.js deleted file mode 100644 index b9d550a..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ta-IN.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Globalize Culture ta-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ta-IN", "default", { - name: "ta-IN", - englishName: "Tamil (India)", - nativeName: "தமிழ் (இந்தியா)", - language: "ta", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ரூ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ஞாயிற்றுக்கிழமை","திங்கள்கிழமை","செவ்வாய்கிழமை","புதன்கிழமை","வியாழக்கிழமை","வெள்ளிக்கிழமை","சனிக்கிழமை"], - namesAbbr: ["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"], - namesShort: ["ஞா","தி","செ","பு","வி","வெ","ச"] - }, - months: { - names: ["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்ட்","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்",""], - namesAbbr: ["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்ட்","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்",""] - }, - AM: ["காலை","காலை","காலை"], - PM: ["மாலை","மாலை","மாலை"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ta.js b/Web/Scripts/globalize/cultures/globalize.culture.ta.js deleted file mode 100644 index 3d15ce1..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ta.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Globalize Culture ta - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ta", "default", { - name: "ta", - englishName: "Tamil", - nativeName: "தமிழ்", - language: "ta", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ரூ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ஞாயிற்றுக்கிழமை","திங்கள்கிழமை","செவ்வாய்கிழமை","புதன்கிழமை","வியாழக்கிழமை","வெள்ளிக்கிழமை","சனிக்கிழமை"], - namesAbbr: ["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"], - namesShort: ["ஞா","தி","செ","பு","வி","வெ","ச"] - }, - months: { - names: ["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்ட்","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்",""], - namesAbbr: ["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்ட்","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்",""] - }, - AM: ["காலை","காலை","காலை"], - PM: ["மாலை","மாலை","மாலை"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.te-IN.js b/Web/Scripts/globalize/cultures/globalize.culture.te-IN.js deleted file mode 100644 index b9f8b84..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.te-IN.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture te-IN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "te-IN", "default", { - name: "te-IN", - englishName: "Telugu (India)", - nativeName: "తెలుగు (భారత దేశం)", - language: "te", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "రూ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ఆదివారం","సోమవారం","మంగళవారం","బుధవారం","గురువారం","శుక్రవారం","శనివారం"], - namesAbbr: ["ఆది.","సోమ.","మంగళ.","బుధ.","గురు.","శుక్ర.","శని."], - namesShort: ["ఆ","సో","మం","బు","గు","శు","శ"] - }, - months: { - names: ["జనవరి","ఫిబ్రవరి","మార్చి","ఏప్రిల్","మే","జూన్","జూలై","ఆగస్టు","సెప్టెంబర్","అక్టోబర్","నవంబర్","డిసెంబర్",""], - namesAbbr: ["జనవరి","ఫిబ్రవరి","మార్చి","ఏప్రిల్","మే","జూన్","జూలై","ఆగస్టు","సెప్టెంబర్","అక్టోబర్","నవంబర్","డిసెంబర్",""] - }, - AM: ["పూర్వాహ్న","పూర్వాహ్న","పూర్వాహ్న"], - PM: ["అపరాహ్న","అపరాహ్న","అపరాహ్న"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.te.js b/Web/Scripts/globalize/cultures/globalize.culture.te.js deleted file mode 100644 index 4ef21e0..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.te.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture te - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "te", "default", { - name: "te", - englishName: "Telugu", - nativeName: "తెలుగు", - language: "te", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "రూ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ఆదివారం","సోమవారం","మంగళవారం","బుధవారం","గురువారం","శుక్రవారం","శనివారం"], - namesAbbr: ["ఆది.","సోమ.","మంగళ.","బుధ.","గురు.","శుక్ర.","శని."], - namesShort: ["ఆ","సో","మం","బు","గు","శు","శ"] - }, - months: { - names: ["జనవరి","ఫిబ్రవరి","మార్చి","ఏప్రిల్","మే","జూన్","జూలై","ఆగస్టు","సెప్టెంబర్","అక్టోబర్","నవంబర్","డిసెంబర్",""], - namesAbbr: ["జనవరి","ఫిబ్రవరి","మార్చి","ఏప్రిల్","మే","జూన్","జూలై","ఆగస్టు","సెప్టెంబర్","అక్టోబర్","నవంబర్","డిసెంబర్",""] - }, - AM: ["పూర్వాహ్న","పూర్వాహ్న","పూర్వాహ్న"], - PM: ["అపరాహ్న","అపరాహ్న","అపరాహ్న"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tg-Cyrl-TJ.js b/Web/Scripts/globalize/cultures/globalize.culture.tg-Cyrl-TJ.js deleted file mode 100644 index 3fe4d1b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tg-Cyrl-TJ.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Globalize Culture tg-Cyrl-TJ - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tg-Cyrl-TJ", "default", { - name: "tg-Cyrl-TJ", - englishName: "Tajik (Cyrillic, Tajikistan)", - nativeName: "Тоҷикӣ (Тоҷикистон)", - language: "tg-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - groupSizes: [3,0], - ",": " ", - ".": ";", - symbol: "т.р." - } - }, - calendars: { - standard: { - "/": ".", - days: { - names: ["Яш","Душанбе","Сешанбе","Чоршанбе","Панҷшанбе","Ҷумъа","Шанбе"], - namesAbbr: ["Яш","Дш","Сш","Чш","Пш","Ҷм","Шн"], - namesShort: ["Яш","Дш","Сш","Чш","Пш","Ҷм","Шн"] - }, - months: { - names: ["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["январи","феврали","марти","апрели","маи","июни","июли","августи","сентябри","октябри","ноябри","декабри",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tg-Cyrl.js b/Web/Scripts/globalize/cultures/globalize.culture.tg-Cyrl.js deleted file mode 100644 index 5825abd..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tg-Cyrl.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Globalize Culture tg-Cyrl - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tg-Cyrl", "default", { - name: "tg-Cyrl", - englishName: "Tajik (Cyrillic)", - nativeName: "Тоҷикӣ", - language: "tg-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - groupSizes: [3,0], - ",": " ", - ".": ";", - symbol: "т.р." - } - }, - calendars: { - standard: { - "/": ".", - days: { - names: ["Яш","Душанбе","Сешанбе","Чоршанбе","Панҷшанбе","Ҷумъа","Шанбе"], - namesAbbr: ["Яш","Дш","Сш","Чш","Пш","Ҷм","Шн"], - namesShort: ["Яш","Дш","Сш","Чш","Пш","Ҷм","Шн"] - }, - months: { - names: ["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["январи","феврали","марти","апрели","маи","июни","июли","августи","сентябри","октябри","ноябри","декабри",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tg.js b/Web/Scripts/globalize/cultures/globalize.culture.tg.js deleted file mode 100644 index 5c3494f..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tg.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Globalize Culture tg - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tg", "default", { - name: "tg", - englishName: "Tajik", - nativeName: "Тоҷикӣ", - language: "tg", - numberFormat: { - ",": " ", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - groupSizes: [3,0], - ",": " ", - ".": ";", - symbol: "т.р." - } - }, - calendars: { - standard: { - "/": ".", - days: { - names: ["Яш","Душанбе","Сешанбе","Чоршанбе","Панҷшанбе","Ҷумъа","Шанбе"], - namesAbbr: ["Яш","Дш","Сш","Чш","Пш","Ҷм","Шн"], - namesShort: ["Яш","Дш","Сш","Чш","Пш","Ҷм","Шн"] - }, - months: { - names: ["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["январи","феврали","марти","апрели","маи","июни","июли","августи","сентябри","октябри","ноябри","декабри",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.th-TH.js b/Web/Scripts/globalize/cultures/globalize.culture.th-TH.js deleted file mode 100644 index 5451bf1..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.th-TH.js +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Globalize Culture th-TH - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "th-TH", "default", { - name: "th-TH", - englishName: "Thai (Thailand)", - nativeName: "ไทย (ไทย)", - language: "th", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "฿" - } - }, - calendars: { - standard: { - name: "ThaiBuddhist", - firstDay: 1, - days: { - names: ["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"], - namesAbbr: ["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."], - namesShort: ["อ","จ","อ","พ","พ","ศ","ส"] - }, - months: { - names: ["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม",""], - namesAbbr: ["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค.",""] - }, - eras: [{"name":"พ.ศ.","start":null,"offset":-543}], - twoDigitYearMax: 2572, - patterns: { - d: "d/M/yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - }, - Gregorian_Localized: { - firstDay: 1, - days: { - names: ["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"], - namesAbbr: ["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."], - namesShort: ["อ","จ","อ","พ","พ","ศ","ส"] - }, - months: { - names: ["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม",""], - namesAbbr: ["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค.",""] - }, - patterns: { - d: "d/M/yyyy", - D: "'วัน'dddd'ที่' d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "'วัน'dddd'ที่' d MMMM yyyy H:mm", - F: "'วัน'dddd'ที่' d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.th.js b/Web/Scripts/globalize/cultures/globalize.culture.th.js deleted file mode 100644 index 5490f58..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.th.js +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Globalize Culture th - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "th", "default", { - name: "th", - englishName: "Thai", - nativeName: "ไทย", - language: "th", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "฿" - } - }, - calendars: { - standard: { - name: "ThaiBuddhist", - firstDay: 1, - days: { - names: ["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"], - namesAbbr: ["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."], - namesShort: ["อ","จ","อ","พ","พ","ศ","ส"] - }, - months: { - names: ["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม",""], - namesAbbr: ["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค.",""] - }, - eras: [{"name":"พ.ศ.","start":null,"offset":-543}], - twoDigitYearMax: 2572, - patterns: { - d: "d/M/yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - }, - Gregorian_Localized: { - firstDay: 1, - days: { - names: ["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"], - namesAbbr: ["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."], - namesShort: ["อ","จ","อ","พ","พ","ศ","ส"] - }, - months: { - names: ["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม",""], - namesAbbr: ["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค.",""] - }, - patterns: { - d: "d/M/yyyy", - D: "'วัน'dddd'ที่' d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "'วัน'dddd'ที่' d MMMM yyyy H:mm", - F: "'วัน'dddd'ที่' d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tk-TM.js b/Web/Scripts/globalize/cultures/globalize.culture.tk-TM.js deleted file mode 100644 index 7f2e2a3..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tk-TM.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture tk-TM - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tk-TM", "default", { - name: "tk-TM", - englishName: "Turkmen (Turkmenistan)", - nativeName: "türkmençe (Türkmenistan)", - language: "tk", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-üznüksizlik", - positiveInfinity: "üznüksizlik", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "m." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Duşenbe","Sişenbe","Çarşenbe","Penşenbe","Anna","Şenbe","Ýekşenbe"], - namesAbbr: ["Db","Sb","Çb","Pb","An","Şb","Ýb"], - namesShort: ["D","S","Ç","P","A","Ş","Ý"] - }, - months: { - names: ["Ýanwar","Fewral","Mart","Aprel","Maý","lýun","lýul","Awgust","Sentýabr","Oktýabr","Noýabr","Dekabr",""], - namesAbbr: ["Ýan","Few","Mart","Apr","Maý","lýun","lýul","Awg","Sen","Okt","Not","Dek",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "yyyy 'ý.' MMMM d", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'ý.' MMMM d H:mm", - F: "yyyy 'ý.' MMMM d H:mm:ss", - Y: "yyyy 'ý.' MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tk.js b/Web/Scripts/globalize/cultures/globalize.culture.tk.js deleted file mode 100644 index 151c2ee..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tk.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Globalize Culture tk - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tk", "default", { - name: "tk", - englishName: "Turkmen", - nativeName: "türkmençe", - language: "tk", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-üznüksizlik", - positiveInfinity: "üznüksizlik", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "m." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Duşenbe","Sişenbe","Çarşenbe","Penşenbe","Anna","Şenbe","Ýekşenbe"], - namesAbbr: ["Db","Sb","Çb","Pb","An","Şb","Ýb"], - namesShort: ["D","S","Ç","P","A","Ş","Ý"] - }, - months: { - names: ["Ýanwar","Fewral","Mart","Aprel","Maý","lýun","lýul","Awgust","Sentýabr","Oktýabr","Noýabr","Dekabr",""], - namesAbbr: ["Ýan","Few","Mart","Apr","Maý","lýun","lýul","Awg","Sen","Okt","Not","Dek",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "yyyy 'ý.' MMMM d", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'ý.' MMMM d H:mm", - F: "yyyy 'ý.' MMMM d H:mm:ss", - Y: "yyyy 'ý.' MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tn-ZA.js b/Web/Scripts/globalize/cultures/globalize.culture.tn-ZA.js deleted file mode 100644 index e08cc81..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tn-ZA.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture tn-ZA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tn-ZA", "default", { - name: "tn-ZA", - englishName: "Setswana (South Africa)", - nativeName: "Setswana (Aforika Borwa)", - language: "tn", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["Latshipi","Mosupologo","Labobedi","Laboraro","Labone","Labotlhano","Lamatlhatso"], - namesAbbr: ["Ltp.","Mos.","Lbd.","Lbr.","Lbn.","Lbt.","Lmt."], - namesShort: ["Lp","Ms","Lb","Lr","Ln","Lt","Lm"] - }, - months: { - names: ["Ferikgong","Tlhakole","Mopitloe","Moranang","Motsheganong","Seetebosigo","Phukwi","Phatwe","Lwetse","Diphalane","Ngwanatsele","Sedimothole",""], - namesAbbr: ["Fer.","Tlhak.","Mop.","Mor.","Motsh.","Seet.","Phukw.","Phatw.","Lwets.","Diph.","Ngwan.","Sed.",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tn.js b/Web/Scripts/globalize/cultures/globalize.culture.tn.js deleted file mode 100644 index 54b9745..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tn.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Globalize Culture tn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tn", "default", { - name: "tn", - englishName: "Setswana", - nativeName: "Setswana", - language: "tn", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["Latshipi","Mosupologo","Labobedi","Laboraro","Labone","Labotlhano","Lamatlhatso"], - namesAbbr: ["Ltp.","Mos.","Lbd.","Lbr.","Lbn.","Lbt.","Lmt."], - namesShort: ["Lp","Ms","Lb","Lr","Ln","Lt","Lm"] - }, - months: { - names: ["Ferikgong","Tlhakole","Mopitloe","Moranang","Motsheganong","Seetebosigo","Phukwi","Phatwe","Lwetse","Diphalane","Ngwanatsele","Sedimothole",""], - namesAbbr: ["Fer.","Tlhak.","Mop.","Mor.","Motsh.","Seet.","Phukw.","Phatw.","Lwets.","Diph.","Ngwan.","Sed.",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tr-TR.js b/Web/Scripts/globalize/cultures/globalize.culture.tr-TR.js deleted file mode 100644 index c0377ba..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tr-TR.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture tr-TR - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tr-TR", "default", { - name: "tr-TR", - englishName: "Turkish (Turkey)", - nativeName: "Türkçe (Türkiye)", - language: "tr", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "TL" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"], - namesAbbr: ["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"], - namesShort: ["Pz","Pt","Sa","Ça","Pe","Cu","Ct"] - }, - months: { - names: ["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık",""], - namesAbbr: ["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "dd MMMM yyyy dddd", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy dddd HH:mm", - F: "dd MMMM yyyy dddd HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tr.js b/Web/Scripts/globalize/cultures/globalize.culture.tr.js deleted file mode 100644 index 47a18cc..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tr.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture tr - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tr", "default", { - name: "tr", - englishName: "Turkish", - nativeName: "Türkçe", - language: "tr", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "TL" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"], - namesAbbr: ["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"], - namesShort: ["Pz","Pt","Sa","Ça","Pe","Cu","Ct"] - }, - months: { - names: ["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık",""], - namesAbbr: ["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "dd MMMM yyyy dddd", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy dddd HH:mm", - F: "dd MMMM yyyy dddd HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tt-RU.js b/Web/Scripts/globalize/cultures/globalize.culture.tt-RU.js deleted file mode 100644 index 163d755..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tt-RU.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture tt-RU - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tt-RU", "default", { - name: "tt-RU", - englishName: "Tatar (Russia)", - nativeName: "Татар (Россия)", - language: "tt", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "р." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Якшәмбе","Дүшәмбе","Сишәмбе","Чәршәмбе","Пәнҗешәмбе","Җомга","Шимбә"], - namesAbbr: ["Якш","Дүш","Сиш","Чәрш","Пәнҗ","Җом","Шим"], - namesShort: ["Я","Д","С","Ч","П","Җ","Ш"] - }, - months: { - names: ["Гыйнвар","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь",""], - namesAbbr: ["Гыйн.","Фев.","Мар.","Апр.","Май","Июнь","Июль","Авг.","Сен.","Окт.","Нояб.","Дек.",""] - }, - monthsGenitive: { - names: ["Гыйнварның","Февральнең","Мартның","Апрельнең","Майның","Июньнең","Июльнең","Августның","Сентябрьның","Октябрьның","Ноябрьның","Декабрьның",""], - namesAbbr: ["Гыйн.-ның","Фев.-нең","Мар.-ның","Апр.-нең","Майның","Июньнең","Июльнең","Авг.-ның","Сен.-ның","Окт.-ның","Нояб.-ның","Дек.-ның",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tt.js b/Web/Scripts/globalize/cultures/globalize.culture.tt.js deleted file mode 100644 index 0d810ad..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tt.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture tt - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tt", "default", { - name: "tt", - englishName: "Tatar", - nativeName: "Татар", - language: "tt", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "р." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Якшәмбе","Дүшәмбе","Сишәмбе","Чәршәмбе","Пәнҗешәмбе","Җомга","Шимбә"], - namesAbbr: ["Якш","Дүш","Сиш","Чәрш","Пәнҗ","Җом","Шим"], - namesShort: ["Я","Д","С","Ч","П","Җ","Ш"] - }, - months: { - names: ["Гыйнвар","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь",""], - namesAbbr: ["Гыйн.","Фев.","Мар.","Апр.","Май","Июнь","Июль","Авг.","Сен.","Окт.","Нояб.","Дек.",""] - }, - monthsGenitive: { - names: ["Гыйнварның","Февральнең","Мартның","Апрельнең","Майның","Июньнең","Июльнең","Августның","Сентябрьның","Октябрьның","Ноябрьның","Декабрьның",""], - namesAbbr: ["Гыйн.-ның","Фев.-нең","Мар.-ның","Апр.-нең","Майның","Июньнең","Июльнең","Авг.-ның","Сен.-ның","Окт.-ның","Нояб.-ның","Дек.-ның",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tzm-Latn-DZ.js b/Web/Scripts/globalize/cultures/globalize.culture.tzm-Latn-DZ.js deleted file mode 100644 index 68504af..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tzm-Latn-DZ.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture tzm-Latn-DZ - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tzm-Latn-DZ", "default", { - name: "tzm-Latn-DZ", - englishName: "Tamazight (Latin, Algeria)", - nativeName: "Tamazight (Djazaïr)", - language: "tzm-Latn", - numberFormat: { - pattern: ["n-"], - ",": ".", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - symbol: "DZD" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 6, - days: { - names: ["Acer","Arime","Aram","Ahad","Amhadh","Sem","Sedh"], - namesAbbr: ["Ace","Ari","Ara","Aha","Amh","Sem","Sed"], - namesShort: ["Ac","Ar","Ar","Ah","Am","Se","Se"] - }, - months: { - names: ["Yenayer","Furar","Maghres","Yebrir","Mayu","Yunyu","Yulyu","Ghuct","Cutenber","Ktuber","Wambir","Dujanbir",""], - namesAbbr: ["Yen","Fur","Mag","Yeb","May","Yun","Yul","Ghu","Cut","Ktu","Wam","Duj",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM, yyyy H:mm", - F: "dd MMMM, yyyy H:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tzm-Latn.js b/Web/Scripts/globalize/cultures/globalize.culture.tzm-Latn.js deleted file mode 100644 index 0391387..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tzm-Latn.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture tzm-Latn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tzm-Latn", "default", { - name: "tzm-Latn", - englishName: "Tamazight (Latin)", - nativeName: "Tamazight", - language: "tzm-Latn", - numberFormat: { - pattern: ["n-"], - ",": ".", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - symbol: "DZD" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 6, - days: { - names: ["Acer","Arime","Aram","Ahad","Amhadh","Sem","Sedh"], - namesAbbr: ["Ace","Ari","Ara","Aha","Amh","Sem","Sed"], - namesShort: ["Ac","Ar","Ar","Ah","Am","Se","Se"] - }, - months: { - names: ["Yenayer","Furar","Maghres","Yebrir","Mayu","Yunyu","Yulyu","Ghuct","Cutenber","Ktuber","Wambir","Dujanbir",""], - namesAbbr: ["Yen","Fur","Mag","Yeb","May","Yun","Yul","Ghu","Cut","Ktu","Wam","Duj",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM, yyyy H:mm", - F: "dd MMMM, yyyy H:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.tzm.js b/Web/Scripts/globalize/cultures/globalize.culture.tzm.js deleted file mode 100644 index 92b44c6..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.tzm.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture tzm - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "tzm", "default", { - name: "tzm", - englishName: "Tamazight", - nativeName: "Tamazight", - language: "tzm", - numberFormat: { - pattern: ["n-"], - ",": ".", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - symbol: "DZD" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 6, - days: { - names: ["Acer","Arime","Aram","Ahad","Amhadh","Sem","Sedh"], - namesAbbr: ["Ace","Ari","Ara","Aha","Amh","Sem","Sed"], - namesShort: ["Ac","Ar","Ar","Ah","Am","Se","Se"] - }, - months: { - names: ["Yenayer","Furar","Maghres","Yebrir","Mayu","Yunyu","Yulyu","Ghuct","Cutenber","Ktuber","Wambir","Dujanbir",""], - namesAbbr: ["Yen","Fur","Mag","Yeb","May","Yun","Yul","Ghu","Cut","Ktu","Wam","Duj",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM, yyyy H:mm", - F: "dd MMMM, yyyy H:mm:ss", - M: "dd MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ug-CN.js b/Web/Scripts/globalize/cultures/globalize.culture.ug-CN.js deleted file mode 100644 index 02a3d50..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ug-CN.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Globalize Culture ug-CN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ug-CN", "default", { - name: "ug-CN", - englishName: "Uyghur (PRC)", - nativeName: "ئۇيغۇرچە (جۇڭخۇا خەلق جۇمھۇرىيىتى)", - language: "ug", - isRTL: true, - numberFormat: { - "NaN": "سان ئەمەس", - negativeInfinity: "مەنپىي چەكسىزلىك", - positiveInfinity: "مۇسبەت چەكسىزلىك", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["يەكشەنبە","دۈشەنبە","سەيشەنبە","چارشەنبە","پەيشەنبە","جۈمە","شەنبە"], - namesAbbr: ["يە","دۈ","سە","چا","پە","جۈ","شە"], - namesShort: ["ي","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["1-ئاي","2-ئاي","3-ئاي","4-ئاي","5-ئاي","6-ئاي","7-ئاي","8-ئاي","9-ئاي","10-ئاي","11-ئاي","12-ئاي",""], - namesAbbr: ["1-ئاي","2-ئاي","3-ئاي","4-ئاي","5-ئاي","6-ئاي","7-ئاي","8-ئاي","9-ئاي","10-ئاي","11-ئاي","12-ئاي",""] - }, - AM: ["چۈشتىن بۇرۇن","چۈشتىن بۇرۇن","چۈشتىن بۇرۇن"], - PM: ["چۈشتىن كېيىن","چۈشتىن كېيىن","چۈشتىن كېيىن"], - eras: [{"name":"مىلادى","start":null,"offset":0}], - patterns: { - d: "yyyy-M-d", - D: "yyyy-'يىلى' MMMM d-'كۈنى،'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy-'يىلى' MMMM d-'كۈنى،' H:mm", - F: "yyyy-'يىلى' MMMM d-'كۈنى،' H:mm:ss", - M: "MMMM d'-كۈنى'", - Y: "yyyy-'يىلى' MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ug.js b/Web/Scripts/globalize/cultures/globalize.culture.ug.js deleted file mode 100644 index d8dd8a4..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ug.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Globalize Culture ug - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ug", "default", { - name: "ug", - englishName: "Uyghur", - nativeName: "ئۇيغۇرچە", - language: "ug", - isRTL: true, - numberFormat: { - "NaN": "سان ئەمەس", - negativeInfinity: "مەنپىي چەكسىزلىك", - positiveInfinity: "مۇسبەت چەكسىزلىك", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["يەكشەنبە","دۈشەنبە","سەيشەنبە","چارشەنبە","پەيشەنبە","جۈمە","شەنبە"], - namesAbbr: ["يە","دۈ","سە","چا","پە","جۈ","شە"], - namesShort: ["ي","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["1-ئاي","2-ئاي","3-ئاي","4-ئاي","5-ئاي","6-ئاي","7-ئاي","8-ئاي","9-ئاي","10-ئاي","11-ئاي","12-ئاي",""], - namesAbbr: ["1-ئاي","2-ئاي","3-ئاي","4-ئاي","5-ئاي","6-ئاي","7-ئاي","8-ئاي","9-ئاي","10-ئاي","11-ئاي","12-ئاي",""] - }, - AM: ["چۈشتىن بۇرۇن","چۈشتىن بۇرۇن","چۈشتىن بۇرۇن"], - PM: ["چۈشتىن كېيىن","چۈشتىن كېيىن","چۈشتىن كېيىن"], - eras: [{"name":"مىلادى","start":null,"offset":0}], - patterns: { - d: "yyyy-M-d", - D: "yyyy-'يىلى' MMMM d-'كۈنى،'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy-'يىلى' MMMM d-'كۈنى،' H:mm", - F: "yyyy-'يىلى' MMMM d-'كۈنى،' H:mm:ss", - M: "MMMM d'-كۈنى'", - Y: "yyyy-'يىلى' MMMM" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.uk-UA.js b/Web/Scripts/globalize/cultures/globalize.culture.uk-UA.js deleted file mode 100644 index e46fe44..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.uk-UA.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Globalize Culture uk-UA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "uk-UA", "default", { - name: "uk-UA", - englishName: "Ukrainian (Ukraine)", - nativeName: "українська (Україна)", - language: "uk", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-безмежність", - positiveInfinity: "безмежність", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "₴" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["неділя","понеділок","вівторок","середа","четвер","п'ятниця","субота"], - namesAbbr: ["Нд","Пн","Вт","Ср","Чт","Пт","Сб"], - namesShort: ["Нд","Пн","Вт","Ср","Чт","Пт","Сб"] - }, - months: { - names: ["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень",""], - namesAbbr: ["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру",""] - }, - monthsGenitive: { - names: ["січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня",""], - namesAbbr: ["січ","лют","бер","кві","тра","чер","лип","сер","вер","жов","лис","гру",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy' р.'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy' р.' H:mm", - F: "d MMMM yyyy' р.' H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy' р.'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.uk.js b/Web/Scripts/globalize/cultures/globalize.culture.uk.js deleted file mode 100644 index 18e0a89..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.uk.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Globalize Culture uk - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "uk", "default", { - name: "uk", - englishName: "Ukrainian", - nativeName: "українська", - language: "uk", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-безмежність", - positiveInfinity: "безмежність", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "₴" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["неділя","понеділок","вівторок","середа","четвер","п'ятниця","субота"], - namesAbbr: ["Нд","Пн","Вт","Ср","Чт","Пт","Сб"], - namesShort: ["Нд","Пн","Вт","Ср","Чт","Пт","Сб"] - }, - months: { - names: ["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень",""], - namesAbbr: ["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру",""] - }, - monthsGenitive: { - names: ["січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня",""], - namesAbbr: ["січ","лют","бер","кві","тра","чер","лип","сер","вер","жов","лис","гру",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy' р.'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy' р.' H:mm", - F: "d MMMM yyyy' р.' H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy' р.'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ur-PK.js b/Web/Scripts/globalize/cultures/globalize.culture.ur-PK.js deleted file mode 100644 index c92e6e3..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ur-PK.js +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Globalize Culture ur-PK - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ur-PK", "default", { - name: "ur-PK", - englishName: "Urdu (Islamic Republic of Pakistan)", - nativeName: "اُردو (پاکستان)", - language: "ur", - isRTL: true, - numberFormat: { - currency: { - pattern: ["$n-","$n"], - symbol: "Rs" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["اتوار","پير","منگل","بدھ","جمعرات","جمعه","هفته"], - namesAbbr: ["اتوار","پير","منگل","بدھ","جمعرات","جمعه","هفته"], - namesShort: ["ا","پ","م","ب","ج","ج","ه"] - }, - months: { - names: ["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر",""], - namesAbbr: ["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر",""] - }, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - f: "dd MMMM, yyyy h:mm tt", - F: "dd MMMM, yyyy h:mm:ss tt", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - f: "dd/MM/yyyy h:mm tt", - F: "dd/MM/yyyy h:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.ur.js b/Web/Scripts/globalize/cultures/globalize.culture.ur.js deleted file mode 100644 index 3b6709d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.ur.js +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Globalize Culture ur - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ur", "default", { - name: "ur", - englishName: "Urdu", - nativeName: "اُردو", - language: "ur", - isRTL: true, - numberFormat: { - currency: { - pattern: ["$n-","$n"], - symbol: "Rs" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["اتوار","پير","منگل","بدھ","جمعرات","جمعه","هفته"], - namesAbbr: ["اتوار","پير","منگل","بدھ","جمعرات","جمعه","هفته"], - namesShort: ["ا","پ","م","ب","ج","ج","ه"] - }, - months: { - names: ["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر",""], - namesAbbr: ["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر",""] - }, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - f: "dd MMMM, yyyy h:mm tt", - F: "dd MMMM, yyyy h:mm:ss tt", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - f: "dd/MM/yyyy h:mm tt", - F: "dd/MM/yyyy h:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.uz-Cyrl-UZ.js b/Web/Scripts/globalize/cultures/globalize.culture.uz-Cyrl-UZ.js deleted file mode 100644 index f034500..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.uz-Cyrl-UZ.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture uz-Cyrl-UZ - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "uz-Cyrl-UZ", "default", { - name: "uz-Cyrl-UZ", - englishName: "Uzbek (Cyrillic, Uzbekistan)", - nativeName: "Ўзбек (Ўзбекистон)", - language: "uz-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "сўм" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["якшанба","душанба","сешанба","чоршанба","пайшанба","жума","шанба"], - namesAbbr: ["якш","дш","сш","чш","пш","ж","ш"], - namesShort: ["я","д","с","ч","п","ж","ш"] - }, - months: { - names: ["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["январ","феврал","март","апрел","май","июн","июл","август","сентябр","октябр","ноябр","декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","мая","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "yyyy 'йил' d-MMMM", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'йил' d-MMMM HH:mm", - F: "yyyy 'йил' d-MMMM HH:mm:ss", - M: "d-MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.uz-Cyrl.js b/Web/Scripts/globalize/cultures/globalize.culture.uz-Cyrl.js deleted file mode 100644 index 8dbb77c..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.uz-Cyrl.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Globalize Culture uz-Cyrl - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "uz-Cyrl", "default", { - name: "uz-Cyrl", - englishName: "Uzbek (Cyrillic)", - nativeName: "Ўзбек", - language: "uz-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "сўм" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["якшанба","душанба","сешанба","чоршанба","пайшанба","жума","шанба"], - namesAbbr: ["якш","дш","сш","чш","пш","ж","ш"], - namesShort: ["я","д","с","ч","п","ж","ш"] - }, - months: { - names: ["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["январ","феврал","март","апрел","май","июн","июл","август","сентябр","октябр","ноябр","декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","мая","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "yyyy 'йил' d-MMMM", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'йил' d-MMMM HH:mm", - F: "yyyy 'йил' d-MMMM HH:mm:ss", - M: "d-MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.uz-Latn-UZ.js b/Web/Scripts/globalize/cultures/globalize.culture.uz-Latn-UZ.js deleted file mode 100644 index 7f22ce8..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.uz-Latn-UZ.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture uz-Latn-UZ - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "uz-Latn-UZ", "default", { - name: "uz-Latn-UZ", - englishName: "Uzbek (Latin, Uzbekistan)", - nativeName: "U'zbek (U'zbekiston Respublikasi)", - language: "uz-Latn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - decimals: 0, - ",": " ", - ".": ",", - symbol: "so'm" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["yakshanba","dushanba","seshanba","chorshanba","payshanba","juma","shanba"], - namesAbbr: ["yak.","dsh.","sesh.","chr.","psh.","jm.","sh."], - namesShort: ["ya","d","s","ch","p","j","sh"] - }, - months: { - names: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""], - namesAbbr: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM yyyy", - D: "yyyy 'yil' d-MMMM", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'yil' d-MMMM HH:mm", - F: "yyyy 'yil' d-MMMM HH:mm:ss", - M: "d-MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.uz-Latn.js b/Web/Scripts/globalize/cultures/globalize.culture.uz-Latn.js deleted file mode 100644 index 33d160b..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.uz-Latn.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture uz-Latn - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "uz-Latn", "default", { - name: "uz-Latn", - englishName: "Uzbek (Latin)", - nativeName: "U'zbek", - language: "uz-Latn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - decimals: 0, - ",": " ", - ".": ",", - symbol: "so'm" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["yakshanba","dushanba","seshanba","chorshanba","payshanba","juma","shanba"], - namesAbbr: ["yak.","dsh.","sesh.","chr.","psh.","jm.","sh."], - namesShort: ["ya","d","s","ch","p","j","sh"] - }, - months: { - names: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""], - namesAbbr: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM yyyy", - D: "yyyy 'yil' d-MMMM", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'yil' d-MMMM HH:mm", - F: "yyyy 'yil' d-MMMM HH:mm:ss", - M: "d-MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.uz.js b/Web/Scripts/globalize/cultures/globalize.culture.uz.js deleted file mode 100644 index 63eac49..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.uz.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Globalize Culture uz - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "uz", "default", { - name: "uz", - englishName: "Uzbek", - nativeName: "U'zbek", - language: "uz", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - decimals: 0, - ",": " ", - ".": ",", - symbol: "so'm" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["yakshanba","dushanba","seshanba","chorshanba","payshanba","juma","shanba"], - namesAbbr: ["yak.","dsh.","sesh.","chr.","psh.","jm.","sh."], - namesShort: ["ya","d","s","ch","p","j","sh"] - }, - months: { - names: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""], - namesAbbr: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM yyyy", - D: "yyyy 'yil' d-MMMM", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'yil' d-MMMM HH:mm", - F: "yyyy 'yil' d-MMMM HH:mm:ss", - M: "d-MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.vi-VN.js b/Web/Scripts/globalize/cultures/globalize.culture.vi-VN.js deleted file mode 100644 index b559778..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.vi-VN.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Globalize Culture vi-VN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "vi-VN", "default", { - name: "vi-VN", - englishName: "Vietnamese (Vietnam)", - nativeName: "Tiếng Việt (Việt Nam)", - language: "vi", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "₫" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"], - namesAbbr: ["CN","Hai","Ba","Tư","Năm","Sáu","Bảy"], - namesShort: ["C","H","B","T","N","S","B"] - }, - months: { - names: ["Tháng Giêng","Tháng Hai","Tháng Ba","Tháng Tư","Tháng Năm","Tháng Sáu","Tháng Bảy","Tháng Tám","Tháng Chín","Tháng Mười","Tháng Mười Một","Tháng Mười Hai",""], - namesAbbr: ["Thg1","Thg2","Thg3","Thg4","Thg5","Thg6","Thg7","Thg8","Thg9","Thg10","Thg11","Thg12",""] - }, - AM: ["SA","sa","SA"], - PM: ["CH","ch","CH"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - f: "dd MMMM yyyy h:mm tt", - F: "dd MMMM yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.vi.js b/Web/Scripts/globalize/cultures/globalize.culture.vi.js deleted file mode 100644 index d7191bf..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.vi.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Globalize Culture vi - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "vi", "default", { - name: "vi", - englishName: "Vietnamese", - nativeName: "Tiếng Việt", - language: "vi", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "₫" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"], - namesAbbr: ["CN","Hai","Ba","Tư","Năm","Sáu","Bảy"], - namesShort: ["C","H","B","T","N","S","B"] - }, - months: { - names: ["Tháng Giêng","Tháng Hai","Tháng Ba","Tháng Tư","Tháng Năm","Tháng Sáu","Tháng Bảy","Tháng Tám","Tháng Chín","Tháng Mười","Tháng Mười Một","Tháng Mười Hai",""], - namesAbbr: ["Thg1","Thg2","Thg3","Thg4","Thg5","Thg6","Thg7","Thg8","Thg9","Thg10","Thg11","Thg12",""] - }, - AM: ["SA","sa","SA"], - PM: ["CH","ch","CH"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - f: "dd MMMM yyyy h:mm tt", - F: "dd MMMM yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.wo-SN.js b/Web/Scripts/globalize/cultures/globalize.culture.wo-SN.js deleted file mode 100644 index 245f6ec..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.wo-SN.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture wo-SN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "wo-SN", "default", { - name: "wo-SN", - englishName: "Wolof (Senegal)", - nativeName: "Wolof (Sénégal)", - language: "wo", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "XOF" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.wo.js b/Web/Scripts/globalize/cultures/globalize.culture.wo.js deleted file mode 100644 index da94905..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.wo.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Globalize Culture wo - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "wo", "default", { - name: "wo", - englishName: "Wolof", - nativeName: "Wolof", - language: "wo", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "XOF" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.xh-ZA.js b/Web/Scripts/globalize/cultures/globalize.culture.xh-ZA.js deleted file mode 100644 index 10f34c3..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.xh-ZA.js +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Globalize Culture xh-ZA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "xh-ZA", "default", { - name: "xh-ZA", - englishName: "isiXhosa (South Africa)", - nativeName: "isiXhosa (uMzantsi Afrika)", - language: "xh", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["iCawa","uMvulo","uLwesibini","uLwesithathu","uLwesine","uLwesihlanu","uMgqibelo"], - namesShort: ["Ca","Mv","Lb","Lt","Ln","Lh","Mg"] - }, - months: { - names: ["Mqungu","Mdumba","Kwindla","Tshazimpuzi","Canzibe","Silimela","Khala","Thupha","Msintsi","Dwarha","Nkanga","Mnga",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.xh.js b/Web/Scripts/globalize/cultures/globalize.culture.xh.js deleted file mode 100644 index d15a3b8..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.xh.js +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Globalize Culture xh - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "xh", "default", { - name: "xh", - englishName: "isiXhosa", - nativeName: "isiXhosa", - language: "xh", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["iCawa","uMvulo","uLwesibini","uLwesithathu","uLwesine","uLwesihlanu","uMgqibelo"], - namesShort: ["Ca","Mv","Lb","Lt","Ln","Lh","Mg"] - }, - months: { - names: ["Mqungu","Mdumba","Kwindla","Tshazimpuzi","Canzibe","Silimela","Khala","Thupha","Msintsi","Dwarha","Nkanga","Mnga",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.yo-NG.js b/Web/Scripts/globalize/cultures/globalize.culture.yo-NG.js deleted file mode 100644 index c968ad3..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.yo-NG.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Globalize Culture yo-NG - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "yo-NG", "default", { - name: "yo-NG", - englishName: "Yoruba (Nigeria)", - nativeName: "Yoruba (Nigeria)", - language: "yo", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Aiku","Aje","Isegun","Ojo'ru","Ojo'bo","Eti","Abameta"], - namesAbbr: ["Aik","Aje","Ise","Ojo","Ojo","Eti","Aba"], - namesShort: ["A","A","I","O","O","E","A"] - }, - months: { - names: ["Osu kinni","Osu keji","Osu keta","Osu kerin","Osu karun","Osu kefa","Osu keje","Osu kejo","Osu kesan","Osu kewa","Osu kokanla","Osu keresi",""], - namesAbbr: ["kin.","kej.","ket.","ker.","kar.","kef.","kej.","kej.","kes.","kew.","kok.","ker.",""] - }, - AM: ["Owuro","owuro","OWURO"], - PM: ["Ale","ale","ALE"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.yo.js b/Web/Scripts/globalize/cultures/globalize.culture.yo.js deleted file mode 100644 index 15b5c8c..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.yo.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Globalize Culture yo - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "yo", "default", { - name: "yo", - englishName: "Yoruba", - nativeName: "Yoruba", - language: "yo", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Aiku","Aje","Isegun","Ojo'ru","Ojo'bo","Eti","Abameta"], - namesAbbr: ["Aik","Aje","Ise","Ojo","Ojo","Eti","Aba"], - namesShort: ["A","A","I","O","O","E","A"] - }, - months: { - names: ["Osu kinni","Osu keji","Osu keta","Osu kerin","Osu karun","Osu kefa","Osu keje","Osu kejo","Osu kesan","Osu kewa","Osu kokanla","Osu keresi",""], - namesAbbr: ["kin.","kej.","ket.","ker.","kar.","kef.","kej.","kej.","kes.","kew.","kok.","ker.",""] - }, - AM: ["Owuro","owuro","OWURO"], - PM: ["Ale","ale","ALE"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.zh-CHS.js b/Web/Scripts/globalize/cultures/globalize.culture.zh-CHS.js deleted file mode 100644 index 265227d..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.zh-CHS.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Globalize Culture zh-CHS - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "zh-CHS", "default", { - name: "zh-CHS", - englishName: "Chinese (Simplified) Legacy", - nativeName: "中文(简体) 旧版", - language: "zh-CHS", - numberFormat: { - "NaN": "非数字", - negativeInfinity: "负无穷大", - positiveInfinity: "正无穷大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["周日","周一","周二","周三","周四","周五","周六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.zh-CHT.js b/Web/Scripts/globalize/cultures/globalize.culture.zh-CHT.js deleted file mode 100644 index a0438f0..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.zh-CHT.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture zh-CHT - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "zh-CHT", "default", { - name: "zh-CHT", - englishName: "Chinese (Traditional) Legacy", - nativeName: "中文(繁體) 舊版", - language: "zh-CHT", - numberFormat: { - "NaN": "非數字", - negativeInfinity: "負無窮大", - positiveInfinity: "正無窮大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - symbol: "HK$" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["週日","週一","週二","週三","週四","週五","週六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.zh-CN.js b/Web/Scripts/globalize/cultures/globalize.culture.zh-CN.js deleted file mode 100644 index d9de0cd..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.zh-CN.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Globalize Culture zh-CN - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "zh-CN", "default", { - name: "zh-CN", - englishName: "Chinese (Simplified, PRC)", - nativeName: "中文(中华人民共和国)", - language: "zh-CHS", - numberFormat: { - "NaN": "非数字", - negativeInfinity: "负无穷大", - positiveInfinity: "正无穷大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["周日","周一","周二","周三","周四","周五","周六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.zh-HK.js b/Web/Scripts/globalize/cultures/globalize.culture.zh-HK.js deleted file mode 100644 index 0bac5bf..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.zh-HK.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture zh-HK - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "zh-HK", "default", { - name: "zh-HK", - englishName: "Chinese (Traditional, Hong Kong S.A.R.)", - nativeName: "中文(香港特別行政區)", - language: "zh-CHT", - numberFormat: { - "NaN": "非數字", - negativeInfinity: "負無窮大", - positiveInfinity: "正無窮大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - symbol: "HK$" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["週日","週一","週二","週三","週四","週五","週六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.zh-Hans.js b/Web/Scripts/globalize/cultures/globalize.culture.zh-Hans.js deleted file mode 100644 index 9be13a3..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.zh-Hans.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Globalize Culture zh-Hans - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "zh-Hans", "default", { - name: "zh-Hans", - englishName: "Chinese (Simplified)", - nativeName: "中文(简体)", - language: "zh-Hans", - numberFormat: { - "NaN": "非数字", - negativeInfinity: "负无穷大", - positiveInfinity: "正无穷大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["周日","周一","周二","周三","周四","周五","周六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.zh-Hant.js b/Web/Scripts/globalize/cultures/globalize.culture.zh-Hant.js deleted file mode 100644 index 9392ea7..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.zh-Hant.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture zh-Hant - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "zh-Hant", "default", { - name: "zh-Hant", - englishName: "Chinese (Traditional)", - nativeName: "中文(繁體)", - language: "zh-Hant", - numberFormat: { - "NaN": "非數字", - negativeInfinity: "負無窮大", - positiveInfinity: "正無窮大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - symbol: "HK$" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["週日","週一","週二","週三","週四","週五","週六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.zh-MO.js b/Web/Scripts/globalize/cultures/globalize.culture.zh-MO.js deleted file mode 100644 index 7a72964..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.zh-MO.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Globalize Culture zh-MO - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "zh-MO", "default", { - name: "zh-MO", - englishName: "Chinese (Traditional, Macao S.A.R.)", - nativeName: "中文(澳門特別行政區)", - language: "zh-CHT", - numberFormat: { - "NaN": "非數字", - negativeInfinity: "負無窮大", - positiveInfinity: "正無窮大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - symbol: "MOP" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["週日","週一","週二","週三","週四","週五","週六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.zh-SG.js b/Web/Scripts/globalize/cultures/globalize.culture.zh-SG.js deleted file mode 100644 index 8034930..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.zh-SG.js +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Globalize Culture zh-SG - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "zh-SG", "default", { - name: "zh-SG", - englishName: "Chinese (Simplified, Singapore)", - nativeName: "中文(新加坡)", - language: "zh-CHS", - numberFormat: { - percent: { - pattern: ["-n%","n%"] - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["周日","周一","周二","周三","周四","周五","周六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - patterns: { - d: "d/M/yyyy", - D: "yyyy'年'M'月'd'日'", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "yyyy'年'M'月'd'日' tt h:mm", - F: "yyyy'年'M'月'd'日' tt h:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.zh-TW.js b/Web/Scripts/globalize/cultures/globalize.culture.zh-TW.js deleted file mode 100644 index 14d1725..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.zh-TW.js +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Globalize Culture zh-TW - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "zh-TW", "default", { - name: "zh-TW", - englishName: "Chinese (Traditional, Taiwan)", - nativeName: "中文(台灣)", - language: "zh-CHT", - numberFormat: { - "NaN": "不是一個數字", - negativeInfinity: "負無窮大", - positiveInfinity: "正無窮大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "NT$" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["週日","週一","週二","週三","週四","週五","週六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"西元","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'年'M'月'd'日'", - t: "tt hh:mm", - T: "tt hh:mm:ss", - f: "yyyy'年'M'月'd'日' tt hh:mm", - F: "yyyy'年'M'月'd'日' tt hh:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - }, - Taiwan: { - name: "Taiwan", - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["週日","週一","週二","週三","週四","週五","週六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"","start":null,"offset":1911}], - twoDigitYearMax: 99, - patterns: { - d: "yyyy/M/d", - D: "yyyy'年'M'月'd'日'", - t: "tt hh:mm", - T: "tt hh:mm:ss", - f: "yyyy'年'M'月'd'日' tt hh:mm", - F: "yyyy'年'M'月'd'日' tt hh:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.zh.js b/Web/Scripts/globalize/cultures/globalize.culture.zh.js deleted file mode 100644 index b828385..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.zh.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Globalize Culture zh - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "zh", "default", { - name: "zh", - englishName: "Chinese", - nativeName: "中文", - language: "zh", - numberFormat: { - "NaN": "非数字", - negativeInfinity: "负无穷大", - positiveInfinity: "正无穷大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["周日","周一","周二","周三","周四","周五","周六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.zu-ZA.js b/Web/Scripts/globalize/cultures/globalize.culture.zu-ZA.js deleted file mode 100644 index ffc8947..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.zu-ZA.js +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Globalize Culture zu-ZA - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "zu-ZA", "default", { - name: "zu-ZA", - englishName: "isiZulu (South Africa)", - nativeName: "isiZulu (iNingizimu Afrika)", - language: "zu", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["iSonto","uMsombuluko","uLwesibili","uLwesithathu","uLwesine","uLwesihlanu","uMgqibelo"], - namesAbbr: ["Son.","Mso.","Bi.","Tha.","Ne.","Hla.","Mgq."] - }, - months: { - names: ["uMasingana","uNhlolanja","uNdasa","uMbaso","uNhlaba","uNhlangulana","uNtulikazi","uNcwaba","uMandulo","uMfumfu","uLwezi","uZibandlela",""], - namesAbbr: ["Mas.","Nhlo.","Nda.","Mba.","Nhla.","Nhlang.","Ntu.","Ncwa.","Man.","Mfu.","Lwe.","Zib.",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.culture.zu.js b/Web/Scripts/globalize/cultures/globalize.culture.zu.js deleted file mode 100644 index d1fbcc1..0000000 --- a/Web/Scripts/globalize/cultures/globalize.culture.zu.js +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Globalize Culture zu - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "zu", "default", { - name: "zu", - englishName: "isiZulu", - nativeName: "isiZulu", - language: "zu", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["iSonto","uMsombuluko","uLwesibili","uLwesithathu","uLwesine","uLwesihlanu","uMgqibelo"], - namesAbbr: ["Son.","Mso.","Bi.","Tha.","Ne.","Hla.","Mgq."] - }, - months: { - names: ["uMasingana","uNhlolanja","uNdasa","uMbaso","uNhlaba","uNhlangulana","uNtulikazi","uNcwaba","uMandulo","uMfumfu","uLwezi","uZibandlela",""], - namesAbbr: ["Mas.","Nhlo.","Nda.","Mba.","Nhla.","Nhlang.","Ntu.","Ncwa.","Man.","Mfu.","Lwe.","Zib.",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/cultures/globalize.cultures.js b/Web/Scripts/globalize/cultures/globalize.cultures.js deleted file mode 100644 index 8b16cfc..0000000 --- a/Web/Scripts/globalize/cultures/globalize.cultures.js +++ /dev/null @@ -1,24063 +0,0 @@ -/* - * Globalize Cultures - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * This file was generated by the Globalize Culture Generator - * Translation: bugs found in this file need to be fixed in the generator - */ - -(function( window, undefined ) { - -var Globalize; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - Globalize = require( "globalize" ); -} else { - // Global variable - Globalize = window.Globalize; -} - -Globalize.addCultureInfo( "ar", "default", { - name: "ar", - englishName: "Arabic", - nativeName: "العربية", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "ر.س.\u200f" - } - }, - calendars: { - standard: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_Localized: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "bg", "default", { - name: "bg", - englishName: "Bulgarian", - nativeName: "български", - language: "bg", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "- безкрайност", - positiveInfinity: "+ безкрайност", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "лв." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["неделя","понеделник","вторник","сряда","четвъртък","петък","събота"], - namesAbbr: ["нед","пон","вт","ср","четв","пет","съб"], - namesShort: ["н","п","в","с","ч","п","с"] - }, - months: { - names: ["януари","февруари","март","април","май","юни","юли","август","септември","октомври","ноември","декември",""], - namesAbbr: ["ян","февр","март","апр","май","юни","юли","авг","септ","окт","ноември","дек",""] - }, - AM: null, - PM: null, - eras: [{"name":"след новата ера","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy 'г.'", - D: "dd MMMM yyyy 'г.'", - t: "HH:mm 'ч.'", - T: "HH:mm:ss 'ч.'", - f: "dd MMMM yyyy 'г.' HH:mm 'ч.'", - F: "dd MMMM yyyy 'г.' HH:mm:ss 'ч.'", - M: "dd MMMM", - Y: "MMMM yyyy 'г.'" - } - } - } -}); - -Globalize.addCultureInfo( "ca", "default", { - name: "ca", - englishName: "Catalan", - nativeName: "català", - language: "ca", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinit", - positiveInfinity: "Infinit", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"], - namesAbbr: ["dg.","dl.","dt.","dc.","dj.","dv.","ds."], - namesShort: ["dg","dl","dt","dc","dj","dv","ds"] - }, - months: { - names: ["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre",""], - namesAbbr: ["gen","feb","març","abr","maig","juny","jul","ag","set","oct","nov","des",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d' / 'MMMM' / 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' / 'MMMM' / 'yyyy HH:mm", - F: "dddd, d' / 'MMMM' / 'yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM' / 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "zh-Hans", "default", { - name: "zh-Hans", - englishName: "Chinese (Simplified)", - nativeName: "中文(简体)", - language: "zh-Hans", - numberFormat: { - "NaN": "非数字", - negativeInfinity: "负无穷大", - positiveInfinity: "正无穷大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["周日","周一","周二","周三","周四","周五","周六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -Globalize.addCultureInfo( "cs", "default", { - name: "cs", - englishName: "Czech", - nativeName: "čeština", - language: "cs", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Není číslo", - negativeInfinity: "-nekonečno", - positiveInfinity: "+nekonečno", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "Kč" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"], - namesAbbr: ["ne","po","út","st","čt","pá","so"], - namesShort: ["ne","po","út","st","čt","pá","so"] - }, - months: { - names: ["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - monthsGenitive: { - names: ["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["dop.","dop.","DOP."], - PM: ["odp.","odp.","ODP."], - eras: [{"name":"n. l.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "da", "default", { - name: "da", - englishName: "Danish", - nativeName: "dansk", - language: "da", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"], - namesAbbr: ["sø","ma","ti","on","to","fr","lø"], - namesShort: ["sø","ma","ti","on","to","fr","lø"] - }, - months: { - names: ["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "de", "default", { - name: "de", - englishName: "German", - nativeName: "Deutsch", - language: "de", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "n. def.", - negativeInfinity: "-unendlich", - positiveInfinity: "+unendlich", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"], - namesAbbr: ["So","Mo","Di","Mi","Do","Fr","Sa"], - namesShort: ["So","Mo","Di","Mi","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d. MMMM yyyy HH:mm", - F: "dddd, d. MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "el", "default", { - name: "el", - englishName: "Greek", - nativeName: "Ελληνικά", - language: "el", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "μη αριθμός", - negativeInfinity: "-Άπειρο", - positiveInfinity: "Άπειρο", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"], - namesAbbr: ["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"], - namesShort: ["Κυ","Δε","Τρ","Τε","Πε","Πα","Σά"] - }, - months: { - names: ["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος",""], - namesAbbr: ["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ",""] - }, - monthsGenitive: { - names: ["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου",""], - namesAbbr: ["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ",""] - }, - AM: ["πμ","πμ","ΠΜ"], - PM: ["μμ","μμ","ΜΜ"], - eras: [{"name":"μ.Χ.","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "dddd, d MMMM yyyy", - f: "dddd, d MMMM yyyy h:mm tt", - F: "dddd, d MMMM yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "es", "default", { - name: "es", - englishName: "Spanish", - nativeName: "español", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fi", "default", { - name: "fi", - englishName: "Finnish", - nativeName: "suomi", - language: "fi", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"], - namesAbbr: ["su","ma","ti","ke","to","pe","la"], - namesShort: ["su","ma","ti","ke","to","pe","la"] - }, - months: { - names: ["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu",""], - namesAbbr: ["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM'ta 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM'ta 'yyyy H:mm", - F: "d. MMMM'ta 'yyyy H:mm:ss", - M: "d. MMMM'ta'", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fr", "default", { - name: "fr", - englishName: "French", - nativeName: "français", - language: "fr", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "he", "default", { - name: "he", - englishName: "Hebrew", - nativeName: "עברית", - language: "he", - isRTL: true, - numberFormat: { - "NaN": "לא מספר", - negativeInfinity: "אינסוף שלילי", - positiveInfinity: "אינסוף חיובי", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "₪" - } - }, - calendars: { - standard: { - days: { - names: ["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","שבת"], - namesAbbr: ["יום א","יום ב","יום ג","יום ד","יום ה","יום ו","שבת"], - namesShort: ["א","ב","ג","ד","ה","ו","ש"] - }, - months: { - names: ["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר",""], - namesAbbr: ["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ",""] - }, - eras: [{"name":"לספירה","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd dd MMMM yyyy HH:mm", - F: "dddd dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - }, - Hebrew: { - name: "Hebrew", - "/": " ", - days: { - names: ["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","שבת"], - namesAbbr: ["א","ב","ג","ד","ה","ו","ש"], - namesShort: ["א","ב","ג","ד","ה","ו","ש"] - }, - months: { - names: ["תשרי","חשון","כסלו","טבת","שבט","אדר","אדר ב","ניסן","אייר","סיון","תמוז","אב","אלול"], - namesAbbr: ["תשרי","חשון","כסלו","טבת","שבט","אדר","אדר ב","ניסן","אייר","סיון","תמוז","אב","אלול"] - }, - eras: [{"name":"C.E.","start":null,"offset":0}], - twoDigitYearMax: 5790, - patterns: { - d: "dd MMMM yyyy", - D: "dddd dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd dd MMMM yyyy HH:mm", - F: "dddd dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "hu", "default", { - name: "hu", - englishName: "Hungarian", - nativeName: "magyar", - language: "hu", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "nem szám", - negativeInfinity: "negatív végtelen", - positiveInfinity: "végtelen", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "Ft" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"], - namesAbbr: ["V","H","K","Sze","Cs","P","Szo"], - namesShort: ["V","H","K","Sze","Cs","P","Szo"] - }, - months: { - names: ["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december",""], - namesAbbr: ["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec.",""] - }, - AM: ["de.","de.","DE."], - PM: ["du.","du.","DU."], - eras: [{"name":"i.sz.","start":null,"offset":0}], - patterns: { - d: "yyyy.MM.dd.", - D: "yyyy. MMMM d.", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy. MMMM d. H:mm", - F: "yyyy. MMMM d. H:mm:ss", - M: "MMMM d.", - Y: "yyyy. MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "is", "default", { - name: "is", - englishName: "Icelandic", - nativeName: "íslenska", - language: "is", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - decimals: 0, - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sunnudagur","mánudagur","þriðjudagur","miðvikudagur","fimmtudagur","föstudagur","laugardagur"], - namesAbbr: ["sun.","mán.","þri.","mið.","fim.","fös.","lau."], - namesShort: ["su","má","þr","mi","fi","fö","la"] - }, - months: { - names: ["janúar","febrúar","mars","apríl","maí","júní","júlí","ágúst","september","október","nóvember","desember",""], - namesAbbr: ["jan.","feb.","mar.","apr.","maí","jún.","júl.","ágú.","sep.","okt.","nóv.","des.",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "it", "default", { - name: "it", - englishName: "Italian", - nativeName: "italiano", - language: "it", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "Non un numero reale", - negativeInfinity: "-Infinito", - positiveInfinity: "+Infinito", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"], - namesAbbr: ["dom","lun","mar","mer","gio","ven","sab"], - namesShort: ["do","lu","ma","me","gi","ve","sa"] - }, - months: { - names: ["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre",""], - namesAbbr: ["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ja", "default", { - name: "ja", - englishName: "Japanese", - nativeName: "日本語", - language: "ja", - numberFormat: { - "NaN": "NaN (非数値)", - negativeInfinity: "-∞", - positiveInfinity: "+∞", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["-$n","$n"], - decimals: 0, - symbol: "¥" - } - }, - calendars: { - standard: { - days: { - names: ["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"], - namesAbbr: ["日","月","火","水","木","金","土"], - namesShort: ["日","月","火","水","木","金","土"] - }, - months: { - names: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["午前","午前","午前"], - PM: ["午後","午後","午後"], - eras: [{"name":"西暦","start":null,"offset":0}], - patterns: { - d: "yyyy/MM/dd", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - }, - Japanese: { - name: "Japanese", - days: { - names: ["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"], - namesAbbr: ["日","月","火","水","木","金","土"], - namesShort: ["日","月","火","水","木","金","土"] - }, - months: { - names: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["午前","午前","午前"], - PM: ["午後","午後","午後"], - eras: [{"name":"平成","start":null,"offset":1867},{"name":"昭和","start":-1812153600000,"offset":1911},{"name":"大正","start":-1357603200000,"offset":1925},{"name":"明治","start":60022080000,"offset":1988}], - twoDigitYearMax: 99, - patterns: { - d: "gg y/M/d", - D: "gg y'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "gg y'年'M'月'd'日' H:mm", - F: "gg y'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "gg y'年'M'月'" - } - } - } -}); - -Globalize.addCultureInfo( "ko", "default", { - name: "ko", - englishName: "Korean", - nativeName: "한국어", - language: "ko", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - decimals: 0, - symbol: "₩" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["일요일","월요일","화요일","수요일","목요일","금요일","토요일"], - namesAbbr: ["일","월","화","수","목","금","토"], - namesShort: ["일","월","화","수","목","금","토"] - }, - months: { - names: ["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["오전","오전","오전"], - PM: ["오후","오후","오후"], - eras: [{"name":"서기","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "yyyy'년' M'월' d'일' dddd", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "yyyy'년' M'월' d'일' dddd tt h:mm", - F: "yyyy'년' M'월' d'일' dddd tt h:mm:ss", - M: "M'월' d'일'", - Y: "yyyy'년' M'월'" - } - }, - Korean: { - name: "Korean", - "/": "-", - days: { - names: ["일요일","월요일","화요일","수요일","목요일","금요일","토요일"], - namesAbbr: ["일","월","화","수","목","금","토"], - namesShort: ["일","월","화","수","목","금","토"] - }, - months: { - names: ["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["오전","오전","오전"], - PM: ["오후","오후","오후"], - eras: [{"name":"단기","start":null,"offset":-2333}], - twoDigitYearMax: 4362, - patterns: { - d: "gg yyyy-MM-dd", - D: "gg yyyy'년' M'월' d'일' dddd", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "gg yyyy'년' M'월' d'일' dddd tt h:mm", - F: "gg yyyy'년' M'월' d'일' dddd tt h:mm:ss", - M: "M'월' d'일'", - Y: "gg yyyy'년' M'월'" - } - } - } -}); - -Globalize.addCultureInfo( "nl", "default", { - name: "nl", - englishName: "Dutch", - nativeName: "Nederlands", - language: "nl", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"], - namesAbbr: ["zo","ma","di","wo","do","vr","za"], - namesShort: ["zo","ma","di","wo","do","vr","za"] - }, - months: { - names: ["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d-M-yyyy", - D: "dddd d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd d MMMM yyyy H:mm", - F: "dddd d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "no", "default", { - name: "no", - englishName: "Norwegian", - nativeName: "norsk", - language: "no", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"], - namesAbbr: ["sø","ma","ti","on","to","fr","lø"], - namesShort: ["sø","ma","ti","on","to","fr","lø"] - }, - months: { - names: ["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "pl", "default", { - name: "pl", - englishName: "Polish", - nativeName: "polski", - language: "pl", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "nie jest liczbą", - negativeInfinity: "-nieskończoność", - positiveInfinity: "+nieskończoność", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "zł" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"], - namesAbbr: ["N","Pn","Wt","Śr","Cz","Pt","So"], - namesShort: ["N","Pn","Wt","Śr","Cz","Pt","So"] - }, - months: { - names: ["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień",""], - namesAbbr: ["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru",""] - }, - monthsGenitive: { - names: ["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia",""], - namesAbbr: ["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "pt", "default", { - name: "pt", - englishName: "Portuguese", - nativeName: "Português", - language: "pt", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NaN (Não é um número)", - negativeInfinity: "-Infinito", - positiveInfinity: "+Infinito", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": ",", - symbol: "R$" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"], - namesAbbr: ["dom","seg","ter","qua","qui","sex","sáb"], - namesShort: ["D","S","T","Q","Q","S","S"] - }, - months: { - names: ["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro",""], - namesAbbr: ["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d' de 'MMMM' de 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' de 'MMMM' de 'yyyy HH:mm", - F: "dddd, d' de 'MMMM' de 'yyyy HH:mm:ss", - M: "dd' de 'MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "rm", "default", { - name: "rm", - englishName: "Romansh", - nativeName: "Rumantsch", - language: "rm", - numberFormat: { - ",": "'", - "NaN": "betg def.", - negativeInfinity: "-infinit", - positiveInfinity: "+infinit", - percent: { - pattern: ["-n%","n%"], - ",": "'" - }, - currency: { - pattern: ["$-n","$ n"], - ",": "'", - symbol: "fr." - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dumengia","glindesdi","mardi","mesemna","gievgia","venderdi","sonda"], - namesAbbr: ["du","gli","ma","me","gie","ve","so"], - namesShort: ["du","gli","ma","me","gie","ve","so"] - }, - months: { - names: ["schaner","favrer","mars","avrigl","matg","zercladur","fanadur","avust","settember","october","november","december",""], - namesAbbr: ["schan","favr","mars","avr","matg","zercl","fan","avust","sett","oct","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"s. Cr.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d MMMM yyyy HH:mm", - F: "dddd, d MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ro", "default", { - name: "ro", - englishName: "Romanian", - nativeName: "română", - language: "ro", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "lei" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["duminică","luni","marţi","miercuri","joi","vineri","sâmbătă"], - namesAbbr: ["D","L","Ma","Mi","J","V","S"], - namesShort: ["D","L","Ma","Mi","J","V","S"] - }, - months: { - names: ["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie",""], - namesAbbr: ["ian.","feb.","mar.","apr.","mai.","iun.","iul.","aug.","sep.","oct.","nov.","dec.",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ru", "default", { - name: "ru", - englishName: "Russian", - nativeName: "русский", - language: "ru", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "р." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"], - namesAbbr: ["Вс","Пн","Вт","Ср","Чт","Пт","Сб"], - namesShort: ["Вс","Пн","Вт","Ср","Чт","Пт","Сб"] - }, - months: { - names: ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь",""], - namesAbbr: ["янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек",""] - }, - monthsGenitive: { - names: ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря",""], - namesAbbr: ["янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy 'г.'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy 'г.' H:mm", - F: "d MMMM yyyy 'г.' H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "hr", "default", { - name: "hr", - englishName: "Croatian", - nativeName: "hrvatski", - language: "hr", - numberFormat: { - pattern: ["- n"], - ",": ".", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kn" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sri","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["siječanj","veljača","ožujak","travanj","svibanj","lipanj","srpanj","kolovoz","rujan","listopad","studeni","prosinac",""], - namesAbbr: ["sij","vlj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro",""] - }, - monthsGenitive: { - names: ["siječnja","veljače","ožujka","travnja","svibnja","lipnja","srpnja","kolovoza","rujna","listopada","studenog","prosinca",""], - namesAbbr: ["sij","vlj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy.", - D: "d. MMMM yyyy.", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy. H:mm", - F: "d. MMMM yyyy. H:mm:ss", - M: "d. MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "sk", "default", { - name: "sk", - englishName: "Slovak", - nativeName: "slovenčina", - language: "sk", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Nie je číslo", - negativeInfinity: "-nekonečno", - positiveInfinity: "+nekonečno", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ". ", - firstDay: 1, - days: { - names: ["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"], - namesAbbr: ["ne","po","ut","st","št","pi","so"], - namesShort: ["ne","po","ut","st","št","pi","so"] - }, - months: { - names: ["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - monthsGenitive: { - names: ["januára","februára","marca","apríla","mája","júna","júla","augusta","septembra","októbra","novembra","decembra",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. l.","start":null,"offset":0}], - patterns: { - d: "d. M. yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sq", "default", { - name: "sq", - englishName: "Albanian", - nativeName: "shqipe", - language: "sq", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-infinit", - positiveInfinity: "infinit", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": ".", - ".": ",", - symbol: "Lek" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["e diel","e hënë","e martë","e mërkurë","e enjte","e premte","e shtunë"], - namesAbbr: ["Die","Hën","Mar","Mër","Enj","Pre","Sht"], - namesShort: ["Di","Hë","Ma","Më","En","Pr","Sh"] - }, - months: { - names: ["janar","shkurt","mars","prill","maj","qershor","korrik","gusht","shtator","tetor","nëntor","dhjetor",""], - namesAbbr: ["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gsh","Sht","Tet","Nën","Dhj",""] - }, - AM: ["PD","pd","PD"], - PM: ["MD","md","MD"], - patterns: { - d: "yyyy-MM-dd", - D: "yyyy-MM-dd", - t: "h:mm.tt", - T: "h:mm:ss.tt", - f: "yyyy-MM-dd h:mm.tt", - F: "yyyy-MM-dd h:mm:ss.tt", - Y: "yyyy-MM" - } - } - } -}); - -Globalize.addCultureInfo( "sv", "default", { - name: "sv", - englishName: "Swedish", - nativeName: "svenska", - language: "sv", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"], - namesAbbr: ["sö","må","ti","on","to","fr","lö"], - namesShort: ["sö","må","ti","on","to","fr","lö"] - }, - months: { - names: ["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "'den 'd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "'den 'd MMMM yyyy HH:mm", - F: "'den 'd MMMM yyyy HH:mm:ss", - M: "'den 'd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "th", "default", { - name: "th", - englishName: "Thai", - nativeName: "ไทย", - language: "th", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "฿" - } - }, - calendars: { - standard: { - name: "ThaiBuddhist", - firstDay: 1, - days: { - names: ["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"], - namesAbbr: ["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."], - namesShort: ["อ","จ","อ","พ","พ","ศ","ส"] - }, - months: { - names: ["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม",""], - namesAbbr: ["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค.",""] - }, - eras: [{"name":"พ.ศ.","start":null,"offset":-543}], - twoDigitYearMax: 2572, - patterns: { - d: "d/M/yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - }, - Gregorian_Localized: { - firstDay: 1, - days: { - names: ["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"], - namesAbbr: ["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."], - namesShort: ["อ","จ","อ","พ","พ","ศ","ส"] - }, - months: { - names: ["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม",""], - namesAbbr: ["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค.",""] - }, - patterns: { - d: "d/M/yyyy", - D: "'วัน'dddd'ที่' d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "'วัน'dddd'ที่' d MMMM yyyy H:mm", - F: "'วัน'dddd'ที่' d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "tr", "default", { - name: "tr", - englishName: "Turkish", - nativeName: "Türkçe", - language: "tr", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "TL" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"], - namesAbbr: ["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"], - namesShort: ["Pz","Pt","Sa","Ça","Pe","Cu","Ct"] - }, - months: { - names: ["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık",""], - namesAbbr: ["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "dd MMMM yyyy dddd", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy dddd HH:mm", - F: "dd MMMM yyyy dddd HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ur", "default", { - name: "ur", - englishName: "Urdu", - nativeName: "اُردو", - language: "ur", - isRTL: true, - numberFormat: { - currency: { - pattern: ["$n-","$n"], - symbol: "Rs" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["اتوار","پير","منگل","بدھ","جمعرات","جمعه","هفته"], - namesAbbr: ["اتوار","پير","منگل","بدھ","جمعرات","جمعه","هفته"], - namesShort: ["ا","پ","م","ب","ج","ج","ه"] - }, - months: { - names: ["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر",""], - namesAbbr: ["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر",""] - }, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - f: "dd MMMM, yyyy h:mm tt", - F: "dd MMMM, yyyy h:mm:ss tt", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - f: "dd/MM/yyyy h:mm tt", - F: "dd/MM/yyyy h:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - } - } -}); - -Globalize.addCultureInfo( "id", "default", { - name: "id", - englishName: "Indonesian", - nativeName: "Bahasa Indonesia", - language: "id", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - decimals: 0, - ",": ".", - ".": ",", - symbol: "Rp" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"], - namesAbbr: ["Minggu","Sen","Sel","Rabu","Kamis","Jumat","Sabtu"], - namesShort: ["M","S","S","R","K","J","S"] - }, - months: { - names: ["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember",""], - namesAbbr: ["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agust","Sep","Okt","Nop","Des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM yyyy H:mm", - F: "dd MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "uk", "default", { - name: "uk", - englishName: "Ukrainian", - nativeName: "українська", - language: "uk", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-безмежність", - positiveInfinity: "безмежність", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "₴" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["неділя","понеділок","вівторок","середа","четвер","п'ятниця","субота"], - namesAbbr: ["Нд","Пн","Вт","Ср","Чт","Пт","Сб"], - namesShort: ["Нд","Пн","Вт","Ср","Чт","Пт","Сб"] - }, - months: { - names: ["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень",""], - namesAbbr: ["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру",""] - }, - monthsGenitive: { - names: ["січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня",""], - namesAbbr: ["січ","лют","бер","кві","тра","чер","лип","сер","вер","жов","лис","гру",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy' р.'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy' р.' H:mm", - F: "d MMMM yyyy' р.' H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy' р.'" - } - } - } -}); - -Globalize.addCultureInfo( "be", "default", { - name: "be", - englishName: "Belarusian", - nativeName: "Беларускі", - language: "be", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "р." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["нядзеля","панядзелак","аўторак","серада","чацвер","пятніца","субота"], - namesAbbr: ["нд","пн","аў","ср","чц","пт","сб"], - namesShort: ["нд","пн","аў","ср","чц","пт","сб"] - }, - months: { - names: ["Студзень","Люты","Сакавік","Красавік","Май","Чэрвень","Ліпень","Жнівень","Верасень","Кастрычнік","Лістапад","Снежань",""], - namesAbbr: ["Сту","Лют","Сак","Кра","Май","Чэр","Ліп","Жні","Вер","Кас","Ліс","Сне",""] - }, - monthsGenitive: { - names: ["студзеня","лютага","сакавіка","красавіка","мая","чэрвеня","ліпеня","жніўня","верасня","кастрычніка","лістапада","снежня",""], - namesAbbr: ["Сту","Лют","Сак","Кра","Май","Чэр","Ліп","Жні","Вер","Кас","Ліс","Сне",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sl", "default", { - name: "sl", - englishName: "Slovenian", - nativeName: "slovenski", - language: "sl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-neskončnost", - positiveInfinity: "neskončnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"], - namesAbbr: ["ned","pon","tor","sre","čet","pet","sob"], - namesShort: ["ne","po","to","sr","če","pe","so"] - }, - months: { - names: ["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "et", "default", { - name: "et", - englishName: "Estonian", - nativeName: "eesti", - language: "et", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "avaldamatu", - negativeInfinity: "miinuslõpmatus", - positiveInfinity: "plusslõpmatus", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["pühapäev","esmaspäev","teisipäev","kolmapäev","neljapäev","reede","laupäev"], - namesAbbr: ["P","E","T","K","N","R","L"], - namesShort: ["P","E","T","K","N","R","L"] - }, - months: { - names: ["jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember",""], - namesAbbr: ["jaan","veebr","märts","apr","mai","juuni","juuli","aug","sept","okt","nov","dets",""] - }, - AM: ["EL","el","EL"], - PM: ["PL","pl","PL"], - patterns: { - d: "d.MM.yyyy", - D: "d. MMMM yyyy'. a.'", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy'. a.' H:mm", - F: "d. MMMM yyyy'. a.' H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy'. a.'" - } - } - } -}); - -Globalize.addCultureInfo( "lv", "default", { - name: "lv", - englishName: "Latvian", - nativeName: "latviešu", - language: "lv", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-bezgalība", - positiveInfinity: "bezgalība", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": " ", - ".": ",", - symbol: "Ls" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["svētdiena","pirmdiena","otrdiena","trešdiena","ceturtdiena","piektdiena","sestdiena"], - namesAbbr: ["sv","pr","ot","tr","ce","pk","se"], - namesShort: ["sv","pr","ot","tr","ce","pk","se"] - }, - months: { - names: ["janvāris","februāris","marts","aprīlis","maijs","jūnijs","jūlijs","augusts","septembris","oktobris","novembris","decembris",""], - namesAbbr: ["jan","feb","mar","apr","mai","jūn","jūl","aug","sep","okt","nov","dec",""] - }, - monthsGenitive: { - names: ["janvārī","februārī","martā","aprīlī","maijā","jūnijā","jūlijā","augustā","septembrī","oktobrī","novembrī","decembrī",""], - namesAbbr: ["jan","feb","mar","apr","mai","jūn","jūl","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy.MM.dd.", - D: "dddd, yyyy'. gada 'd. MMMM", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, yyyy'. gada 'd. MMMM H:mm", - F: "dddd, yyyy'. gada 'd. MMMM H:mm:ss", - M: "d. MMMM", - Y: "yyyy. MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "lt", "default", { - name: "lt", - englishName: "Lithuanian", - nativeName: "lietuvių", - language: "lt", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-begalybė", - positiveInfinity: "begalybė", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Lt" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sekmadienis","pirmadienis","antradienis","trečiadienis","ketvirtadienis","penktadienis","šeštadienis"], - namesAbbr: ["Sk","Pr","An","Tr","Kt","Pn","Št"], - namesShort: ["S","P","A","T","K","Pn","Š"] - }, - months: { - names: ["sausis","vasaris","kovas","balandis","gegužė","birželis","liepa","rugpjūtis","rugsėjis","spalis","lapkritis","gruodis",""], - namesAbbr: ["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rgp","Rgs","Spl","Lap","Grd",""] - }, - monthsGenitive: { - names: ["sausio","vasario","kovo","balandžio","gegužės","birželio","liepos","rugpjūčio","rugsėjo","spalio","lapkričio","gruodžio",""], - namesAbbr: ["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rgp","Rgs","Spl","Lap","Grd",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy.MM.dd", - D: "yyyy 'm.' MMMM d 'd.'", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'm.' MMMM d 'd.' HH:mm", - F: "yyyy 'm.' MMMM d 'd.' HH:mm:ss", - M: "MMMM d 'd.'", - Y: "yyyy 'm.' MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "tg", "default", { - name: "tg", - englishName: "Tajik", - nativeName: "Тоҷикӣ", - language: "tg", - numberFormat: { - ",": " ", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - groupSizes: [3,0], - ",": " ", - ".": ";", - symbol: "т.р." - } - }, - calendars: { - standard: { - "/": ".", - days: { - names: ["Яш","Душанбе","Сешанбе","Чоршанбе","Панҷшанбе","Ҷумъа","Шанбе"], - namesAbbr: ["Яш","Дш","Сш","Чш","Пш","Ҷм","Шн"], - namesShort: ["Яш","Дш","Сш","Чш","Пш","Ҷм","Шн"] - }, - months: { - names: ["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["январи","феврали","марти","апрели","маи","июни","июли","августи","сентябри","октябри","ноябри","декабри",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fa", "default", { - name: "fa", - englishName: "Persian", - nativeName: "فارسى", - language: "fa", - isRTL: true, - numberFormat: { - pattern: ["n-"], - currency: { - pattern: ["$n-","$ n"], - ".": "/", - symbol: "ريال" - } - }, - calendars: { - standard: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_Localized: { - firstDay: 6, - days: { - names: ["يكشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesAbbr: ["يكشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesShort: ["ی","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["ژانويه","فوريه","مارس","آوريل","مى","ژوئن","ژوئيه","اوت","سپتامبر","اُكتبر","نوامبر","دسامبر",""], - namesAbbr: ["ژانويه","فوريه","مارس","آوريل","مى","ژوئن","ژوئيه","اوت","سپتامبر","اُكتبر","نوامبر","دسامبر",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - patterns: { - d: "yyyy/MM/dd", - D: "yyyy/MM/dd", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "yyyy/MM/dd hh:mm tt", - F: "yyyy/MM/dd hh:mm:ss tt", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "vi", "default", { - name: "vi", - englishName: "Vietnamese", - nativeName: "Tiếng Việt", - language: "vi", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "₫" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"], - namesAbbr: ["CN","Hai","Ba","Tư","Năm","Sáu","Bảy"], - namesShort: ["C","H","B","T","N","S","B"] - }, - months: { - names: ["Tháng Giêng","Tháng Hai","Tháng Ba","Tháng Tư","Tháng Năm","Tháng Sáu","Tháng Bảy","Tháng Tám","Tháng Chín","Tháng Mười","Tháng Mười Một","Tháng Mười Hai",""], - namesAbbr: ["Thg1","Thg2","Thg3","Thg4","Thg5","Thg6","Thg7","Thg8","Thg9","Thg10","Thg11","Thg12",""] - }, - AM: ["SA","sa","SA"], - PM: ["CH","ch","CH"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - f: "dd MMMM yyyy h:mm tt", - F: "dd MMMM yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "hy", "default", { - name: "hy", - englishName: "Armenian", - nativeName: "Հայերեն", - language: "hy", - numberFormat: { - currency: { - pattern: ["-n $","n $"], - symbol: "դր." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","ՈՒրբաթ","Շաբաթ"], - namesAbbr: ["Կիր","Երկ","Երք","Չրք","Հնգ","ՈՒր","Շբթ"], - namesShort: ["Կ","Ե","Ե","Չ","Հ","Ո","Շ"] - }, - months: { - names: ["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր",""], - namesAbbr: ["ՀՆՎ","ՓՏՎ","ՄՐՏ","ԱՊՐ","ՄՅՍ","ՀՆՍ","ՀԼՍ","ՕԳՍ","ՍԵՊ","ՀՈԿ","ՆՈՅ","ԴԵԿ",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM, yyyy H:mm", - F: "d MMMM, yyyy H:mm:ss", - M: "d MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "az", "default", { - name: "az", - englishName: "Azeri", - nativeName: "Azərbaycan\xadılı", - language: "az", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "man." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"], - namesAbbr: ["B","Be","Ça","Ç","Ca","C","Ş"], - namesShort: ["B","Be","Ça","Ç","Ca","C","Ş"] - }, - months: { - names: ["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avgust","Sentyabr","Oktyabr","Noyabr","Dekabr",""], - namesAbbr: ["Yan","Fev","Mar","Apr","May","İyun","İyul","Avg","Sen","Okt","Noy","Dek",""] - }, - monthsGenitive: { - names: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""], - namesAbbr: ["Yan","Fev","Mar","Apr","May","İyun","İyul","Avg","Sen","Okt","Noy","Dek",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "eu", "default", { - name: "eu", - englishName: "Basque", - nativeName: "euskara", - language: "eu", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "EdZ", - negativeInfinity: "-Infinitu", - positiveInfinity: "Infinitu", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"], - namesAbbr: ["ig.","al.","as.","az.","og.","or.","lr."], - namesShort: ["ig","al","as","az","og","or","lr"] - }, - months: { - names: ["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua",""], - namesAbbr: ["urt.","ots.","mar.","api.","mai.","eka.","uzt.","abu.","ira.","urr.","aza.","abe.",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "yyyy/MM/dd", - D: "dddd, yyyy.'eko' MMMM'k 'd", - t: "HH:mm", - T: "H:mm:ss", - f: "dddd, yyyy.'eko' MMMM'k 'd HH:mm", - F: "dddd, yyyy.'eko' MMMM'k 'd H:mm:ss", - Y: "yyyy.'eko' MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "hsb", "default", { - name: "hsb", - englishName: "Upper Sorbian", - nativeName: "hornjoserbšćina", - language: "hsb", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "njedefinowane", - negativeInfinity: "-njekónčne", - positiveInfinity: "+njekónčne", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ". ", - firstDay: 1, - days: { - names: ["njedźela","póndźela","wutora","srjeda","štwórtk","pjatk","sobota"], - namesAbbr: ["nje","pón","wut","srj","štw","pja","sob"], - namesShort: ["n","p","w","s","š","p","s"] - }, - months: { - names: ["januar","februar","měrc","apryl","meja","junij","julij","awgust","september","oktober","nowember","december",""], - namesAbbr: ["jan","feb","měr","apr","mej","jun","jul","awg","sep","okt","now","dec",""] - }, - monthsGenitive: { - names: ["januara","februara","měrca","apryla","meje","junija","julija","awgusta","septembra","oktobra","nowembra","decembra",""], - namesAbbr: ["jan","feb","měr","apr","mej","jun","jul","awg","sep","okt","now","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"po Chr.","start":null,"offset":0}], - patterns: { - d: "d. M. yyyy", - D: "dddd, 'dnja' d. MMMM yyyy", - t: "H.mm 'hodź.'", - T: "H:mm:ss", - f: "dddd, 'dnja' d. MMMM yyyy H.mm 'hodź.'", - F: "dddd, 'dnja' d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "mk", "default", { - name: "mk", - englishName: "Macedonian (FYROM)", - nativeName: "македонски јазик", - language: "mk", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "ден." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недела","понеделник","вторник","среда","четврток","петок","сабота"], - namesAbbr: ["нед","пон","втр","срд","чет","пет","саб"], - namesShort: ["не","по","вт","ср","че","пе","са"] - }, - months: { - names: ["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември",""], - namesAbbr: ["јан","фев","мар","апр","мај","јун","јул","авг","сеп","окт","ное","дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "dddd, dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, dd MMMM yyyy HH:mm", - F: "dddd, dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "tn", "default", { - name: "tn", - englishName: "Setswana", - nativeName: "Setswana", - language: "tn", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["Latshipi","Mosupologo","Labobedi","Laboraro","Labone","Labotlhano","Lamatlhatso"], - namesAbbr: ["Ltp.","Mos.","Lbd.","Lbr.","Lbn.","Lbt.","Lmt."], - namesShort: ["Lp","Ms","Lb","Lr","Ln","Lt","Lm"] - }, - months: { - names: ["Ferikgong","Tlhakole","Mopitloe","Moranang","Motsheganong","Seetebosigo","Phukwi","Phatwe","Lwetse","Diphalane","Ngwanatsele","Sedimothole",""], - namesAbbr: ["Fer.","Tlhak.","Mop.","Mor.","Motsh.","Seet.","Phukw.","Phatw.","Lwets.","Diph.","Ngwan.","Sed.",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "xh", "default", { - name: "xh", - englishName: "isiXhosa", - nativeName: "isiXhosa", - language: "xh", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["iCawa","uMvulo","uLwesibini","uLwesithathu","uLwesine","uLwesihlanu","uMgqibelo"], - namesShort: ["Ca","Mv","Lb","Lt","Ln","Lh","Mg"] - }, - months: { - names: ["Mqungu","Mdumba","Kwindla","Tshazimpuzi","Canzibe","Silimela","Khala","Thupha","Msintsi","Dwarha","Nkanga","Mnga",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "zu", "default", { - name: "zu", - englishName: "isiZulu", - nativeName: "isiZulu", - language: "zu", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["iSonto","uMsombuluko","uLwesibili","uLwesithathu","uLwesine","uLwesihlanu","uMgqibelo"], - namesAbbr: ["Son.","Mso.","Bi.","Tha.","Ne.","Hla.","Mgq."] - }, - months: { - names: ["uMasingana","uNhlolanja","uNdasa","uMbaso","uNhlaba","uNhlangulana","uNtulikazi","uNcwaba","uMandulo","uMfumfu","uLwezi","uZibandlela",""], - namesAbbr: ["Mas.","Nhlo.","Nda.","Mba.","Nhla.","Nhlang.","Ntu.","Ncwa.","Man.","Mfu.","Lwe.","Zib.",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "af", "default", { - name: "af", - englishName: "Afrikaans", - nativeName: "Afrikaans", - language: "af", - numberFormat: { - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["Sondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrydag","Saterdag"], - namesAbbr: ["Son","Maan","Dins","Woen","Dond","Vry","Sat"], - namesShort: ["So","Ma","Di","Wo","Do","Vr","Sa"] - }, - months: { - names: ["Januarie","Februarie","Maart","April","Mei","Junie","Julie","Augustus","September","Oktober","November","Desember",""], - namesAbbr: ["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ka", "default", { - name: "ka", - englishName: "Georgian", - nativeName: "ქართული", - language: "ka", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "Lari" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"], - namesAbbr: ["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"], - namesShort: ["კ","ო","ს","ო","ხ","პ","შ"] - }, - months: { - names: ["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი",""], - namesAbbr: ["იან","თებ","მარ","აპრ","მაის","ივნ","ივლ","აგვ","სექ","ოქტ","ნოემ","დეკ",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "yyyy 'წლის' dd MM, dddd", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'წლის' dd MM, dddd H:mm", - F: "yyyy 'წლის' dd MM, dddd H:mm:ss", - M: "dd MM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fo", "default", { - name: "fo", - englishName: "Faroese", - nativeName: "føroyskt", - language: "fo", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["sunnudagur","mánadagur","týsdagur","mikudagur","hósdagur","fríggjadagur","leygardagur"], - namesAbbr: ["sun","mán","týs","mik","hós","frí","leyg"], - namesShort: ["su","má","tý","mi","hó","fr","ley"] - }, - months: { - names: ["januar","februar","mars","apríl","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "hi", "default", { - name: "hi", - englishName: "Hindi", - nativeName: "हिंदी", - language: "hi", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"], - namesAbbr: ["रवि.","सोम.","मंगल.","बुध.","गुरु.","शुक्र.","शनि."], - namesShort: ["र","स","म","ब","ग","श","श"] - }, - months: { - names: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""], - namesAbbr: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""] - }, - AM: ["पूर्वाह्न","पूर्वाह्न","पूर्वाह्न"], - PM: ["अपराह्न","अपराह्न","अपराह्न"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "mt", "default", { - name: "mt", - englishName: "Maltese", - nativeName: "Malti", - language: "mt", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Il-Ħadd","It-Tnejn","It-Tlieta","L-Erbgħa","Il-Ħamis","Il-Ġimgħa","Is-Sibt"], - namesAbbr: ["Ħad","Tne","Tli","Erb","Ħam","Ġim","Sib"], - namesShort: ["I","I","I","L","I","I","I"] - }, - months: { - names: ["Jannar","Frar","Marzu","April","Mejju","Ġunju","Lulju","Awissu","Settembru","Ottubru","Novembru","Diċembru",""], - namesAbbr: ["Jan","Fra","Mar","Apr","Mej","Ġun","Lul","Awi","Set","Ott","Nov","Diċ",""] - }, - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d' ta\\' 'MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' ta\\' 'MMMM yyyy HH:mm", - F: "dddd, d' ta\\' 'MMMM yyyy HH:mm:ss", - M: "d' ta\\' 'MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "se", "default", { - name: "se", - englishName: "Sami (Northern)", - nativeName: "davvisámegiella", - language: "se", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sotnabeaivi","vuossárga","maŋŋebárga","gaskavahkku","duorastat","bearjadat","lávvardat"], - namesAbbr: ["sotn","vuos","maŋ","gask","duor","bear","láv"], - namesShort: ["s","m","d","g","d","b","l"] - }, - months: { - names: ["ođđajagemánnu","guovvamánnu","njukčamánnu","cuoŋománnu","miessemánnu","geassemánnu","suoidnemánnu","borgemánnu","čakčamánnu","golggotmánnu","skábmamánnu","juovlamánnu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - monthsGenitive: { - names: ["ođđajagimánu","guovvamánu","njukčamánu","cuoŋománu","miessemánu","geassemánu","suoidnemánu","borgemánu","čakčamánu","golggotmánu","skábmamánu","juovlamánu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ga", "default", { - name: "ga", - englishName: "Irish", - nativeName: "Gaeilge", - language: "ga", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Sathairn"], - namesAbbr: ["Domh","Luan","Máir","Céad","Déar","Aoi","Sath"], - namesShort: ["Do","Lu","Má","Cé","De","Ao","Sa"] - }, - months: { - names: ["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Meitheamh","Iúil","Lúnasa","Meán Fómhair","Deireadh Fómhair","Samhain","Nollaig",""], - namesAbbr: ["Ean","Feabh","Már","Aib","Bealt","Meith","Iúil","Lún","M.Fómh","D.Fómh","Samh","Noll",""] - }, - AM: ["r.n.","r.n.","R.N."], - PM: ["i.n.","i.n.","I.N."], - patterns: { - d: "dd/MM/yyyy", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ms", "default", { - name: "ms", - englishName: "Malay", - nativeName: "Bahasa Melayu", - language: "ms", - numberFormat: { - currency: { - decimals: 0, - symbol: "RM" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"], - namesAbbr: ["Ahad","Isnin","Sel","Rabu","Khamis","Jumaat","Sabtu"], - namesShort: ["A","I","S","R","K","J","S"] - }, - months: { - names: ["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember",""], - namesAbbr: ["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogos","Sept","Okt","Nov","Dis",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM yyyy H:mm", - F: "dd MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "kk", "default", { - name: "kk", - englishName: "Kazakh", - nativeName: "Қазақ", - language: "kk", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-$n","$n"], - ",": " ", - ".": "-", - symbol: "Т" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Жексенбі","Дүйсенбі","Сейсенбі","Сәрсенбі","Бейсенбі","Жұма","Сенбі"], - namesAbbr: ["Жк","Дс","Сс","Ср","Бс","Жм","Сн"], - namesShort: ["Жк","Дс","Сс","Ср","Бс","Жм","Сн"] - }, - months: { - names: ["қаңтар","ақпан","наурыз","сәуір","мамыр","маусым","шілде","тамыз","қыркүйек","қазан","қараша","желтоқсан",""], - namesAbbr: ["Қаң","Ақп","Нау","Сәу","Мам","Мау","Шіл","Там","Қыр","Қаз","Қар","Жел",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy 'ж.'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy 'ж.' H:mm", - F: "d MMMM yyyy 'ж.' H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ky", "default", { - name: "ky", - englishName: "Kyrgyz", - nativeName: "Кыргыз", - language: "ky", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": "-", - symbol: "сом" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Жекшемби","Дүйшөмбү","Шейшемби","Шаршемби","Бейшемби","Жума","Ишемби"], - namesAbbr: ["Жш","Дш","Шш","Шр","Бш","Жм","Иш"], - namesShort: ["Жш","Дш","Шш","Шр","Бш","Жм","Иш"] - }, - months: { - names: ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d'-'MMMM yyyy'-ж.'", - t: "H:mm", - T: "H:mm:ss", - f: "d'-'MMMM yyyy'-ж.' H:mm", - F: "d'-'MMMM yyyy'-ж.' H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy'-ж.'" - } - } - } -}); - -Globalize.addCultureInfo( "sw", "default", { - name: "sw", - englishName: "Kiswahili", - nativeName: "Kiswahili", - language: "sw", - numberFormat: { - currency: { - symbol: "S" - } - }, - calendars: { - standard: { - days: { - names: ["Jumapili","Jumatatu","Jumanne","Jumatano","Alhamisi","Ijumaa","Jumamosi"], - namesAbbr: ["Jumap.","Jumat.","Juman.","Jumat.","Alh.","Iju.","Jumam."], - namesShort: ["P","T","N","T","A","I","M"] - }, - months: { - names: ["Januari","Februari","Machi","Aprili","Mei","Juni","Julai","Agosti","Septemba","Oktoba","Novemba","Decemba",""], - namesAbbr: ["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ago","Sep","Okt","Nov","Dec",""] - } - } - } -}); - -Globalize.addCultureInfo( "tk", "default", { - name: "tk", - englishName: "Turkmen", - nativeName: "türkmençe", - language: "tk", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-üznüksizlik", - positiveInfinity: "üznüksizlik", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "m." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Duşenbe","Sişenbe","Çarşenbe","Penşenbe","Anna","Şenbe","Ýekşenbe"], - namesAbbr: ["Db","Sb","Çb","Pb","An","Şb","Ýb"], - namesShort: ["D","S","Ç","P","A","Ş","Ý"] - }, - months: { - names: ["Ýanwar","Fewral","Mart","Aprel","Maý","lýun","lýul","Awgust","Sentýabr","Oktýabr","Noýabr","Dekabr",""], - namesAbbr: ["Ýan","Few","Mart","Apr","Maý","lýun","lýul","Awg","Sen","Okt","Not","Dek",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "yyyy 'ý.' MMMM d", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'ý.' MMMM d H:mm", - F: "yyyy 'ý.' MMMM d H:mm:ss", - Y: "yyyy 'ý.' MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "uz", "default", { - name: "uz", - englishName: "Uzbek", - nativeName: "U'zbek", - language: "uz", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - decimals: 0, - ",": " ", - ".": ",", - symbol: "so'm" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["yakshanba","dushanba","seshanba","chorshanba","payshanba","juma","shanba"], - namesAbbr: ["yak.","dsh.","sesh.","chr.","psh.","jm.","sh."], - namesShort: ["ya","d","s","ch","p","j","sh"] - }, - months: { - names: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""], - namesAbbr: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM yyyy", - D: "yyyy 'yil' d-MMMM", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'yil' d-MMMM HH:mm", - F: "yyyy 'yil' d-MMMM HH:mm:ss", - M: "d-MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "tt", "default", { - name: "tt", - englishName: "Tatar", - nativeName: "Татар", - language: "tt", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "р." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Якшәмбе","Дүшәмбе","Сишәмбе","Чәршәмбе","Пәнҗешәмбе","Җомга","Шимбә"], - namesAbbr: ["Якш","Дүш","Сиш","Чәрш","Пәнҗ","Җом","Шим"], - namesShort: ["Я","Д","С","Ч","П","Җ","Ш"] - }, - months: { - names: ["Гыйнвар","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь",""], - namesAbbr: ["Гыйн.","Фев.","Мар.","Апр.","Май","Июнь","Июль","Авг.","Сен.","Окт.","Нояб.","Дек.",""] - }, - monthsGenitive: { - names: ["Гыйнварның","Февральнең","Мартның","Апрельнең","Майның","Июньнең","Июльнең","Августның","Сентябрьның","Октябрьның","Ноябрьның","Декабрьның",""], - namesAbbr: ["Гыйн.-ның","Фев.-нең","Мар.-ның","Апр.-нең","Майның","Июньнең","Июльнең","Авг.-ның","Сен.-ның","Окт.-ның","Нояб.-ның","Дек.-ның",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "bn", "default", { - name: "bn", - englishName: "Bengali", - nativeName: "বাংলা", - language: "bn", - numberFormat: { - groupSizes: [3,2], - percent: { - pattern: ["-%n","%n"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "টা" - } - }, - calendars: { - standard: { - "/": "-", - ":": ".", - firstDay: 1, - days: { - names: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"], - namesAbbr: ["রবি.","সোম.","মঙ্গল.","বুধ.","বৃহস্পতি.","শুক্র.","শনি."], - namesShort: ["র","স","ম","ব","ব","শ","শ"] - }, - months: { - names: ["জানুয়ারী","ফেব্রুয়ারী","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর",""], - namesAbbr: ["জানু.","ফেব্রু.","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগ.","সেপ্টে.","অক্টো.","নভে.","ডিসে.",""] - }, - AM: ["পুর্বাহ্ন","পুর্বাহ্ন","পুর্বাহ্ন"], - PM: ["অপরাহ্ন","অপরাহ্ন","অপরাহ্ন"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH.mm", - T: "HH.mm.ss", - f: "dd MMMM yyyy HH.mm", - F: "dd MMMM yyyy HH.mm.ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "pa", "default", { - name: "pa", - englishName: "Punjabi", - nativeName: "ਪੰਜਾਬੀ", - language: "pa", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ਰੁ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ਐਤਵਾਰ","ਸੋਮਵਾਰ","ਮੰਗਲਵਾਰ","ਬੁੱਧਵਾਰ","ਵੀਰਵਾਰ","ਸ਼ੁੱਕਰਵਾਰ","ਸ਼ਨਿੱਚਰਵਾਰ"], - namesAbbr: ["ਐਤ.","ਸੋਮ.","ਮੰਗਲ.","ਬੁੱਧ.","ਵੀਰ.","ਸ਼ੁਕਰ.","ਸ਼ਨਿੱਚਰ."], - namesShort: ["ਐ","ਸ","ਮ","ਬ","ਵ","ਸ਼","ਸ਼"] - }, - months: { - names: ["ਜਨਵਰੀ","ਫ਼ਰਵਰੀ","ਮਾਰਚ","ਅਪ੍ਰੈਲ","ਮਈ","ਜੂਨ","ਜੁਲਾਈ","ਅਗਸਤ","ਸਤੰਬਰ","ਅਕਤੂਬਰ","ਨਵੰਬਰ","ਦਸੰਬਰ",""], - namesAbbr: ["ਜਨਵਰੀ","ਫ਼ਰਵਰੀ","ਮਾਰਚ","ਅਪ੍ਰੈਲ","ਮਈ","ਜੂਨ","ਜੁਲਾਈ","ਅਗਸਤ","ਸਤੰਬਰ","ਅਕਤੂਬਰ","ਨਵੰਬਰ","ਦਸੰਬਰ",""] - }, - AM: ["ਸਵੇਰ","ਸਵੇਰ","ਸਵੇਰ"], - PM: ["ਸ਼ਾਮ","ਸ਼ਾਮ","ਸ਼ਾਮ"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy dddd", - t: "tt hh:mm", - T: "tt hh:mm:ss", - f: "dd MMMM yyyy dddd tt hh:mm", - F: "dd MMMM yyyy dddd tt hh:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "gu", "default", { - name: "gu", - englishName: "Gujarati", - nativeName: "ગુજરાતી", - language: "gu", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "રૂ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["રવિવાર","સોમવાર","મંગળવાર","બુધવાર","ગુરુવાર","શુક્રવાર","શનિવાર"], - namesAbbr: ["રવિ","સોમ","મંગળ","બુધ","ગુરુ","શુક્ર","શનિ"], - namesShort: ["ર","સ","મ","બ","ગ","શ","શ"] - }, - months: { - names: ["જાન્યુઆરી","ફેબ્રુઆરી","માર્ચ","એપ્રિલ","મે","જૂન","જુલાઈ","ઑગસ્ટ","સપ્ટેમ્બર","ઑક્ટ્બર","નવેમ્બર","ડિસેમ્બર",""], - namesAbbr: ["જાન્યુ","ફેબ્રુ","માર્ચ","એપ્રિલ","મે","જૂન","જુલાઈ","ઑગસ્ટ","સપ્ટે","ઑક્ટો","નવે","ડિસે",""] - }, - AM: ["પૂર્વ મધ્યાહ્ન","પૂર્વ મધ્યાહ્ન","પૂર્વ મધ્યાહ્ન"], - PM: ["ઉત્તર મધ્યાહ્ન","ઉત્તર મધ્યાહ્ન","ઉત્તર મધ્યાહ્ન"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "or", "default", { - name: "or", - englishName: "Oriya", - nativeName: "ଓଡ଼ିଆ", - language: "or", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ଟ" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["ରବିବାର","ସୋମବାର","ମଙ୍ଗଳବାର","ବୁଧବାର","ଗୁରୁବାର","ଶୁକ୍ରବାର","ଶନିବାର"], - namesAbbr: ["ରବି.","ସୋମ.","ମଙ୍ଗଳ.","ବୁଧ.","ଗୁରୁ.","ଶୁକ୍ର.","ଶନି."], - namesShort: ["ର","ସୋ","ମ","ବୁ","ଗୁ","ଶୁ","ଶ"] - }, - months: { - names: ["ଜାନୁୟାରୀ","ଫ୍ରେବୃୟାରୀ","ମାର୍ଚ୍ଚ","ଏପ୍ରିଲ୍\u200c","ମେ","ଜୁନ୍\u200c","ଜୁଲାଇ","ଅଗଷ୍ଟ","ସେପ୍ଟେମ୍ବର","ଅକ୍ଟୋବର","ନଭେମ୍ବର","(ଡିସେମ୍ବର",""], - namesAbbr: ["ଜାନୁୟାରୀ","ଫ୍ରେବୃୟାରୀ","ମାର୍ଚ୍ଚ","ଏପ୍ରିଲ୍\u200c","ମେ","ଜୁନ୍\u200c","ଜୁଲାଇ","ଅଗଷ୍ଟ","ସେପ୍ଟେମ୍ବର","ଅକ୍ଟୋବର","ନଭେମ୍ବର","(ଡିସେମ୍ବର",""] - }, - eras: [{"name":"ଖ୍ରୀଷ୍ଟାବ୍ଦ","start":null,"offset":0}], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "ta", "default", { - name: "ta", - englishName: "Tamil", - nativeName: "தமிழ்", - language: "ta", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ரூ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ஞாயிற்றுக்கிழமை","திங்கள்கிழமை","செவ்வாய்கிழமை","புதன்கிழமை","வியாழக்கிழமை","வெள்ளிக்கிழமை","சனிக்கிழமை"], - namesAbbr: ["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"], - namesShort: ["ஞா","தி","செ","பு","வி","வெ","ச"] - }, - months: { - names: ["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்ட்","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்",""], - namesAbbr: ["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்ட்","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்",""] - }, - AM: ["காலை","காலை","காலை"], - PM: ["மாலை","மாலை","மாலை"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "te", "default", { - name: "te", - englishName: "Telugu", - nativeName: "తెలుగు", - language: "te", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "రూ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ఆదివారం","సోమవారం","మంగళవారం","బుధవారం","గురువారం","శుక్రవారం","శనివారం"], - namesAbbr: ["ఆది.","సోమ.","మంగళ.","బుధ.","గురు.","శుక్ర.","శని."], - namesShort: ["ఆ","సో","మం","బు","గు","శు","శ"] - }, - months: { - names: ["జనవరి","ఫిబ్రవరి","మార్చి","ఏప్రిల్","మే","జూన్","జూలై","ఆగస్టు","సెప్టెంబర్","అక్టోబర్","నవంబర్","డిసెంబర్",""], - namesAbbr: ["జనవరి","ఫిబ్రవరి","మార్చి","ఏప్రిల్","మే","జూన్","జూలై","ఆగస్టు","సెప్టెంబర్","అక్టోబర్","నవంబర్","డిసెంబర్",""] - }, - AM: ["పూర్వాహ్న","పూర్వాహ్న","పూర్వాహ్న"], - PM: ["అపరాహ్న","అపరాహ్న","అపరాహ్న"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "kn", "default", { - name: "kn", - englishName: "Kannada", - nativeName: "ಕನ್ನಡ", - language: "kn", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ರೂ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ಭಾನುವಾರ","ಸೋಮವಾರ","ಮಂಗಳವಾರ","ಬುಧವಾರ","ಗುರುವಾರ","ಶುಕ್ರವಾರ","ಶನಿವಾರ"], - namesAbbr: ["ಭಾನು.","ಸೋಮ.","ಮಂಗಳ.","ಬುಧ.","ಗುರು.","ಶುಕ್ರ.","ಶನಿ."], - namesShort: ["ರ","ಸ","ಮ","ಬ","ಗ","ಶ","ಶ"] - }, - months: { - names: ["ಜನವರಿ","ಫೆಬ್ರವರಿ","ಮಾರ್ಚ್","ಎಪ್ರಿಲ್","ಮೇ","ಜೂನ್","ಜುಲೈ","ಆಗಸ್ಟ್","ಸೆಪ್ಟಂಬರ್","ಅಕ್ಟೋಬರ್","ನವೆಂಬರ್","ಡಿಸೆಂಬರ್",""], - namesAbbr: ["ಜನವರಿ","ಫೆಬ್ರವರಿ","ಮಾರ್ಚ್","ಎಪ್ರಿಲ್","ಮೇ","ಜೂನ್","ಜುಲೈ","ಆಗಸ್ಟ್","ಸೆಪ್ಟಂಬರ್","ಅಕ್ಟೋಬರ್","ನವೆಂಬರ್","ಡಿಸೆಂಬರ್",""] - }, - AM: ["ಪೂರ್ವಾಹ್ನ","ಪೂರ್ವಾಹ್ನ","ಪೂರ್ವಾಹ್ನ"], - PM: ["ಅಪರಾಹ್ನ","ಅಪರಾಹ್ನ","ಅಪರಾಹ್ನ"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "ml", "default", { - name: "ml", - englishName: "Malayalam", - nativeName: "മലയാളം", - language: "ml", - numberFormat: { - groupSizes: [3,2], - percent: { - pattern: ["-%n","%n"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ക" - } - }, - calendars: { - standard: { - "/": "-", - ":": ".", - firstDay: 1, - days: { - names: ["ഞായറാഴ്ച","തിങ്കളാഴ്ച","ചൊവ്വാഴ്ച","ബുധനാഴ്ച","വ്യാഴാഴ്ച","വെള്ളിയാഴ്ച","ശനിയാഴ്ച"], - namesAbbr: ["ഞായർ.","തിങ്കൾ.","ചൊവ്വ.","ബുധൻ.","വ്യാഴം.","വെള്ളി.","ശനി."], - namesShort: ["ഞ","ത","ച","ബ","വ","വെ","ശ"] - }, - months: { - names: ["ജനുവരി","ഫെബ്റുവരി","മാറ്ച്ച്","ഏപ്റില്","മെയ്","ജൂണ്","ജൂലൈ","ഓഗസ്ററ്","സെപ്ററംബറ്","ഒക്ടോബറ്","നവംബറ്","ഡിസംബറ്",""], - namesAbbr: ["ജനുവരി","ഫെബ്റുവരി","മാറ്ച്ച്","ഏപ്റില്","മെയ്","ജൂണ്","ജൂലൈ","ഓഗസ്ററ്","സെപ്ററംബറ്","ഒക്ടോബറ്","നവംബറ്","ഡിസംബറ്",""] - }, - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH.mm", - T: "HH.mm.ss", - f: "dd MMMM yyyy HH.mm", - F: "dd MMMM yyyy HH.mm.ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "as", "default", { - name: "as", - englishName: "Assamese", - nativeName: "অসমীয়া", - language: "as", - numberFormat: { - groupSizes: [3,2], - "NaN": "nan", - negativeInfinity: "-infinity", - positiveInfinity: "infinity", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","n$"], - groupSizes: [3,2], - symbol: "ট" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["সোমবাৰ","মঙ্গলবাৰ","বুধবাৰ","বৃহস্পতিবাৰ","শুক্রবাৰ","শনিবাৰ","ৰবিবাৰ"], - namesAbbr: ["সোম.","মঙ্গল.","বুধ.","বৃহ.","শুক্র.","শনি.","ৰবি."], - namesShort: ["সো","ম","বু","বৃ","শু","শ","র"] - }, - months: { - names: ["জানুৱাৰী","ফেব্রুৱাৰী","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগষ্ট","চেপ্টেম্বর","অক্টোবর","নবেম্বর","ডিচেম্বর",""], - namesAbbr: ["জানু","ফেব্রু","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগষ্ট","চেপ্টে","অক্টো","নবে","ডিচে",""] - }, - AM: ["ৰাতিপু","ৰাতিপু","ৰাতিপু"], - PM: ["আবেলি","আবেলি","আবেলি"], - eras: [{"name":"খ্রীষ্টাব্দ","start":null,"offset":0}], - patterns: { - d: "dd-MM-yyyy", - D: "yyyy,MMMM dd, dddd", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "yyyy,MMMM dd, dddd tt h:mm", - F: "yyyy,MMMM dd, dddd tt h:mm:ss", - M: "dd MMMM", - Y: "MMMM,yy" - } - } - } -}); - -Globalize.addCultureInfo( "mr", "default", { - name: "mr", - englishName: "Marathi", - nativeName: "मराठी", - language: "mr", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["रविवार","सोमवार","मंगळवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"], - namesAbbr: ["रवि.","सोम.","मंगळ.","बुध.","गुरु.","शुक्र.","शनि."], - namesShort: ["र","स","म","ब","ग","श","श"] - }, - months: { - names: ["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोव्हेंबर","डिसेंबर",""], - namesAbbr: ["जाने.","फेब्रु.","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टें.","ऑक्टो.","नोव्हें.","डिसें.",""] - }, - AM: ["म.पू.","म.पू.","म.पू."], - PM: ["म.नं.","म.नं.","म.नं."], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "sa", "default", { - name: "sa", - englishName: "Sanskrit", - nativeName: "संस्कृत", - language: "sa", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["रविवासरः","सोमवासरः","मङ्गलवासरः","बुधवासरः","गुरुवासरः","शुक्रवासरः","शनिवासरः"], - namesAbbr: ["रविवासरः","सोमवासरः","मङ्गलवासरः","बुधवासरः","गुरुवासरः","शुक्रवासरः","शनिवासरः"], - namesShort: ["र","स","म","ब","ग","श","श"] - }, - months: { - names: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""], - namesAbbr: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""] - }, - AM: ["पूर्वाह्न","पूर्वाह्न","पूर्वाह्न"], - PM: ["अपराह्न","अपराह्न","अपराह्न"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy dddd", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy dddd HH:mm", - F: "dd MMMM yyyy dddd HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "mn", "default", { - name: "mn", - englishName: "Mongolian", - nativeName: "Монгол хэл", - language: "mn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "₮" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Ням","Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба"], - namesAbbr: ["Ня","Да","Мя","Лх","Пү","Ба","Бя"], - namesShort: ["Ня","Да","Мя","Лх","Пү","Ба","Бя"] - }, - months: { - names: ["1 дүгээр сар","2 дугаар сар","3 дугаар сар","4 дүгээр сар","5 дугаар сар","6 дугаар сар","7 дугаар сар","8 дугаар сар","9 дүгээр сар","10 дугаар сар","11 дүгээр сар","12 дугаар сар",""], - namesAbbr: ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII",""] - }, - monthsGenitive: { - names: ["1 дүгээр сарын","2 дугаар сарын","3 дугаар сарын","4 дүгээр сарын","5 дугаар сарын","6 дугаар сарын","7 дугаар сарын","8 дугаар сарын","9 дүгээр сарын","10 дугаар сарын","11 дүгээр сарын","12 дугаар сарын",""], - namesAbbr: ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII",""] - }, - AM: null, - PM: null, - patterns: { - d: "yy.MM.dd", - D: "yyyy 'оны' MMMM d", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'оны' MMMM d H:mm", - F: "yyyy 'оны' MMMM d H:mm:ss", - M: "d MMMM", - Y: "yyyy 'он' MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "bo", "default", { - name: "bo", - englishName: "Tibetan", - nativeName: "བོད་ཡིག", - language: "bo", - numberFormat: { - groupSizes: [3,0], - "NaN": "ཨང་ཀི་མིན་པ།", - negativeInfinity: "མོ་གྲངས་ཚད་མེད་ཆུང་བ།", - positiveInfinity: "ཕོ་གྲངས་ཚད་མེད་ཆེ་བ།", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["$-n","$n"], - groupSizes: [3,0], - symbol: "¥" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["གཟའ་ཉི་མ།","གཟའ་ཟླ་བ།","གཟའ་མིག་དམར།","གཟའ་ལྷག་པ།","གཟའ་ཕུར་བུ།","གཟའ་པ་སངས།","གཟའ་སྤེན་པ།"], - namesAbbr: ["ཉི་མ།","ཟླ་བ།","མིག་དམར།","ལྷག་པ།","ཕུར་བུ།","པ་སངས།","སྤེན་པ།"], - namesShort: ["༧","༡","༢","༣","༤","༥","༦"] - }, - months: { - names: ["སྤྱི་ཟླ་དང་པོ།","སྤྱི་ཟླ་གཉིས་པ།","སྤྱི་ཟླ་གསུམ་པ།","སྤྱི་ཟླ་བཞི་པ།","སྤྱི་ཟླ་ལྔ་པ།","སྤྱི་ཟླ་དྲུག་པ།","སྤྱི་ཟླ་བདུན་པ།","སྤྱི་ཟླ་བརྒྱད་པ།","སྤྱི་ཟླ་དགུ་པ།","སྤྱི་ཟླ་བཅུ་པོ།","སྤྱི་ཟླ་བཅུ་གཅིག་པ།","སྤྱི་ཟླ་བཅུ་གཉིས་པ།",""], - namesAbbr: ["ཟླ་ ༡","ཟླ་ ༢","ཟླ་ ༣","ཟླ་ ༤","ཟླ་ ༥","ཟླ་ ༦","ཟླ་ ༧","ཟླ་ ༨","ཟླ་ ༩","ཟླ་ ༡༠","ཟླ་ ༡༡","ཟླ་ ༡༢",""] - }, - AM: ["སྔ་དྲོ","སྔ་དྲོ","སྔ་དྲོ"], - PM: ["ཕྱི་དྲོ","ཕྱི་དྲོ","ཕྱི་དྲོ"], - eras: [{"name":"སྤྱི་ལོ","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'ལོའི་ཟླ' M'ཚེས' d", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy'ལོའི་ཟླ' M'ཚེས' d HH:mm", - F: "yyyy'ལོའི་ཟླ' M'ཚེས' d HH:mm:ss", - M: "'ཟླ་' M'ཚེས'd", - Y: "yyyy.M" - } - } - } -}); - -Globalize.addCultureInfo( "cy", "default", { - name: "cy", - englishName: "Welsh", - nativeName: "Cymraeg", - language: "cy", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "£" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"], - namesAbbr: ["Sul","Llun","Maw","Mer","Iau","Gwe","Sad"], - namesShort: ["Su","Ll","Ma","Me","Ia","Gw","Sa"] - }, - months: { - names: ["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr",""], - namesAbbr: ["Ion","Chwe","Maw","Ebr","Mai","Meh","Gor","Aws","Med","Hyd","Tach","Rhag",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "km", "default", { - name: "km", - englishName: "Khmer", - nativeName: "ខ្មែរ", - language: "km", - numberFormat: { - pattern: ["- n"], - groupSizes: [3,0], - "NaN": "NAN", - negativeInfinity: "-- អនន្ត", - positiveInfinity: "អនន្ត", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["-n$","n$"], - symbol: "៛" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["ថ្ងៃអាទិត្យ","ថ្ងៃច័ន្ទ","ថ្ងៃអង្គារ","ថ្ងៃពុធ","ថ្ងៃព្រហស្បតិ៍","ថ្ងៃសុក្រ","ថ្ងៃសៅរ៍"], - namesAbbr: ["អាទិ.","ច.","អ.","ពុ","ព្រហ.","សុ.","ស."], - namesShort: ["អា","ច","អ","ពុ","ព្","សុ","ស"] - }, - months: { - names: ["មករា","កុម្ភៈ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ",""], - namesAbbr: ["១","២","៣","៤","៥","៦","៧","៨","៩","១០","១១","១២",""] - }, - AM: ["ព្រឹក","ព្រឹក","ព្រឹក"], - PM: ["ល្ងាច","ល្ងាច","ល្ងាច"], - eras: [{"name":"មុនគ.ស.","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "d MMMM yyyy", - t: "H:mm tt", - T: "HH:mm:ss", - f: "d MMMM yyyy H:mm tt", - F: "d MMMM yyyy HH:mm:ss", - M: "'ថ្ងៃទី' dd 'ខែ' MM", - Y: "'ខែ' MM 'ឆ្នាំ' yyyy" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ព្រឹក","ព្រឹក","ព្រឹក"], - PM: ["ល្ងាច","ល្ងាច","ល្ងាច"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm tt", - T: "HH:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm tt", - F: "dddd, MMMM dd, yyyy HH:mm:ss" - } - } - } -}); - -Globalize.addCultureInfo( "lo", "default", { - name: "lo", - englishName: "Lao", - nativeName: "ລາວ", - language: "lo", - numberFormat: { - pattern: ["(n)"], - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - }, - currency: { - pattern: ["(n$)","n$"], - groupSizes: [3,0], - symbol: "₭" - } - }, - calendars: { - standard: { - days: { - names: ["ວັນອາທິດ","ວັນຈັນ","ວັນອັງຄານ","ວັນພຸດ","ວັນພະຫັດ","ວັນສຸກ","ວັນເສົາ"], - namesAbbr: ["ອາທິດ","ຈັນ","ອັງຄານ","ພຸດ","ພະຫັດ","ສຸກ","ເສົາ"], - namesShort: ["ອ","ຈ","ອ","ພ","ພ","ສ","ເ"] - }, - months: { - names: ["ມັງກອນ","ກຸມພາ","ມີນາ","ເມສາ","ພຶດສະພາ","ມິຖຸນາ","ກໍລະກົດ","ສິງຫາ","ກັນຍາ","ຕຸລາ","ພະຈິກ","ທັນວາ",""], - namesAbbr: ["ມັງກອນ","ກຸມພາ","ມີນາ","ເມສາ","ພຶດສະພາ","ມິຖຸນາ","ກໍລະກົດ","ສິງຫາ","ກັນຍາ","ຕຸລາ","ພະຈິກ","ທັນວາ",""] - }, - AM: ["ເຊົ້າ","ເຊົ້າ","ເຊົ້າ"], - PM: ["ແລງ","ແລງ","ແລງ"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm tt", - T: "HH:mm:ss", - f: "dd MMMM yyyy H:mm tt", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "gl", "default", { - name: "gl", - englishName: "Galician", - nativeName: "galego", - language: "gl", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domingo","luns","martes","mércores","xoves","venres","sábado"], - namesAbbr: ["dom","luns","mar","mér","xov","ven","sáb"], - namesShort: ["do","lu","ma","mé","xo","ve","sá"] - }, - months: { - names: ["xaneiro","febreiro","marzo","abril","maio","xuño","xullo","agosto","setembro","outubro","novembro","decembro",""], - namesAbbr: ["xan","feb","mar","abr","maio","xuñ","xull","ago","set","out","nov","dec",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "kok", "default", { - name: "kok", - englishName: "Konkani", - nativeName: "कोंकणी", - language: "kok", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["आयतार","सोमार","मंगळार","बुधवार","बिरेस्तार","सुक्रार","शेनवार"], - namesAbbr: ["आय.","सोम.","मंगळ.","बुध.","बिरे.","सुक्र.","शेन."], - namesShort: ["आ","स","म","ब","ब","स","श"] - }, - months: { - names: ["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोवेम्बर","डिसेंबर",""], - namesAbbr: ["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोवेम्बर","डिसेंबर",""] - }, - AM: ["म.पू.","म.पू.","म.पू."], - PM: ["म.नं.","म.नं.","म.नं."], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "syr", "default", { - name: "syr", - englishName: "Syriac", - nativeName: "ܣܘܪܝܝܐ", - language: "syr", - isRTL: true, - numberFormat: { - currency: { - pattern: ["$n-","$ n"], - symbol: "ل.س.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["ܚܕ ܒܫܒܐ","ܬܪܝܢ ܒܫܒܐ","ܬܠܬܐ ܒܫܒܐ","ܐܪܒܥܐ ܒܫܒܐ","ܚܡܫܐ ܒܫܒܐ","ܥܪܘܒܬܐ","ܫܒܬܐ"], - namesAbbr: ["\u070fܐ \u070fܒܫ","\u070fܒ \u070fܒܫ","\u070fܓ \u070fܒܫ","\u070fܕ \u070fܒܫ","\u070fܗ \u070fܒܫ","\u070fܥܪܘܒ","\u070fܫܒ"], - namesShort: ["ܐ","ܒ","ܓ","ܕ","ܗ","ܥ","ܫ"] - }, - months: { - names: ["ܟܢܘܢ ܐܚܪܝ","ܫܒܛ","ܐܕܪ","ܢܝܣܢ","ܐܝܪ","ܚܙܝܪܢ","ܬܡܘܙ","ܐܒ","ܐܝܠܘܠ","ܬܫܪܝ ܩܕܝܡ","ܬܫܪܝ ܐܚܪܝ","ܟܢܘܢ ܩܕܝܡ",""], - namesAbbr: ["\u070fܟܢ \u070fܒ","ܫܒܛ","ܐܕܪ","ܢܝܣܢ","ܐܝܪ","ܚܙܝܪܢ","ܬܡܘܙ","ܐܒ","ܐܝܠܘܠ","\u070fܬܫ \u070fܐ","\u070fܬܫ \u070fܒ","\u070fܟܢ \u070fܐ",""] - }, - AM: ["ܩ.ܛ","ܩ.ܛ","ܩ.ܛ"], - PM: ["ܒ.ܛ","ܒ.ܛ","ܒ.ܛ"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "si", "default", { - name: "si", - englishName: "Sinhala", - nativeName: "සිංහල", - language: "si", - numberFormat: { - groupSizes: [3,2], - negativeInfinity: "-අනන්තය", - positiveInfinity: "අනන්තය", - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["($ n)","$ n"], - symbol: "රු." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ඉරිදා","සඳුදා","අඟහරුවාදා","බදාදා","බ්\u200dරහස්පතින්දා","සිකුරාදා","සෙනසුරාදා"], - namesAbbr: ["ඉරිදා","සඳුදා","කුජදා","බුදදා","ගුරුදා","කිවිදා","ශනිදා"], - namesShort: ["ඉ","ස","අ","බ","බ්\u200dර","සි","සෙ"] - }, - months: { - names: ["ජනවාරි","පෙබරවාරි","මාර්තු","අ\u200cප්\u200dරේල්","මැයි","ජූනි","ජූලි","අ\u200cගෝස්තු","සැප්තැම්බර්","ඔක්තෝබර්","නොවැම්බර්","දෙසැම්බර්",""], - namesAbbr: ["ජන.","පෙබ.","මාර්තු.","අප්\u200dරේල්.","මැයි.","ජූනි.","ජූලි.","අගෝ.","සැප්.","ඔක්.","නොවැ.","දෙසැ.",""] - }, - AM: ["පෙ.ව.","පෙ.ව.","පෙ.ව."], - PM: ["ප.ව.","ප.ව.","ප.ව."], - eras: [{"name":"ක්\u200dරි.ව.","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "yyyy MMMM' මස 'dd' වැනිදා 'dddd", - f: "yyyy MMMM' මස 'dd' වැනිදා 'dddd h:mm tt", - F: "yyyy MMMM' මස 'dd' වැනිදා 'dddd h:mm:ss tt", - Y: "yyyy MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "iu", "default", { - name: "iu", - englishName: "Inuktitut", - nativeName: "Inuktitut", - language: "iu", - numberFormat: { - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["Naattiinguja","Naggajjau","Aippiq","Pingatsiq","Sitammiq","Tallirmiq","Sivataarvik"], - namesAbbr: ["Nat","Nag","Aip","Pi","Sit","Tal","Siv"], - namesShort: ["N","N","A","P","S","T","S"] - }, - months: { - names: ["Jaannuari","Viivvuari","Maatsi","Iipuri","Mai","Juuni","Julai","Aaggiisi","Sitipiri","Utupiri","Nuvipiri","Tisipiri",""], - namesAbbr: ["Jan","Viv","Mas","Ipu","Mai","Jun","Jul","Agi","Sii","Uut","Nuv","Tis",""] - }, - patterns: { - d: "d/MM/yyyy", - D: "ddd, MMMM dd,yyyy", - f: "ddd, MMMM dd,yyyy h:mm tt", - F: "ddd, MMMM dd,yyyy h:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "am", "default", { - name: "am", - englishName: "Amharic", - nativeName: "አማርኛ", - language: "am", - numberFormat: { - decimals: 1, - groupSizes: [3,0], - "NaN": "NAN", - percent: { - pattern: ["-n%","n%"], - decimals: 1, - groupSizes: [3,0] - }, - currency: { - pattern: ["-$n","$n"], - groupSizes: [3,0], - symbol: "ETB" - } - }, - calendars: { - standard: { - days: { - names: ["እሑድ","ሰኞ","ማክሰኞ","ረቡዕ","ሐሙስ","ዓርብ","ቅዳሜ"], - namesAbbr: ["እሑድ","ሰኞ","ማክሰ","ረቡዕ","ሐሙስ","ዓርብ","ቅዳሜ"], - namesShort: ["እ","ሰ","ማ","ረ","ሐ","ዓ","ቅ"] - }, - months: { - names: ["ጃንዩወሪ","ፌብሩወሪ","ማርች","ኤፕረል","ሜይ","ጁን","ጁላይ","ኦገስት","ሴፕቴምበር","ኦክተውበር","ኖቬምበር","ዲሴምበር",""], - namesAbbr: ["ጃንዩ","ፌብሩ","ማርች","ኤፕረ","ሜይ","ጁን","ጁላይ","ኦገስ","ሴፕቴ","ኦክተ","ኖቬም","ዲሴም",""] - }, - AM: ["ጡዋት","ጡዋት","ጡዋት"], - PM: ["ከሰዓት","ከሰዓት","ከሰዓት"], - eras: [{"name":"ዓመተ ምሕረት","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "dddd '፣' MMMM d 'ቀን' yyyy", - f: "dddd '፣' MMMM d 'ቀን' yyyy h:mm tt", - F: "dddd '፣' MMMM d 'ቀን' yyyy h:mm:ss tt", - M: "MMMM d ቀን", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "tzm", "default", { - name: "tzm", - englishName: "Tamazight", - nativeName: "Tamazight", - language: "tzm", - numberFormat: { - pattern: ["n-"], - ",": ".", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - symbol: "DZD" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 6, - days: { - names: ["Acer","Arime","Aram","Ahad","Amhadh","Sem","Sedh"], - namesAbbr: ["Ace","Ari","Ara","Aha","Amh","Sem","Sed"], - namesShort: ["Ac","Ar","Ar","Ah","Am","Se","Se"] - }, - months: { - names: ["Yenayer","Furar","Maghres","Yebrir","Mayu","Yunyu","Yulyu","Ghuct","Cutenber","Ktuber","Wambir","Dujanbir",""], - namesAbbr: ["Yen","Fur","Mag","Yeb","May","Yun","Yul","Ghu","Cut","Ktu","Wam","Duj",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM, yyyy H:mm", - F: "dd MMMM, yyyy H:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "ne", "default", { - name: "ne", - englishName: "Nepali", - nativeName: "नेपाली", - language: "ne", - numberFormat: { - groupSizes: [3,2], - "NaN": "nan", - negativeInfinity: "-infinity", - positiveInfinity: "infinity", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,2] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "रु" - } - }, - calendars: { - standard: { - days: { - names: ["आइतवार","सोमवार","मङ्गलवार","बुधवार","बिहीवार","शुक्रवार","शनिवार"], - namesAbbr: ["आइत","सोम","मङ्गल","बुध","बिही","शुक्र","शनि"], - namesShort: ["आ","सो","म","बु","बि","शु","श"] - }, - months: { - names: ["जनवरी","फेब्रुअरी","मार्च","अप्रिल","मे","जून","जुलाई","अगस्त","सेप्टेम्बर","अक्टोबर","नोभेम्बर","डिसेम्बर",""], - namesAbbr: ["जन","फेब","मार्च","अप्रिल","मे","जून","जुलाई","अग","सेप्ट","अक्ट","नोभ","डिस",""] - }, - AM: ["विहानी","विहानी","विहानी"], - PM: ["बेलुकी","बेलुकी","बेलुकी"], - eras: [{"name":"a.d.","start":null,"offset":0}], - patterns: { - Y: "MMMM,yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fy", "default", { - name: "fy", - englishName: "Frisian", - nativeName: "Frysk", - language: "fy", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["Snein","Moandei","Tiisdei","Woansdei","Tongersdei","Freed","Sneon"], - namesAbbr: ["Sn","Mo","Ti","Wo","To","Fr","Sn"], - namesShort: ["S","M","T","W","T","F","S"] - }, - months: { - names: ["jannewaris","febrewaris","maart","april","maaie","juny","july","augustus","septimber","oktober","novimber","desimber",""], - namesAbbr: ["jann","febr","mrt","apr","maaie","jun","jul","aug","sept","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "d-M-yyyy", - D: "dddd d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd d MMMM yyyy H:mm", - F: "dddd d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ps", "default", { - name: "ps", - englishName: "Pashto", - nativeName: "پښتو", - language: "ps", - isRTL: true, - numberFormat: { - pattern: ["n-"], - ",": "،", - ".": ",", - "NaN": "غ ع", - negativeInfinity: "-∞", - positiveInfinity: "∞", - percent: { - pattern: ["%n-","%n"], - ",": "،", - ".": "," - }, - currency: { - pattern: ["$n-","$n"], - ",": "٬", - ".": "٫", - symbol: "؋" - } - }, - calendars: { - standard: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - f: "dd/MM/yyyy h:mm tt", - F: "dd/MM/yyyy h:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_Localized: { - firstDay: 6, - days: { - names: ["یکشنبه","دوشنبه","سه\u200cشنبه","چارشنبه","پنجشنبه","جمعه","شنبه"], - namesAbbr: ["یکشنبه","دوشنبه","سه\u200cشنبه","چارشنبه","پنجشنبه","جمعه","شنبه"], - namesShort: ["ی","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګا ښزمرى","زمرى","وږى","تله","لړم","لنڈ ۍ","مرغومى",""], - namesAbbr: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګا ښ","زمرى","وږى","تله","لړم","لنڈ ۍ","مرغومى",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"ل.ه","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy, dd, MMMM, dddd", - f: "yyyy, dd, MMMM, dddd h:mm tt", - F: "yyyy, dd, MMMM, dddd h:mm:ss tt", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fil", "default", { - name: "fil", - englishName: "Filipino", - nativeName: "Filipino", - language: "fil", - numberFormat: { - currency: { - symbol: "PhP" - } - }, - calendars: { - standard: { - days: { - names: ["Linggo","Lunes","Martes","Mierkoles","Huebes","Biernes","Sabado"], - namesAbbr: ["Lin","Lun","Mar","Mier","Hueb","Bier","Saba"], - namesShort: ["L","L","M","M","H","B","S"] - }, - months: { - names: ["Enero","Pebrero","Marso","Abril","Mayo","Hunyo","Hulyo","Agosto","Septyembre","Oktubre","Nobyembre","Disyembre",""], - namesAbbr: ["En","Peb","Mar","Abr","Mayo","Hun","Hul","Agos","Sept","Okt","Nob","Dis",""] - }, - eras: [{"name":"Anno Domini","start":null,"offset":0}] - } - } -}); - -Globalize.addCultureInfo( "dv", "default", { - name: "dv", - englishName: "Divehi", - nativeName: "ދިވެހިބަސް", - language: "dv", - isRTL: true, - numberFormat: { - currency: { - pattern: ["n $-","n $"], - symbol: "ރ." - } - }, - calendars: { - standard: { - name: "Hijri", - days: { - names: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesAbbr: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesShort: ["އާ","ހޯ","އަ","ބު","ބު","ހު","ހޮ"] - }, - months: { - names: ["މުޙައްރަމް","ޞަފަރު","ރަބީޢުލްއައްވަލް","ރަބީޢުލްއާޚިރު","ޖުމާދަލްއޫލާ","ޖުމާދަލްއާޚިރާ","ރަޖަބް","ޝަޢްބާން","ރަމަޟާން","ޝައްވާލް","ޛުލްޤަޢިދާ","ޛުލްޙިއްޖާ",""], - namesAbbr: ["މުޙައްރަމް","ޞަފަރު","ރަބީޢުލްއައްވަލް","ރަބީޢުލްއާޚިރު","ޖުމާދަލްއޫލާ","ޖުމާދަލްއާޚިރާ","ރަޖަބް","ޝަޢްބާން","ރަމަޟާން","ޝައްވާލް","ޛުލްޤަޢިދާ","ޛުލްޙިއްޖާ",""] - }, - AM: ["މކ","މކ","މކ"], - PM: ["މފ","މފ","މފ"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd/MM/yyyy HH:mm", - F: "dd/MM/yyyy HH:mm:ss", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_Localized: { - days: { - names: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesAbbr: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesShort: ["އާ","ހޯ","އަ","ބު","ބު","ހު","ހޮ"] - }, - months: { - names: ["ޖަނަވަރީ","ފެބްރުއަރީ","މާޗް","އޭޕްރިލް","މެއި","ޖޫން","ޖުލައި","އޯގަސްޓް","ސެޕްޓެމްބަރ","އޮކްޓޯބަރ","ނޮވެމްބަރ","ޑިސެމްބަރ",""], - namesAbbr: ["ޖަނަވަރީ","ފެބްރުއަރީ","މާޗް","އޭޕްރިލް","މެއި","ޖޫން","ޖުލައި","އޯގަސްޓް","ސެޕްޓެމްބަރ","އޮކްޓޯބަރ","ނޮވެމްބަރ","ޑިސެމްބަރ",""] - }, - AM: ["މކ","މކ","މކ"], - PM: ["މފ","މފ","މފ"], - eras: [{"name":"މީލާދީ","start":null,"offset":0}], - patterns: { - d: "dd/MM/yy", - D: "ddd, yyyy MMMM dd", - t: "HH:mm", - T: "HH:mm:ss", - f: "ddd, yyyy MMMM dd HH:mm", - F: "ddd, yyyy MMMM dd HH:mm:ss", - Y: "yyyy, MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "ha", "default", { - name: "ha", - englishName: "Hausa", - nativeName: "Hausa", - language: "ha", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Lahadi","Litinin","Talata","Laraba","Alhamis","Juma'a","Asabar"], - namesAbbr: ["Lah","Lit","Tal","Lar","Alh","Jum","Asa"], - namesShort: ["L","L","T","L","A","J","A"] - }, - months: { - names: ["Januwaru","Febreru","Maris","Afrilu","Mayu","Yuni","Yuli","Agusta","Satumba","Oktocba","Nuwamba","Disamba",""], - namesAbbr: ["Jan","Feb","Mar","Afr","May","Yun","Yul","Agu","Sat","Okt","Nuw","Dis",""] - }, - AM: ["Safe","safe","SAFE"], - PM: ["Yamma","yamma","YAMMA"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "yo", "default", { - name: "yo", - englishName: "Yoruba", - nativeName: "Yoruba", - language: "yo", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Aiku","Aje","Isegun","Ojo'ru","Ojo'bo","Eti","Abameta"], - namesAbbr: ["Aik","Aje","Ise","Ojo","Ojo","Eti","Aba"], - namesShort: ["A","A","I","O","O","E","A"] - }, - months: { - names: ["Osu kinni","Osu keji","Osu keta","Osu kerin","Osu karun","Osu kefa","Osu keje","Osu kejo","Osu kesan","Osu kewa","Osu kokanla","Osu keresi",""], - namesAbbr: ["kin.","kej.","ket.","ker.","kar.","kef.","kej.","kej.","kes.","kew.","kok.","ker.",""] - }, - AM: ["Owuro","owuro","OWURO"], - PM: ["Ale","ale","ALE"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "quz", "default", { - name: "quz", - englishName: "Quechua", - nativeName: "runasimi", - language: "quz", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": ",", - symbol: "$b" - } - }, - calendars: { - standard: { - days: { - names: ["intichaw","killachaw","atipachaw","quyllurchaw","Ch' askachaw","Illapachaw","k'uychichaw"], - namesAbbr: ["int","kil","ati","quy","Ch'","Ill","k'u"], - namesShort: ["d","k","a","m","h","b","k"] - }, - months: { - names: ["Qulla puquy","Hatun puquy","Pauqar waray","ayriwa","Aymuray","Inti raymi","Anta Sitwa","Qhapaq Sitwa","Uma raymi","Kantaray","Ayamarq'a","Kapaq Raymi",""], - namesAbbr: ["Qul","Hat","Pau","ayr","Aym","Int","Ant","Qha","Uma","Kan","Aya","Kap",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "nso", "default", { - name: "nso", - englishName: "Sesotho sa Leboa", - nativeName: "Sesotho sa Leboa", - language: "nso", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["Lamorena","Mošupologo","Labobedi","Laboraro","Labone","Labohlano","Mokibelo"], - namesAbbr: ["Lam","Moš","Lbb","Lbr","Lbn","Lbh","Mok"], - namesShort: ["L","M","L","L","L","L","M"] - }, - months: { - names: ["Pherekgong","Hlakola","Mopitlo","Moranang","Mosegamanye","Ngoatobošego","Phuphu","Phato","Lewedi","Diphalana","Dibatsela","Manthole",""], - namesAbbr: ["Pher","Hlak","Mop","Mor","Mos","Ngwat","Phup","Phat","Lew","Dip","Dib","Man",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ba", "default", { - name: "ba", - englishName: "Bashkir", - nativeName: "Башҡорт", - language: "ba", - numberFormat: { - ",": " ", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - groupSizes: [3,0], - ",": " ", - ".": ",", - symbol: "һ." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Йәкшәмбе","Дүшәмбе","Шишәмбе","Шаршамбы","Кесаҙна","Йома","Шәмбе"], - namesAbbr: ["Йш","Дш","Шш","Шр","Кс","Йм","Шб"], - namesShort: ["Йш","Дш","Шш","Шр","Кс","Йм","Шб"] - }, - months: { - names: ["ғинуар","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь",""], - namesAbbr: ["ғин","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d MMMM yyyy 'й'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy 'й' H:mm", - F: "d MMMM yyyy 'й' H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "lb", "default", { - name: "lb", - englishName: "Luxembourgish", - nativeName: "Lëtzebuergesch", - language: "lb", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "n. num.", - negativeInfinity: "-onendlech", - positiveInfinity: "+onendlech", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Sonndeg","Méindeg","Dënschdeg","Mëttwoch","Donneschdeg","Freideg","Samschdeg"], - namesAbbr: ["Son","Méi","Dën","Mët","Don","Fre","Sam"], - namesShort: ["So","Mé","Dë","Më","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","Mäerz","Abrëll","Mee","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mäe","Abr","Mee","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "kl", "default", { - name: "kl", - englishName: "Greenlandic", - nativeName: "kalaallisut", - language: "kl", - numberFormat: { - ",": ".", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - groupSizes: [3,0], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,0], - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["sapaat","ataasinngorneq","marlunngorneq","pingasunngorneq","sisamanngorneq","tallimanngorneq","arfininngorneq"], - namesAbbr: ["sap","ata","mar","ping","sis","tal","arf"], - namesShort: ["sa","at","ma","pi","si","ta","ar"] - }, - months: { - names: ["januari","februari","martsi","apriili","maaji","juni","juli","aggusti","septembari","oktobari","novembari","decembari",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ig", "default", { - name: "ig", - englishName: "Igbo", - nativeName: "Igbo", - language: "ig", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Aiku","Aje","Isegun","Ojo'ru","Ojo'bo","Eti","Abameta"], - namesAbbr: ["Aik","Aje","Ise","Ojo","Ojo","Eti","Aba"], - namesShort: ["A","A","I","O","O","E","A"] - }, - months: { - names: ["Onwa mbu","Onwa ibua","Onwa ato","Onwa ano","Onwa ise","Onwa isi","Onwa asa","Onwa asato","Onwa itolu","Onwa iri","Onwa iri n'ofu","Onwa iri n'ibua",""], - namesAbbr: ["mbu.","ibu.","ato.","ano.","ise","isi","asa","asa.","ito.","iri.","n'of.","n'ib.",""] - }, - AM: ["Ututu","ututu","UTUTU"], - PM: ["Efifie","efifie","EFIFIE"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ii", "default", { - name: "ii", - englishName: "Yi", - nativeName: "ꆈꌠꁱꂷ", - language: "ii", - numberFormat: { - groupSizes: [3,0], - "NaN": "ꌗꂷꀋꉬ", - negativeInfinity: "ꀄꊭꌐꀋꉆ", - positiveInfinity: "ꈤꇁꑖꀋꉬ", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["ꑭꆏꑍ","ꆏꊂ꒔","ꆏꊂꑍ","ꆏꊂꌕ","ꆏꊂꇖ","ꆏꊂꉬ","ꆏꊂꃘ"], - namesAbbr: ["ꑭꆏ","ꆏ꒔","ꆏꑍ","ꆏꌕ","ꆏꇖ","ꆏꉬ","ꆏꃘ"], - namesShort: ["ꆏ","꒔","ꑍ","ꌕ","ꇖ","ꉬ","ꃘ"] - }, - months: { - names: ["ꋍꆪ","ꑍꆪ","ꌕꆪ","ꇖꆪ","ꉬꆪ","ꃘꆪ","ꏃꆪ","ꉆꆪ","ꈬꆪ","ꊰꆪ","ꊯꊪꆪ","ꊰꑋꆪ",""], - namesAbbr: ["ꋍꆪ","ꑍꆪ","ꌕꆪ","ꇖꆪ","ꉬꆪ","ꃘꆪ","ꏃꆪ","ꉆꆪ","ꈬꆪ","ꊰꆪ","ꊯꊪꆪ","ꊰꑋꆪ",""] - }, - AM: ["ꂵꆪꈌꈐ","ꂵꆪꈌꈐ","ꂵꆪꈌꈐ"], - PM: ["ꂵꆪꈌꉈ","ꂵꆪꈌꉈ","ꂵꆪꈌꉈ"], - eras: [{"name":"ꇬꑼ","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'ꈎ' M'ꆪ' d'ꑍ'", - t: "tt h:mm", - T: "H:mm:ss", - f: "yyyy'ꈎ' M'ꆪ' d'ꑍ' tt h:mm", - F: "yyyy'ꈎ' M'ꆪ' d'ꑍ' H:mm:ss", - M: "M'ꆪ' d'ꑍ'", - Y: "yyyy'ꈎ' M'ꆪ'" - } - } - } -}); - -Globalize.addCultureInfo( "arn", "default", { - name: "arn", - englishName: "Mapudungun", - nativeName: "Mapudungun", - language: "arn", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd-MM-yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "moh", "default", { - name: "moh", - englishName: "Mohawk", - nativeName: "Kanien'kéha", - language: "moh", - numberFormat: { - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["Awentatokentì:ke","Awentataón'ke","Ratironhia'kehronòn:ke","Soséhne","Okaristiiáhne","Ronwaia'tanentaktonhne","Entákta"], - namesShort: ["S","M","T","W","T","F","S"] - }, - months: { - names: ["Tsothohrkó:Wa","Enniska","Enniskó:Wa","Onerahtókha","Onerahtohkó:Wa","Ohiari:Ha","Ohiarihkó:Wa","Seskéha","Seskehkó:Wa","Kenténha","Kentenhkó:Wa","Tsothóhrha",""] - } - } - } -}); - -Globalize.addCultureInfo( "br", "default", { - name: "br", - englishName: "Breton", - nativeName: "brezhoneg", - language: "br", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "NkN", - negativeInfinity: "-Anfin", - positiveInfinity: "+Anfin", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Sul","Lun","Meurzh","Merc'her","Yaou","Gwener","Sadorn"], - namesAbbr: ["Sul","Lun","Meu.","Mer.","Yaou","Gwe.","Sad."], - namesShort: ["Su","Lu","Mz","Mc","Ya","Gw","Sa"] - }, - months: { - names: ["Genver","C'hwevrer","Meurzh","Ebrel","Mae","Mezheven","Gouere","Eost","Gwengolo","Here","Du","Kerzu",""], - namesAbbr: ["Gen.","C'hwe.","Meur.","Ebr.","Mae","Mezh.","Goue.","Eost","Gwen.","Here","Du","Kzu",""] - }, - AM: null, - PM: null, - eras: [{"name":"g. J.-K.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ug", "default", { - name: "ug", - englishName: "Uyghur", - nativeName: "ئۇيغۇرچە", - language: "ug", - isRTL: true, - numberFormat: { - "NaN": "سان ئەمەس", - negativeInfinity: "مەنپىي چەكسىزلىك", - positiveInfinity: "مۇسبەت چەكسىزلىك", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["يەكشەنبە","دۈشەنبە","سەيشەنبە","چارشەنبە","پەيشەنبە","جۈمە","شەنبە"], - namesAbbr: ["يە","دۈ","سە","چا","پە","جۈ","شە"], - namesShort: ["ي","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["1-ئاي","2-ئاي","3-ئاي","4-ئاي","5-ئاي","6-ئاي","7-ئاي","8-ئاي","9-ئاي","10-ئاي","11-ئاي","12-ئاي",""], - namesAbbr: ["1-ئاي","2-ئاي","3-ئاي","4-ئاي","5-ئاي","6-ئاي","7-ئاي","8-ئاي","9-ئاي","10-ئاي","11-ئاي","12-ئاي",""] - }, - AM: ["چۈشتىن بۇرۇن","چۈشتىن بۇرۇن","چۈشتىن بۇرۇن"], - PM: ["چۈشتىن كېيىن","چۈشتىن كېيىن","چۈشتىن كېيىن"], - eras: [{"name":"مىلادى","start":null,"offset":0}], - patterns: { - d: "yyyy-M-d", - D: "yyyy-'يىلى' MMMM d-'كۈنى،'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy-'يىلى' MMMM d-'كۈنى،' H:mm", - F: "yyyy-'يىلى' MMMM d-'كۈنى،' H:mm:ss", - M: "MMMM d'-كۈنى'", - Y: "yyyy-'يىلى' MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "mi", "default", { - name: "mi", - englishName: "Maori", - nativeName: "Reo Māori", - language: "mi", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Rātapu","Rāhina","Rātū","Rāapa","Rāpare","Rāmere","Rāhoroi"], - namesAbbr: ["Ta","Hi","Tū","Apa","Pa","Me","Ho"], - namesShort: ["Ta","Hi","Tū","Aa","Pa","Me","Ho"] - }, - months: { - names: ["Kohi-tātea","Hui-tanguru","Poutū-te-rangi","Paenga-whāwhā","Haratua","Pipiri","Hōngongoi","Here-turi-kōkā","Mahuru","Whiringa-ā-nuku","Whiringa-ā-rangi","Hakihea",""], - namesAbbr: ["Kohi","Hui","Pou","Pae","Hara","Pipi","Hōngo","Here","Mahu","Nuku","Rangi","Haki",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd MMMM, yyyy", - f: "dddd, dd MMMM, yyyy h:mm tt", - F: "dddd, dd MMMM, yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM, yy" - } - } - } -}); - -Globalize.addCultureInfo( "oc", "default", { - name: "oc", - englishName: "Occitan", - nativeName: "Occitan", - language: "oc", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numeric", - negativeInfinity: "-Infinit", - positiveInfinity: "+Infinit", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimenge","diluns","dimars","dimècres","dijòus","divendres","dissabte"], - namesAbbr: ["dim.","lun.","mar.","mèc.","jòu.","ven.","sab."], - namesShort: ["di","lu","ma","mè","jò","ve","sa"] - }, - months: { - names: ["genier","febrier","març","abril","mai","junh","julh","agost","setembre","octobre","novembre","desembre",""], - namesAbbr: ["gen.","feb.","mar.","abr.","mai.","jun.","jul.","ag.","set.","oct.","nov.","des.",""] - }, - monthsGenitive: { - names: ["de genier","de febrier","de març","d'abril","de mai","de junh","de julh","d'agost","de setembre","d'octobre","de novembre","de desembre",""], - namesAbbr: ["gen.","feb.","mar.","abr.","mai.","jun.","jul.","ag.","set.","oct.","nov.","des.",""] - }, - AM: null, - PM: null, - eras: [{"name":"après Jèsus-Crist","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd,' lo 'd MMMM' de 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd,' lo 'd MMMM' de 'yyyy HH:mm", - F: "dddd,' lo 'd MMMM' de 'yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "co", "default", { - name: "co", - englishName: "Corsican", - nativeName: "Corsu", - language: "co", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Mica numericu", - negativeInfinity: "-Infinitu", - positiveInfinity: "+Infinitu", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dumenica","luni","marti","mercuri","ghjovi","venderi","sabbatu"], - namesAbbr: ["dum.","lun.","mar.","mer.","ghj.","ven.","sab."], - namesShort: ["du","lu","ma","me","gh","ve","sa"] - }, - months: { - names: ["ghjennaghju","ferraghju","marzu","aprile","maghju","ghjunghju","lugliu","aostu","settembre","ottobre","nuvembre","dicembre",""], - namesAbbr: ["ghje","ferr","marz","apri","magh","ghju","lugl","aost","sett","otto","nuve","dice",""] - }, - AM: null, - PM: null, - eras: [{"name":"dopu J-C","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "gsw", "default", { - name: "gsw", - englishName: "Alsatian", - nativeName: "Elsässisch", - language: "gsw", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Ohne Nummer", - negativeInfinity: "-Unendlich", - positiveInfinity: "+Unendlich", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Sundàà","Mondàà","Dienschdàà","Mittwuch","Dunnerschdàà","Fridàà","Sàmschdàà"], - namesAbbr: ["Su.","Mo.","Di.","Mi.","Du.","Fr.","Sà."], - namesShort: ["Su","Mo","Di","Mi","Du","Fr","Sà"] - }, - months: { - names: ["Jänner","Feverje","März","Àpril","Mai","Jüni","Jüli","Augscht","September","Oktower","Nowember","Dezember",""], - namesAbbr: ["Jän.","Fev.","März","Apr.","Mai","Jüni","Jüli","Aug.","Sept.","Okt.","Now.","Dez.",""] - }, - AM: null, - PM: null, - eras: [{"name":"Vor J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sah", "default", { - name: "sah", - englishName: "Yakut", - nativeName: "саха", - language: "sah", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "NAN", - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "с." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["баскыһыанньа","бэнидиэнньик","оптуорунньук","сэрэдэ","чэппиэр","бээтинсэ","субуота"], - namesAbbr: ["Бс","Бн","Оп","Ср","Чп","Бт","Сб"], - namesShort: ["Бс","Бн","Оп","Ср","Чп","Бт","Сб"] - }, - months: { - names: ["Тохсунньу","Олунньу","Кулун тутар","Муус устар","Ыам ыйа","Бэс ыйа","От ыйа","Атырдьах ыйа","Балаҕан ыйа","Алтынньы","Сэтинньи","Ахсынньы",""], - namesAbbr: ["тхс","олн","кул","мст","ыам","бэс","отй","атр","блҕ","алт","стн","ахс",""] - }, - monthsGenitive: { - names: ["тохсунньу","олунньу","кулун тутар","муус устар","ыам ыйын","бэс ыйын","от ыйын","атырдьах ыйын","балаҕан ыйын","алтынньы","сэтинньи","ахсынньы",""], - namesAbbr: ["тхс","олн","кул","мст","ыам","бэс","отй","атр","блҕ","алт","стн","ахс",""] - }, - AM: null, - PM: null, - patterns: { - d: "MM.dd.yyyy", - D: "MMMM d yyyy 'с.'", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d yyyy 'с.' H:mm", - F: "MMMM d yyyy 'с.' H:mm:ss", - Y: "MMMM yyyy 'с.'" - } - } - } -}); - -Globalize.addCultureInfo( "qut", "default", { - name: "qut", - englishName: "K'iche", - nativeName: "K'iche", - language: "qut", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - symbol: "Q" - } - }, - calendars: { - standard: { - days: { - names: ["juq'ij","kaq'ij","oxq'ij","kajq'ij","joq'ij","waqq'ij","wuqq'ij"], - namesAbbr: ["juq","kaq","oxq","kajq","joq","waqq","wuqq"], - namesShort: ["ju","ka","ox","ka","jo","wa","wu"] - }, - months: { - names: ["nab'e ik'","ukab' ik'","rox ik'","ukaj ik'","uro' ik'","uwaq ik'","uwuq ik'","uwajxaq ik'","ub'elej ik'","ulaj ik'","ujulaj ik'","ukab'laj ik'",""], - namesAbbr: ["nab'e","ukab","rox","ukaj","uro","uwaq","uwuq","uwajxaq","ub'elej","ulaj","ujulaj","ukab'laj",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "rw", "default", { - name: "rw", - englishName: "Kinyarwanda", - nativeName: "Kinyarwanda", - language: "rw", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$-n","$ n"], - ",": " ", - ".": ",", - symbol: "RWF" - } - }, - calendars: { - standard: { - days: { - names: ["Ku wa mbere","Ku wa kabiri","Ku wa gatatu","Ku wa kane","Ku wa gatanu","Ku wa gatandatu","Ku cyumweru"], - namesAbbr: ["mbe.","kab.","gat.","kan.","gat.","gat.","cyu."], - namesShort: ["mb","ka","ga","ka","ga","ga","cy"] - }, - months: { - names: ["Mutarama","Gashyantare","Werurwe","Mata","Gicurasi","Kamena","Nyakanga","Kanama","Nzeli","Ukwakira","Ugushyingo","Ukuboza",""], - namesAbbr: ["Mut","Gas","Wer","Mat","Gic","Kam","Nya","Kan","Nze","Ukwa","Ugu","Uku",""] - }, - AM: ["saa moya z.m.","saa moya z.m.","SAA MOYA Z.M."], - PM: ["saa moya z.n.","saa moya z.n.","SAA MOYA Z.N."], - eras: [{"name":"AD","start":null,"offset":0}] - } - } -}); - -Globalize.addCultureInfo( "wo", "default", { - name: "wo", - englishName: "Wolof", - nativeName: "Wolof", - language: "wo", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "XOF" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "prs", "default", { - name: "prs", - englishName: "Dari", - nativeName: "درى", - language: "prs", - isRTL: true, - numberFormat: { - pattern: ["n-"], - ",": ".", - ".": ",", - "NaN": "غ ع", - negativeInfinity: "-∞", - positiveInfinity: "∞", - percent: { - pattern: ["%n-","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$n-","$n"], - symbol: "؋" - } - }, - calendars: { - standard: { - name: "Hijri", - firstDay: 5, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - f: "dd/MM/yyyy h:mm tt", - F: "dd/MM/yyyy h:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_Localized: { - firstDay: 5, - days: { - names: ["یکشنبه","دوشنبه","سه\u200cشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesAbbr: ["یکشنبه","دوشنبه","سه\u200cشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesShort: ["ی","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګاښ","زمرى","وږى","تله","لړم","ليندۍ","مرغومى",""], - namesAbbr: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګاښ","زمرى","وږى","تله","لړم","ليندۍ","مرغومى",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"ل.ه","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy, dd, MMMM, dddd", - f: "yyyy, dd, MMMM, dddd h:mm tt", - F: "yyyy, dd, MMMM, dddd h:mm:ss tt", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "gd", "default", { - name: "gd", - englishName: "Scottish Gaelic", - nativeName: "Gàidhlig", - language: "gd", - numberFormat: { - negativeInfinity: "-Neo-chrìochnachd", - positiveInfinity: "Neo-chrìochnachd", - currency: { - pattern: ["-$n","$n"], - symbol: "£" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"], - namesAbbr: ["Dòm","Lua","Mài","Cia","Ard","Hao","Sat"], - namesShort: ["D","L","M","C","A","H","S"] - }, - months: { - names: ["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd",""], - namesAbbr: ["Fao","Gea","Màr","Gib","Cèi","Ògm","Iuc","Lùn","Sul","Dàm","Sam","Dùb",""] - }, - AM: ["m","m","M"], - PM: ["f","f","F"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-SA", "default", { - name: "ar-SA", - englishName: "Arabic (Saudi Arabia)", - nativeName: "العربية (المملكة العربية السعودية)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "ر.س.\u200f" - } - }, - calendars: { - standard: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_Localized: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "bg-BG", "default", { - name: "bg-BG", - englishName: "Bulgarian (Bulgaria)", - nativeName: "български (България)", - language: "bg", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "- безкрайност", - positiveInfinity: "+ безкрайност", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "лв." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["неделя","понеделник","вторник","сряда","четвъртък","петък","събота"], - namesAbbr: ["нед","пон","вт","ср","четв","пет","съб"], - namesShort: ["н","п","в","с","ч","п","с"] - }, - months: { - names: ["януари","февруари","март","април","май","юни","юли","август","септември","октомври","ноември","декември",""], - namesAbbr: ["ян","февр","март","апр","май","юни","юли","авг","септ","окт","ноември","дек",""] - }, - AM: null, - PM: null, - eras: [{"name":"след новата ера","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy 'г.'", - D: "dd MMMM yyyy 'г.'", - t: "HH:mm 'ч.'", - T: "HH:mm:ss 'ч.'", - f: "dd MMMM yyyy 'г.' HH:mm 'ч.'", - F: "dd MMMM yyyy 'г.' HH:mm:ss 'ч.'", - M: "dd MMMM", - Y: "MMMM yyyy 'г.'" - } - } - } -}); - -Globalize.addCultureInfo( "ca-ES", "default", { - name: "ca-ES", - englishName: "Catalan (Catalan)", - nativeName: "català (català)", - language: "ca", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinit", - positiveInfinity: "Infinit", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"], - namesAbbr: ["dg.","dl.","dt.","dc.","dj.","dv.","ds."], - namesShort: ["dg","dl","dt","dc","dj","dv","ds"] - }, - months: { - names: ["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre",""], - namesAbbr: ["gen","feb","març","abr","maig","juny","jul","ag","set","oct","nov","des",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d' / 'MMMM' / 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' / 'MMMM' / 'yyyy HH:mm", - F: "dddd, d' / 'MMMM' / 'yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM' / 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "zh-TW", "default", { - name: "zh-TW", - englishName: "Chinese (Traditional, Taiwan)", - nativeName: "中文(台灣)", - language: "zh-CHT", - numberFormat: { - "NaN": "不是一個數字", - negativeInfinity: "負無窮大", - positiveInfinity: "正無窮大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "NT$" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["週日","週一","週二","週三","週四","週五","週六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"西元","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'年'M'月'd'日'", - t: "tt hh:mm", - T: "tt hh:mm:ss", - f: "yyyy'年'M'月'd'日' tt hh:mm", - F: "yyyy'年'M'月'd'日' tt hh:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - }, - Taiwan: { - name: "Taiwan", - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["週日","週一","週二","週三","週四","週五","週六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"","start":null,"offset":1911}], - twoDigitYearMax: 99, - patterns: { - d: "yyyy/M/d", - D: "yyyy'年'M'月'd'日'", - t: "tt hh:mm", - T: "tt hh:mm:ss", - f: "yyyy'年'M'月'd'日' tt hh:mm", - F: "yyyy'年'M'月'd'日' tt hh:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -Globalize.addCultureInfo( "cs-CZ", "default", { - name: "cs-CZ", - englishName: "Czech (Czech Republic)", - nativeName: "čeština (Česká republika)", - language: "cs", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Není číslo", - negativeInfinity: "-nekonečno", - positiveInfinity: "+nekonečno", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "Kč" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"], - namesAbbr: ["ne","po","út","st","čt","pá","so"], - namesShort: ["ne","po","út","st","čt","pá","so"] - }, - months: { - names: ["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - monthsGenitive: { - names: ["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["dop.","dop.","DOP."], - PM: ["odp.","odp.","ODP."], - eras: [{"name":"n. l.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "da-DK", "default", { - name: "da-DK", - englishName: "Danish (Denmark)", - nativeName: "dansk (Danmark)", - language: "da", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"], - namesAbbr: ["sø","ma","ti","on","to","fr","lø"], - namesShort: ["sø","ma","ti","on","to","fr","lø"] - }, - months: { - names: ["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "de-DE", "default", { - name: "de-DE", - englishName: "German (Germany)", - nativeName: "Deutsch (Deutschland)", - language: "de", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "n. def.", - negativeInfinity: "-unendlich", - positiveInfinity: "+unendlich", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"], - namesAbbr: ["So","Mo","Di","Mi","Do","Fr","Sa"], - namesShort: ["So","Mo","Di","Mi","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d. MMMM yyyy HH:mm", - F: "dddd, d. MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "el-GR", "default", { - name: "el-GR", - englishName: "Greek (Greece)", - nativeName: "Ελληνικά (Ελλάδα)", - language: "el", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "μη αριθμός", - negativeInfinity: "-Άπειρο", - positiveInfinity: "Άπειρο", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"], - namesAbbr: ["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"], - namesShort: ["Κυ","Δε","Τρ","Τε","Πε","Πα","Σά"] - }, - months: { - names: ["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος",""], - namesAbbr: ["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ",""] - }, - monthsGenitive: { - names: ["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου",""], - namesAbbr: ["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ",""] - }, - AM: ["πμ","πμ","ΠΜ"], - PM: ["μμ","μμ","ΜΜ"], - eras: [{"name":"μ.Χ.","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "dddd, d MMMM yyyy", - f: "dddd, d MMMM yyyy h:mm tt", - F: "dddd, d MMMM yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "en-US", "default", { - name: "en-US", - englishName: "English (United States)" -}); - -Globalize.addCultureInfo( "fi-FI", "default", { - name: "fi-FI", - englishName: "Finnish (Finland)", - nativeName: "suomi (Suomi)", - language: "fi", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"], - namesAbbr: ["su","ma","ti","ke","to","pe","la"], - namesShort: ["su","ma","ti","ke","to","pe","la"] - }, - months: { - names: ["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu",""], - namesAbbr: ["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM'ta 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM'ta 'yyyy H:mm", - F: "d. MMMM'ta 'yyyy H:mm:ss", - M: "d. MMMM'ta'", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fr-FR", "default", { - name: "fr-FR", - englishName: "French (France)", - nativeName: "français (France)", - language: "fr", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "he-IL", "default", { - name: "he-IL", - englishName: "Hebrew (Israel)", - nativeName: "עברית (ישראל)", - language: "he", - isRTL: true, - numberFormat: { - "NaN": "לא מספר", - negativeInfinity: "אינסוף שלילי", - positiveInfinity: "אינסוף חיובי", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "₪" - } - }, - calendars: { - standard: { - days: { - names: ["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","שבת"], - namesAbbr: ["יום א","יום ב","יום ג","יום ד","יום ה","יום ו","שבת"], - namesShort: ["א","ב","ג","ד","ה","ו","ש"] - }, - months: { - names: ["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר",""], - namesAbbr: ["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ",""] - }, - eras: [{"name":"לספירה","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd dd MMMM yyyy HH:mm", - F: "dddd dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - }, - Hebrew: { - name: "Hebrew", - "/": " ", - days: { - names: ["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","שבת"], - namesAbbr: ["א","ב","ג","ד","ה","ו","ש"], - namesShort: ["א","ב","ג","ד","ה","ו","ש"] - }, - months: { - names: ["תשרי","חשון","כסלו","טבת","שבט","אדר","אדר ב","ניסן","אייר","סיון","תמוז","אב","אלול"], - namesAbbr: ["תשרי","חשון","כסלו","טבת","שבט","אדר","אדר ב","ניסן","אייר","סיון","תמוז","אב","אלול"] - }, - eras: [{"name":"C.E.","start":null,"offset":0}], - twoDigitYearMax: 5790, - patterns: { - d: "dd MMMM yyyy", - D: "dddd dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd dd MMMM yyyy HH:mm", - F: "dddd dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "hu-HU", "default", { - name: "hu-HU", - englishName: "Hungarian (Hungary)", - nativeName: "magyar (Magyarország)", - language: "hu", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "nem szám", - negativeInfinity: "negatív végtelen", - positiveInfinity: "végtelen", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "Ft" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"], - namesAbbr: ["V","H","K","Sze","Cs","P","Szo"], - namesShort: ["V","H","K","Sze","Cs","P","Szo"] - }, - months: { - names: ["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december",""], - namesAbbr: ["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec.",""] - }, - AM: ["de.","de.","DE."], - PM: ["du.","du.","DU."], - eras: [{"name":"i.sz.","start":null,"offset":0}], - patterns: { - d: "yyyy.MM.dd.", - D: "yyyy. MMMM d.", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy. MMMM d. H:mm", - F: "yyyy. MMMM d. H:mm:ss", - M: "MMMM d.", - Y: "yyyy. MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "is-IS", "default", { - name: "is-IS", - englishName: "Icelandic (Iceland)", - nativeName: "íslenska (Ísland)", - language: "is", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - decimals: 0, - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sunnudagur","mánudagur","þriðjudagur","miðvikudagur","fimmtudagur","föstudagur","laugardagur"], - namesAbbr: ["sun.","mán.","þri.","mið.","fim.","fös.","lau."], - namesShort: ["su","má","þr","mi","fi","fö","la"] - }, - months: { - names: ["janúar","febrúar","mars","apríl","maí","júní","júlí","ágúst","september","október","nóvember","desember",""], - namesAbbr: ["jan.","feb.","mar.","apr.","maí","jún.","júl.","ágú.","sep.","okt.","nóv.","des.",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "it-IT", "default", { - name: "it-IT", - englishName: "Italian (Italy)", - nativeName: "italiano (Italia)", - language: "it", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "Non un numero reale", - negativeInfinity: "-Infinito", - positiveInfinity: "+Infinito", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"], - namesAbbr: ["dom","lun","mar","mer","gio","ven","sab"], - namesShort: ["do","lu","ma","me","gi","ve","sa"] - }, - months: { - names: ["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre",""], - namesAbbr: ["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ja-JP", "default", { - name: "ja-JP", - englishName: "Japanese (Japan)", - nativeName: "日本語 (日本)", - language: "ja", - numberFormat: { - "NaN": "NaN (非数値)", - negativeInfinity: "-∞", - positiveInfinity: "+∞", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["-$n","$n"], - decimals: 0, - symbol: "¥" - } - }, - calendars: { - standard: { - days: { - names: ["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"], - namesAbbr: ["日","月","火","水","木","金","土"], - namesShort: ["日","月","火","水","木","金","土"] - }, - months: { - names: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["午前","午前","午前"], - PM: ["午後","午後","午後"], - eras: [{"name":"西暦","start":null,"offset":0}], - patterns: { - d: "yyyy/MM/dd", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - }, - Japanese: { - name: "Japanese", - days: { - names: ["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"], - namesAbbr: ["日","月","火","水","木","金","土"], - namesShort: ["日","月","火","水","木","金","土"] - }, - months: { - names: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["午前","午前","午前"], - PM: ["午後","午後","午後"], - eras: [{"name":"平成","start":null,"offset":1867},{"name":"昭和","start":-1812153600000,"offset":1911},{"name":"大正","start":-1357603200000,"offset":1925},{"name":"明治","start":60022080000,"offset":1988}], - twoDigitYearMax: 99, - patterns: { - d: "gg y/M/d", - D: "gg y'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "gg y'年'M'月'd'日' H:mm", - F: "gg y'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "gg y'年'M'月'" - } - } - } -}); - -Globalize.addCultureInfo( "ko-KR", "default", { - name: "ko-KR", - englishName: "Korean (Korea)", - nativeName: "한국어 (대한민국)", - language: "ko", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - decimals: 0, - symbol: "₩" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["일요일","월요일","화요일","수요일","목요일","금요일","토요일"], - namesAbbr: ["일","월","화","수","목","금","토"], - namesShort: ["일","월","화","수","목","금","토"] - }, - months: { - names: ["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["오전","오전","오전"], - PM: ["오후","오후","오후"], - eras: [{"name":"서기","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "yyyy'년' M'월' d'일' dddd", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "yyyy'년' M'월' d'일' dddd tt h:mm", - F: "yyyy'년' M'월' d'일' dddd tt h:mm:ss", - M: "M'월' d'일'", - Y: "yyyy'년' M'월'" - } - }, - Korean: { - name: "Korean", - "/": "-", - days: { - names: ["일요일","월요일","화요일","수요일","목요일","금요일","토요일"], - namesAbbr: ["일","월","화","수","목","금","토"], - namesShort: ["일","월","화","수","목","금","토"] - }, - months: { - names: ["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: ["오전","오전","오전"], - PM: ["오후","오후","오후"], - eras: [{"name":"단기","start":null,"offset":-2333}], - twoDigitYearMax: 4362, - patterns: { - d: "gg yyyy-MM-dd", - D: "gg yyyy'년' M'월' d'일' dddd", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "gg yyyy'년' M'월' d'일' dddd tt h:mm", - F: "gg yyyy'년' M'월' d'일' dddd tt h:mm:ss", - M: "M'월' d'일'", - Y: "gg yyyy'년' M'월'" - } - } - } -}); - -Globalize.addCultureInfo( "nl-NL", "default", { - name: "nl-NL", - englishName: "Dutch (Netherlands)", - nativeName: "Nederlands (Nederland)", - language: "nl", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"], - namesAbbr: ["zo","ma","di","wo","do","vr","za"], - namesShort: ["zo","ma","di","wo","do","vr","za"] - }, - months: { - names: ["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d-M-yyyy", - D: "dddd d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd d MMMM yyyy H:mm", - F: "dddd d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "nb-NO", "default", { - name: "nb-NO", - englishName: "Norwegian, Bokmål (Norway)", - nativeName: "norsk, bokmål (Norge)", - language: "nb", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"], - namesAbbr: ["sø","ma","ti","on","to","fr","lø"], - namesShort: ["sø","ma","ti","on","to","fr","lø"] - }, - months: { - names: ["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "pl-PL", "default", { - name: "pl-PL", - englishName: "Polish (Poland)", - nativeName: "polski (Polska)", - language: "pl", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "nie jest liczbą", - negativeInfinity: "-nieskończoność", - positiveInfinity: "+nieskończoność", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "zł" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"], - namesAbbr: ["N","Pn","Wt","Śr","Cz","Pt","So"], - namesShort: ["N","Pn","Wt","Śr","Cz","Pt","So"] - }, - months: { - names: ["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień",""], - namesAbbr: ["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru",""] - }, - monthsGenitive: { - names: ["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia",""], - namesAbbr: ["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "pt-BR", "default", { - name: "pt-BR", - englishName: "Portuguese (Brazil)", - nativeName: "Português (Brasil)", - language: "pt", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NaN (Não é um número)", - negativeInfinity: "-Infinito", - positiveInfinity: "+Infinito", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": ",", - symbol: "R$" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"], - namesAbbr: ["dom","seg","ter","qua","qui","sex","sáb"], - namesShort: ["D","S","T","Q","Q","S","S"] - }, - months: { - names: ["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro",""], - namesAbbr: ["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d' de 'MMMM' de 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' de 'MMMM' de 'yyyy HH:mm", - F: "dddd, d' de 'MMMM' de 'yyyy HH:mm:ss", - M: "dd' de 'MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "rm-CH", "default", { - name: "rm-CH", - englishName: "Romansh (Switzerland)", - nativeName: "Rumantsch (Svizra)", - language: "rm", - numberFormat: { - ",": "'", - "NaN": "betg def.", - negativeInfinity: "-infinit", - positiveInfinity: "+infinit", - percent: { - pattern: ["-n%","n%"], - ",": "'" - }, - currency: { - pattern: ["$-n","$ n"], - ",": "'", - symbol: "fr." - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dumengia","glindesdi","mardi","mesemna","gievgia","venderdi","sonda"], - namesAbbr: ["du","gli","ma","me","gie","ve","so"], - namesShort: ["du","gli","ma","me","gie","ve","so"] - }, - months: { - names: ["schaner","favrer","mars","avrigl","matg","zercladur","fanadur","avust","settember","october","november","december",""], - namesAbbr: ["schan","favr","mars","avr","matg","zercl","fan","avust","sett","oct","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"s. Cr.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d MMMM yyyy HH:mm", - F: "dddd, d MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ro-RO", "default", { - name: "ro-RO", - englishName: "Romanian (Romania)", - nativeName: "română (România)", - language: "ro", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "lei" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["duminică","luni","marţi","miercuri","joi","vineri","sâmbătă"], - namesAbbr: ["D","L","Ma","Mi","J","V","S"], - namesShort: ["D","L","Ma","Mi","J","V","S"] - }, - months: { - names: ["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie",""], - namesAbbr: ["ian.","feb.","mar.","apr.","mai.","iun.","iul.","aug.","sep.","oct.","nov.","dec.",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ru-RU", "default", { - name: "ru-RU", - englishName: "Russian (Russia)", - nativeName: "русский (Россия)", - language: "ru", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "р." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"], - namesAbbr: ["Вс","Пн","Вт","Ср","Чт","Пт","Сб"], - namesShort: ["Вс","Пн","Вт","Ср","Чт","Пт","Сб"] - }, - months: { - names: ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь",""], - namesAbbr: ["янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек",""] - }, - monthsGenitive: { - names: ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря",""], - namesAbbr: ["янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy 'г.'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy 'г.' H:mm", - F: "d MMMM yyyy 'г.' H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "hr-HR", "default", { - name: "hr-HR", - englishName: "Croatian (Croatia)", - nativeName: "hrvatski (Hrvatska)", - language: "hr", - numberFormat: { - pattern: ["- n"], - ",": ".", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kn" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sri","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["siječanj","veljača","ožujak","travanj","svibanj","lipanj","srpanj","kolovoz","rujan","listopad","studeni","prosinac",""], - namesAbbr: ["sij","vlj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro",""] - }, - monthsGenitive: { - names: ["siječnja","veljače","ožujka","travnja","svibnja","lipnja","srpnja","kolovoza","rujna","listopada","studenog","prosinca",""], - namesAbbr: ["sij","vlj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy.", - D: "d. MMMM yyyy.", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy. H:mm", - F: "d. MMMM yyyy. H:mm:ss", - M: "d. MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "sk-SK", "default", { - name: "sk-SK", - englishName: "Slovak (Slovakia)", - nativeName: "slovenčina (Slovenská republika)", - language: "sk", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Nie je číslo", - negativeInfinity: "-nekonečno", - positiveInfinity: "+nekonečno", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ". ", - firstDay: 1, - days: { - names: ["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"], - namesAbbr: ["ne","po","ut","st","št","pi","so"], - namesShort: ["ne","po","ut","st","št","pi","so"] - }, - months: { - names: ["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - monthsGenitive: { - names: ["januára","februára","marca","apríla","mája","júna","júla","augusta","septembra","októbra","novembra","decembra",""], - namesAbbr: ["1","2","3","4","5","6","7","8","9","10","11","12",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. l.","start":null,"offset":0}], - patterns: { - d: "d. M. yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sq-AL", "default", { - name: "sq-AL", - englishName: "Albanian (Albania)", - nativeName: "shqipe (Shqipëria)", - language: "sq", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-infinit", - positiveInfinity: "infinit", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": ".", - ".": ",", - symbol: "Lek" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["e diel","e hënë","e martë","e mërkurë","e enjte","e premte","e shtunë"], - namesAbbr: ["Die","Hën","Mar","Mër","Enj","Pre","Sht"], - namesShort: ["Di","Hë","Ma","Më","En","Pr","Sh"] - }, - months: { - names: ["janar","shkurt","mars","prill","maj","qershor","korrik","gusht","shtator","tetor","nëntor","dhjetor",""], - namesAbbr: ["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gsh","Sht","Tet","Nën","Dhj",""] - }, - AM: ["PD","pd","PD"], - PM: ["MD","md","MD"], - patterns: { - d: "yyyy-MM-dd", - D: "yyyy-MM-dd", - t: "h:mm.tt", - T: "h:mm:ss.tt", - f: "yyyy-MM-dd h:mm.tt", - F: "yyyy-MM-dd h:mm:ss.tt", - Y: "yyyy-MM" - } - } - } -}); - -Globalize.addCultureInfo( "sv-SE", "default", { - name: "sv-SE", - englishName: "Swedish (Sweden)", - nativeName: "svenska (Sverige)", - language: "sv", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"], - namesAbbr: ["sö","må","ti","on","to","fr","lö"], - namesShort: ["sö","må","ti","on","to","fr","lö"] - }, - months: { - names: ["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "'den 'd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "'den 'd MMMM yyyy HH:mm", - F: "'den 'd MMMM yyyy HH:mm:ss", - M: "'den 'd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "th-TH", "default", { - name: "th-TH", - englishName: "Thai (Thailand)", - nativeName: "ไทย (ไทย)", - language: "th", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "฿" - } - }, - calendars: { - standard: { - name: "ThaiBuddhist", - firstDay: 1, - days: { - names: ["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"], - namesAbbr: ["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."], - namesShort: ["อ","จ","อ","พ","พ","ศ","ส"] - }, - months: { - names: ["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม",""], - namesAbbr: ["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค.",""] - }, - eras: [{"name":"พ.ศ.","start":null,"offset":-543}], - twoDigitYearMax: 2572, - patterns: { - d: "d/M/yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - }, - Gregorian_Localized: { - firstDay: 1, - days: { - names: ["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"], - namesAbbr: ["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."], - namesShort: ["อ","จ","อ","พ","พ","ศ","ส"] - }, - months: { - names: ["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม",""], - namesAbbr: ["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค.",""] - }, - patterns: { - d: "d/M/yyyy", - D: "'วัน'dddd'ที่' d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "'วัน'dddd'ที่' d MMMM yyyy H:mm", - F: "'วัน'dddd'ที่' d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "tr-TR", "default", { - name: "tr-TR", - englishName: "Turkish (Turkey)", - nativeName: "Türkçe (Türkiye)", - language: "tr", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "TL" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"], - namesAbbr: ["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"], - namesShort: ["Pz","Pt","Sa","Ça","Pe","Cu","Ct"] - }, - months: { - names: ["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık",""], - namesAbbr: ["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "dd MMMM yyyy dddd", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy dddd HH:mm", - F: "dd MMMM yyyy dddd HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ur-PK", "default", { - name: "ur-PK", - englishName: "Urdu (Islamic Republic of Pakistan)", - nativeName: "اُردو (پاکستان)", - language: "ur", - isRTL: true, - numberFormat: { - currency: { - pattern: ["$n-","$n"], - symbol: "Rs" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["اتوار","پير","منگل","بدھ","جمعرات","جمعه","هفته"], - namesAbbr: ["اتوار","پير","منگل","بدھ","جمعرات","جمعه","هفته"], - namesShort: ["ا","پ","م","ب","ج","ج","ه"] - }, - months: { - names: ["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر",""], - namesAbbr: ["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر",""] - }, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - f: "dd MMMM, yyyy h:mm tt", - F: "dd MMMM, yyyy h:mm:ss tt", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - f: "dd/MM/yyyy h:mm tt", - F: "dd/MM/yyyy h:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - } - } -}); - -Globalize.addCultureInfo( "id-ID", "default", { - name: "id-ID", - englishName: "Indonesian (Indonesia)", - nativeName: "Bahasa Indonesia (Indonesia)", - language: "id", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - decimals: 0, - ",": ".", - ".": ",", - symbol: "Rp" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"], - namesAbbr: ["Minggu","Sen","Sel","Rabu","Kamis","Jumat","Sabtu"], - namesShort: ["M","S","S","R","K","J","S"] - }, - months: { - names: ["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember",""], - namesAbbr: ["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agust","Sep","Okt","Nop","Des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM yyyy H:mm", - F: "dd MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "uk-UA", "default", { - name: "uk-UA", - englishName: "Ukrainian (Ukraine)", - nativeName: "українська (Україна)", - language: "uk", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-безмежність", - positiveInfinity: "безмежність", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "₴" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["неділя","понеділок","вівторок","середа","четвер","п'ятниця","субота"], - namesAbbr: ["Нд","Пн","Вт","Ср","Чт","Пт","Сб"], - namesShort: ["Нд","Пн","Вт","Ср","Чт","Пт","Сб"] - }, - months: { - names: ["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень",""], - namesAbbr: ["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру",""] - }, - monthsGenitive: { - names: ["січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня",""], - namesAbbr: ["січ","лют","бер","кві","тра","чер","лип","сер","вер","жов","лис","гру",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy' р.'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy' р.' H:mm", - F: "d MMMM yyyy' р.' H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy' р.'" - } - } - } -}); - -Globalize.addCultureInfo( "be-BY", "default", { - name: "be-BY", - englishName: "Belarusian (Belarus)", - nativeName: "Беларускі (Беларусь)", - language: "be", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "р." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["нядзеля","панядзелак","аўторак","серада","чацвер","пятніца","субота"], - namesAbbr: ["нд","пн","аў","ср","чц","пт","сб"], - namesShort: ["нд","пн","аў","ср","чц","пт","сб"] - }, - months: { - names: ["Студзень","Люты","Сакавік","Красавік","Май","Чэрвень","Ліпень","Жнівень","Верасень","Кастрычнік","Лістапад","Снежань",""], - namesAbbr: ["Сту","Лют","Сак","Кра","Май","Чэр","Ліп","Жні","Вер","Кас","Ліс","Сне",""] - }, - monthsGenitive: { - names: ["студзеня","лютага","сакавіка","красавіка","мая","чэрвеня","ліпеня","жніўня","верасня","кастрычніка","лістапада","снежня",""], - namesAbbr: ["Сту","Лют","Сак","Кра","Май","Чэр","Ліп","Жні","Вер","Кас","Ліс","Сне",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sl-SI", "default", { - name: "sl-SI", - englishName: "Slovenian (Slovenia)", - nativeName: "slovenski (Slovenija)", - language: "sl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-neskončnost", - positiveInfinity: "neskončnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"], - namesAbbr: ["ned","pon","tor","sre","čet","pet","sob"], - namesShort: ["ne","po","to","sr","če","pe","so"] - }, - months: { - names: ["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "et-EE", "default", { - name: "et-EE", - englishName: "Estonian (Estonia)", - nativeName: "eesti (Eesti)", - language: "et", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "avaldamatu", - negativeInfinity: "miinuslõpmatus", - positiveInfinity: "plusslõpmatus", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["pühapäev","esmaspäev","teisipäev","kolmapäev","neljapäev","reede","laupäev"], - namesAbbr: ["P","E","T","K","N","R","L"], - namesShort: ["P","E","T","K","N","R","L"] - }, - months: { - names: ["jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember",""], - namesAbbr: ["jaan","veebr","märts","apr","mai","juuni","juuli","aug","sept","okt","nov","dets",""] - }, - AM: ["EL","el","EL"], - PM: ["PL","pl","PL"], - patterns: { - d: "d.MM.yyyy", - D: "d. MMMM yyyy'. a.'", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy'. a.' H:mm", - F: "d. MMMM yyyy'. a.' H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy'. a.'" - } - } - } -}); - -Globalize.addCultureInfo( "lv-LV", "default", { - name: "lv-LV", - englishName: "Latvian (Latvia)", - nativeName: "latviešu (Latvija)", - language: "lv", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-bezgalība", - positiveInfinity: "bezgalība", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": " ", - ".": ",", - symbol: "Ls" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["svētdiena","pirmdiena","otrdiena","trešdiena","ceturtdiena","piektdiena","sestdiena"], - namesAbbr: ["sv","pr","ot","tr","ce","pk","se"], - namesShort: ["sv","pr","ot","tr","ce","pk","se"] - }, - months: { - names: ["janvāris","februāris","marts","aprīlis","maijs","jūnijs","jūlijs","augusts","septembris","oktobris","novembris","decembris",""], - namesAbbr: ["jan","feb","mar","apr","mai","jūn","jūl","aug","sep","okt","nov","dec",""] - }, - monthsGenitive: { - names: ["janvārī","februārī","martā","aprīlī","maijā","jūnijā","jūlijā","augustā","septembrī","oktobrī","novembrī","decembrī",""], - namesAbbr: ["jan","feb","mar","apr","mai","jūn","jūl","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy.MM.dd.", - D: "dddd, yyyy'. gada 'd. MMMM", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, yyyy'. gada 'd. MMMM H:mm", - F: "dddd, yyyy'. gada 'd. MMMM H:mm:ss", - M: "d. MMMM", - Y: "yyyy. MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "lt-LT", "default", { - name: "lt-LT", - englishName: "Lithuanian (Lithuania)", - nativeName: "lietuvių (Lietuva)", - language: "lt", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-begalybė", - positiveInfinity: "begalybė", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Lt" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sekmadienis","pirmadienis","antradienis","trečiadienis","ketvirtadienis","penktadienis","šeštadienis"], - namesAbbr: ["Sk","Pr","An","Tr","Kt","Pn","Št"], - namesShort: ["S","P","A","T","K","Pn","Š"] - }, - months: { - names: ["sausis","vasaris","kovas","balandis","gegužė","birželis","liepa","rugpjūtis","rugsėjis","spalis","lapkritis","gruodis",""], - namesAbbr: ["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rgp","Rgs","Spl","Lap","Grd",""] - }, - monthsGenitive: { - names: ["sausio","vasario","kovo","balandžio","gegužės","birželio","liepos","rugpjūčio","rugsėjo","spalio","lapkričio","gruodžio",""], - namesAbbr: ["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rgp","Rgs","Spl","Lap","Grd",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy.MM.dd", - D: "yyyy 'm.' MMMM d 'd.'", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'm.' MMMM d 'd.' HH:mm", - F: "yyyy 'm.' MMMM d 'd.' HH:mm:ss", - M: "MMMM d 'd.'", - Y: "yyyy 'm.' MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "tg-Cyrl-TJ", "default", { - name: "tg-Cyrl-TJ", - englishName: "Tajik (Cyrillic, Tajikistan)", - nativeName: "Тоҷикӣ (Тоҷикистон)", - language: "tg-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - groupSizes: [3,0], - ",": " ", - ".": ";", - symbol: "т.р." - } - }, - calendars: { - standard: { - "/": ".", - days: { - names: ["Яш","Душанбе","Сешанбе","Чоршанбе","Панҷшанбе","Ҷумъа","Шанбе"], - namesAbbr: ["Яш","Дш","Сш","Чш","Пш","Ҷм","Шн"], - namesShort: ["Яш","Дш","Сш","Чш","Пш","Ҷм","Шн"] - }, - months: { - names: ["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["январи","феврали","марти","апрели","маи","июни","июли","августи","сентябри","октябри","ноябри","декабри",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fa-IR", "default", { - name: "fa-IR", - englishName: "Persian", - nativeName: "فارسى (ایران)", - language: "fa", - isRTL: true, - numberFormat: { - pattern: ["n-"], - currency: { - pattern: ["$n-","$ n"], - ".": "/", - symbol: "ريال" - } - }, - calendars: { - standard: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_Localized: { - firstDay: 6, - days: { - names: ["يكشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesAbbr: ["يكشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesShort: ["ی","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["ژانويه","فوريه","مارس","آوريل","مى","ژوئن","ژوئيه","اوت","سپتامبر","اُكتبر","نوامبر","دسامبر",""], - namesAbbr: ["ژانويه","فوريه","مارس","آوريل","مى","ژوئن","ژوئيه","اوت","سپتامبر","اُكتبر","نوامبر","دسامبر",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - patterns: { - d: "yyyy/MM/dd", - D: "yyyy/MM/dd", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "yyyy/MM/dd hh:mm tt", - F: "yyyy/MM/dd hh:mm:ss tt", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ق.ظ","ق.ظ","ق.ظ"], - PM: ["ب.ظ","ب.ظ","ب.ظ"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "vi-VN", "default", { - name: "vi-VN", - englishName: "Vietnamese (Vietnam)", - nativeName: "Tiếng Việt (Việt Nam)", - language: "vi", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "₫" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"], - namesAbbr: ["CN","Hai","Ba","Tư","Năm","Sáu","Bảy"], - namesShort: ["C","H","B","T","N","S","B"] - }, - months: { - names: ["Tháng Giêng","Tháng Hai","Tháng Ba","Tháng Tư","Tháng Năm","Tháng Sáu","Tháng Bảy","Tháng Tám","Tháng Chín","Tháng Mười","Tháng Mười Một","Tháng Mười Hai",""], - namesAbbr: ["Thg1","Thg2","Thg3","Thg4","Thg5","Thg6","Thg7","Thg8","Thg9","Thg10","Thg11","Thg12",""] - }, - AM: ["SA","sa","SA"], - PM: ["CH","ch","CH"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - f: "dd MMMM yyyy h:mm tt", - F: "dd MMMM yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "hy-AM", "default", { - name: "hy-AM", - englishName: "Armenian (Armenia)", - nativeName: "Հայերեն (Հայաստան)", - language: "hy", - numberFormat: { - currency: { - pattern: ["-n $","n $"], - symbol: "դր." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","ՈՒրբաթ","Շաբաթ"], - namesAbbr: ["Կիր","Երկ","Երք","Չրք","Հնգ","ՈՒր","Շբթ"], - namesShort: ["Կ","Ե","Ե","Չ","Հ","Ո","Շ"] - }, - months: { - names: ["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր",""], - namesAbbr: ["ՀՆՎ","ՓՏՎ","ՄՐՏ","ԱՊՐ","ՄՅՍ","ՀՆՍ","ՀԼՍ","ՕԳՍ","ՍԵՊ","ՀՈԿ","ՆՈՅ","ԴԵԿ",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM, yyyy H:mm", - F: "d MMMM, yyyy H:mm:ss", - M: "d MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "az-Latn-AZ", "default", { - name: "az-Latn-AZ", - englishName: "Azeri (Latin, Azerbaijan)", - nativeName: "Azərbaycan\xadılı (Azərbaycan)", - language: "az-Latn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "man." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"], - namesAbbr: ["B","Be","Ça","Ç","Ca","C","Ş"], - namesShort: ["B","Be","Ça","Ç","Ca","C","Ş"] - }, - months: { - names: ["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avgust","Sentyabr","Oktyabr","Noyabr","Dekabr",""], - namesAbbr: ["Yan","Fev","Mar","Apr","May","İyun","İyul","Avg","Sen","Okt","Noy","Dek",""] - }, - monthsGenitive: { - names: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""], - namesAbbr: ["Yan","Fev","Mar","Apr","May","İyun","İyul","Avg","Sen","Okt","Noy","Dek",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "eu-ES", "default", { - name: "eu-ES", - englishName: "Basque (Basque)", - nativeName: "euskara (euskara)", - language: "eu", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "EdZ", - negativeInfinity: "-Infinitu", - positiveInfinity: "Infinitu", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"], - namesAbbr: ["ig.","al.","as.","az.","og.","or.","lr."], - namesShort: ["ig","al","as","az","og","or","lr"] - }, - months: { - names: ["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua",""], - namesAbbr: ["urt.","ots.","mar.","api.","mai.","eka.","uzt.","abu.","ira.","urr.","aza.","abe.",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "yyyy/MM/dd", - D: "dddd, yyyy.'eko' MMMM'k 'd", - t: "HH:mm", - T: "H:mm:ss", - f: "dddd, yyyy.'eko' MMMM'k 'd HH:mm", - F: "dddd, yyyy.'eko' MMMM'k 'd H:mm:ss", - Y: "yyyy.'eko' MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "hsb-DE", "default", { - name: "hsb-DE", - englishName: "Upper Sorbian (Germany)", - nativeName: "hornjoserbšćina (Němska)", - language: "hsb", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "njedefinowane", - negativeInfinity: "-njekónčne", - positiveInfinity: "+njekónčne", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ". ", - firstDay: 1, - days: { - names: ["njedźela","póndźela","wutora","srjeda","štwórtk","pjatk","sobota"], - namesAbbr: ["nje","pón","wut","srj","štw","pja","sob"], - namesShort: ["n","p","w","s","š","p","s"] - }, - months: { - names: ["januar","februar","měrc","apryl","meja","junij","julij","awgust","september","oktober","nowember","december",""], - namesAbbr: ["jan","feb","měr","apr","mej","jun","jul","awg","sep","okt","now","dec",""] - }, - monthsGenitive: { - names: ["januara","februara","měrca","apryla","meje","junija","julija","awgusta","septembra","oktobra","nowembra","decembra",""], - namesAbbr: ["jan","feb","měr","apr","mej","jun","jul","awg","sep","okt","now","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"po Chr.","start":null,"offset":0}], - patterns: { - d: "d. M. yyyy", - D: "dddd, 'dnja' d. MMMM yyyy", - t: "H.mm 'hodź.'", - T: "H:mm:ss", - f: "dddd, 'dnja' d. MMMM yyyy H.mm 'hodź.'", - F: "dddd, 'dnja' d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "mk-MK", "default", { - name: "mk-MK", - englishName: "Macedonian (Former Yugoslav Republic of Macedonia)", - nativeName: "македонски јазик (Македонија)", - language: "mk", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "ден." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недела","понеделник","вторник","среда","четврток","петок","сабота"], - namesAbbr: ["нед","пон","втр","срд","чет","пет","саб"], - namesShort: ["не","по","вт","ср","че","пе","са"] - }, - months: { - names: ["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември",""], - namesAbbr: ["јан","фев","мар","апр","мај","јун","јул","авг","сеп","окт","ное","дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "dddd, dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, dd MMMM yyyy HH:mm", - F: "dddd, dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "tn-ZA", "default", { - name: "tn-ZA", - englishName: "Setswana (South Africa)", - nativeName: "Setswana (Aforika Borwa)", - language: "tn", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["Latshipi","Mosupologo","Labobedi","Laboraro","Labone","Labotlhano","Lamatlhatso"], - namesAbbr: ["Ltp.","Mos.","Lbd.","Lbr.","Lbn.","Lbt.","Lmt."], - namesShort: ["Lp","Ms","Lb","Lr","Ln","Lt","Lm"] - }, - months: { - names: ["Ferikgong","Tlhakole","Mopitloe","Moranang","Motsheganong","Seetebosigo","Phukwi","Phatwe","Lwetse","Diphalane","Ngwanatsele","Sedimothole",""], - namesAbbr: ["Fer.","Tlhak.","Mop.","Mor.","Motsh.","Seet.","Phukw.","Phatw.","Lwets.","Diph.","Ngwan.","Sed.",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "xh-ZA", "default", { - name: "xh-ZA", - englishName: "isiXhosa (South Africa)", - nativeName: "isiXhosa (uMzantsi Afrika)", - language: "xh", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["iCawa","uMvulo","uLwesibini","uLwesithathu","uLwesine","uLwesihlanu","uMgqibelo"], - namesShort: ["Ca","Mv","Lb","Lt","Ln","Lh","Mg"] - }, - months: { - names: ["Mqungu","Mdumba","Kwindla","Tshazimpuzi","Canzibe","Silimela","Khala","Thupha","Msintsi","Dwarha","Nkanga","Mnga",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "zu-ZA", "default", { - name: "zu-ZA", - englishName: "isiZulu (South Africa)", - nativeName: "isiZulu (iNingizimu Afrika)", - language: "zu", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["iSonto","uMsombuluko","uLwesibili","uLwesithathu","uLwesine","uLwesihlanu","uMgqibelo"], - namesAbbr: ["Son.","Mso.","Bi.","Tha.","Ne.","Hla.","Mgq."] - }, - months: { - names: ["uMasingana","uNhlolanja","uNdasa","uMbaso","uNhlaba","uNhlangulana","uNtulikazi","uNcwaba","uMandulo","uMfumfu","uLwezi","uZibandlela",""], - namesAbbr: ["Mas.","Nhlo.","Nda.","Mba.","Nhla.","Nhlang.","Ntu.","Ncwa.","Man.","Mfu.","Lwe.","Zib.",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "af-ZA", "default", { - name: "af-ZA", - englishName: "Afrikaans (South Africa)", - nativeName: "Afrikaans (Suid Afrika)", - language: "af", - numberFormat: { - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["Sondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrydag","Saterdag"], - namesAbbr: ["Son","Maan","Dins","Woen","Dond","Vry","Sat"], - namesShort: ["So","Ma","Di","Wo","Do","Vr","Sa"] - }, - months: { - names: ["Januarie","Februarie","Maart","April","Mei","Junie","Julie","Augustus","September","Oktober","November","Desember",""], - namesAbbr: ["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ka-GE", "default", { - name: "ka-GE", - englishName: "Georgian (Georgia)", - nativeName: "ქართული (საქართველო)", - language: "ka", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "Lari" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"], - namesAbbr: ["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"], - namesShort: ["კ","ო","ს","ო","ხ","პ","შ"] - }, - months: { - names: ["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი",""], - namesAbbr: ["იან","თებ","მარ","აპრ","მაის","ივნ","ივლ","აგვ","სექ","ოქტ","ნოემ","დეკ",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "yyyy 'წლის' dd MM, dddd", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'წლის' dd MM, dddd H:mm", - F: "yyyy 'წლის' dd MM, dddd H:mm:ss", - M: "dd MM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fo-FO", "default", { - name: "fo-FO", - englishName: "Faroese (Faroe Islands)", - nativeName: "føroyskt (Føroyar)", - language: "fo", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["sunnudagur","mánadagur","týsdagur","mikudagur","hósdagur","fríggjadagur","leygardagur"], - namesAbbr: ["sun","mán","týs","mik","hós","frí","leyg"], - namesShort: ["su","má","tý","mi","hó","fr","ley"] - }, - months: { - names: ["januar","februar","mars","apríl","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "hi-IN", "default", { - name: "hi-IN", - englishName: "Hindi (India)", - nativeName: "हिंदी (भारत)", - language: "hi", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"], - namesAbbr: ["रवि.","सोम.","मंगल.","बुध.","गुरु.","शुक्र.","शनि."], - namesShort: ["र","स","म","ब","ग","श","श"] - }, - months: { - names: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""], - namesAbbr: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""] - }, - AM: ["पूर्वाह्न","पूर्वाह्न","पूर्वाह्न"], - PM: ["अपराह्न","अपराह्न","अपराह्न"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "mt-MT", "default", { - name: "mt-MT", - englishName: "Maltese (Malta)", - nativeName: "Malti (Malta)", - language: "mt", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Il-Ħadd","It-Tnejn","It-Tlieta","L-Erbgħa","Il-Ħamis","Il-Ġimgħa","Is-Sibt"], - namesAbbr: ["Ħad","Tne","Tli","Erb","Ħam","Ġim","Sib"], - namesShort: ["I","I","I","L","I","I","I"] - }, - months: { - names: ["Jannar","Frar","Marzu","April","Mejju","Ġunju","Lulju","Awissu","Settembru","Ottubru","Novembru","Diċembru",""], - namesAbbr: ["Jan","Fra","Mar","Apr","Mej","Ġun","Lul","Awi","Set","Ott","Nov","Diċ",""] - }, - patterns: { - d: "dd/MM/yyyy", - D: "dddd, d' ta\\' 'MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' ta\\' 'MMMM yyyy HH:mm", - F: "dddd, d' ta\\' 'MMMM yyyy HH:mm:ss", - M: "d' ta\\' 'MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "se-NO", "default", { - name: "se-NO", - englishName: "Sami, Northern (Norway)", - nativeName: "davvisámegiella (Norga)", - language: "se", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sotnabeaivi","vuossárga","maŋŋebárga","gaskavahkku","duorastat","bearjadat","lávvardat"], - namesAbbr: ["sotn","vuos","maŋ","gask","duor","bear","láv"], - namesShort: ["s","m","d","g","d","b","l"] - }, - months: { - names: ["ođđajagemánnu","guovvamánnu","njukčamánnu","cuoŋománnu","miessemánnu","geassemánnu","suoidnemánnu","borgemánnu","čakčamánnu","golggotmánnu","skábmamánnu","juovlamánnu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - monthsGenitive: { - names: ["ođđajagimánu","guovvamánu","njukčamánu","cuoŋománu","miessemánu","geassemánu","suoidnemánu","borgemánu","čakčamánu","golggotmánu","skábmamánu","juovlamánu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ms-MY", "default", { - name: "ms-MY", - englishName: "Malay (Malaysia)", - nativeName: "Bahasa Melayu (Malaysia)", - language: "ms", - numberFormat: { - currency: { - decimals: 0, - symbol: "RM" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"], - namesAbbr: ["Ahad","Isnin","Sel","Rabu","Khamis","Jumaat","Sabtu"], - namesShort: ["A","I","S","R","K","J","S"] - }, - months: { - names: ["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember",""], - namesAbbr: ["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogos","Sept","Okt","Nov","Dis",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM yyyy H:mm", - F: "dd MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "kk-KZ", "default", { - name: "kk-KZ", - englishName: "Kazakh (Kazakhstan)", - nativeName: "Қазақ (Қазақстан)", - language: "kk", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-$n","$n"], - ",": " ", - ".": "-", - symbol: "Т" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Жексенбі","Дүйсенбі","Сейсенбі","Сәрсенбі","Бейсенбі","Жұма","Сенбі"], - namesAbbr: ["Жк","Дс","Сс","Ср","Бс","Жм","Сн"], - namesShort: ["Жк","Дс","Сс","Ср","Бс","Жм","Сн"] - }, - months: { - names: ["қаңтар","ақпан","наурыз","сәуір","мамыр","маусым","шілде","тамыз","қыркүйек","қазан","қараша","желтоқсан",""], - namesAbbr: ["Қаң","Ақп","Нау","Сәу","Мам","Мау","Шіл","Там","Қыр","Қаз","Қар","Жел",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy 'ж.'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy 'ж.' H:mm", - F: "d MMMM yyyy 'ж.' H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ky-KG", "default", { - name: "ky-KG", - englishName: "Kyrgyz (Kyrgyzstan)", - nativeName: "Кыргыз (Кыргызстан)", - language: "ky", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": "-", - symbol: "сом" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Жекшемби","Дүйшөмбү","Шейшемби","Шаршемби","Бейшемби","Жума","Ишемби"], - namesAbbr: ["Жш","Дш","Шш","Шр","Бш","Жм","Иш"], - namesShort: ["Жш","Дш","Шш","Шр","Бш","Жм","Иш"] - }, - months: { - names: ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d'-'MMMM yyyy'-ж.'", - t: "H:mm", - T: "H:mm:ss", - f: "d'-'MMMM yyyy'-ж.' H:mm", - F: "d'-'MMMM yyyy'-ж.' H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy'-ж.'" - } - } - } -}); - -Globalize.addCultureInfo( "sw-KE", "default", { - name: "sw-KE", - englishName: "Kiswahili (Kenya)", - nativeName: "Kiswahili (Kenya)", - language: "sw", - numberFormat: { - currency: { - symbol: "S" - } - }, - calendars: { - standard: { - days: { - names: ["Jumapili","Jumatatu","Jumanne","Jumatano","Alhamisi","Ijumaa","Jumamosi"], - namesAbbr: ["Jumap.","Jumat.","Juman.","Jumat.","Alh.","Iju.","Jumam."], - namesShort: ["P","T","N","T","A","I","M"] - }, - months: { - names: ["Januari","Februari","Machi","Aprili","Mei","Juni","Julai","Agosti","Septemba","Oktoba","Novemba","Decemba",""], - namesAbbr: ["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ago","Sep","Okt","Nov","Dec",""] - } - } - } -}); - -Globalize.addCultureInfo( "tk-TM", "default", { - name: "tk-TM", - englishName: "Turkmen (Turkmenistan)", - nativeName: "türkmençe (Türkmenistan)", - language: "tk", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-üznüksizlik", - positiveInfinity: "üznüksizlik", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "m." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Duşenbe","Sişenbe","Çarşenbe","Penşenbe","Anna","Şenbe","Ýekşenbe"], - namesAbbr: ["Db","Sb","Çb","Pb","An","Şb","Ýb"], - namesShort: ["D","S","Ç","P","A","Ş","Ý"] - }, - months: { - names: ["Ýanwar","Fewral","Mart","Aprel","Maý","lýun","lýul","Awgust","Sentýabr","Oktýabr","Noýabr","Dekabr",""], - namesAbbr: ["Ýan","Few","Mart","Apr","Maý","lýun","lýul","Awg","Sen","Okt","Not","Dek",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "yyyy 'ý.' MMMM d", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'ý.' MMMM d H:mm", - F: "yyyy 'ý.' MMMM d H:mm:ss", - Y: "yyyy 'ý.' MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "uz-Latn-UZ", "default", { - name: "uz-Latn-UZ", - englishName: "Uzbek (Latin, Uzbekistan)", - nativeName: "U'zbek (U'zbekiston Respublikasi)", - language: "uz-Latn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - decimals: 0, - ",": " ", - ".": ",", - symbol: "so'm" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["yakshanba","dushanba","seshanba","chorshanba","payshanba","juma","shanba"], - namesAbbr: ["yak.","dsh.","sesh.","chr.","psh.","jm.","sh."], - namesShort: ["ya","d","s","ch","p","j","sh"] - }, - months: { - names: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""], - namesAbbr: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM yyyy", - D: "yyyy 'yil' d-MMMM", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'yil' d-MMMM HH:mm", - F: "yyyy 'yil' d-MMMM HH:mm:ss", - M: "d-MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "tt-RU", "default", { - name: "tt-RU", - englishName: "Tatar (Russia)", - nativeName: "Татар (Россия)", - language: "tt", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "р." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Якшәмбе","Дүшәмбе","Сишәмбе","Чәршәмбе","Пәнҗешәмбе","Җомга","Шимбә"], - namesAbbr: ["Якш","Дүш","Сиш","Чәрш","Пәнҗ","Җом","Шим"], - namesShort: ["Я","Д","С","Ч","П","Җ","Ш"] - }, - months: { - names: ["Гыйнвар","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь",""], - namesAbbr: ["Гыйн.","Фев.","Мар.","Апр.","Май","Июнь","Июль","Авг.","Сен.","Окт.","Нояб.","Дек.",""] - }, - monthsGenitive: { - names: ["Гыйнварның","Февральнең","Мартның","Апрельнең","Майның","Июньнең","Июльнең","Августның","Сентябрьның","Октябрьның","Ноябрьның","Декабрьның",""], - namesAbbr: ["Гыйн.-ның","Фев.-нең","Мар.-ның","Апр.-нең","Майның","Июньнең","Июльнең","Авг.-ның","Сен.-ның","Окт.-ның","Нояб.-ның","Дек.-ның",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "bn-IN", "default", { - name: "bn-IN", - englishName: "Bengali (India)", - nativeName: "বাংলা (ভারত)", - language: "bn", - numberFormat: { - groupSizes: [3,2], - percent: { - pattern: ["-%n","%n"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "টা" - } - }, - calendars: { - standard: { - "/": "-", - ":": ".", - firstDay: 1, - days: { - names: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"], - namesAbbr: ["রবি.","সোম.","মঙ্গল.","বুধ.","বৃহস্পতি.","শুক্র.","শনি."], - namesShort: ["র","স","ম","ব","ব","শ","শ"] - }, - months: { - names: ["জানুয়ারী","ফেব্রুয়ারী","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর",""], - namesAbbr: ["জানু.","ফেব্রু.","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগ.","সেপ্টে.","অক্টো.","নভে.","ডিসে.",""] - }, - AM: ["পুর্বাহ্ন","পুর্বাহ্ন","পুর্বাহ্ন"], - PM: ["অপরাহ্ন","অপরাহ্ন","অপরাহ্ন"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH.mm", - T: "HH.mm.ss", - f: "dd MMMM yyyy HH.mm", - F: "dd MMMM yyyy HH.mm.ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "pa-IN", "default", { - name: "pa-IN", - englishName: "Punjabi (India)", - nativeName: "ਪੰਜਾਬੀ (ਭਾਰਤ)", - language: "pa", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ਰੁ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ਐਤਵਾਰ","ਸੋਮਵਾਰ","ਮੰਗਲਵਾਰ","ਬੁੱਧਵਾਰ","ਵੀਰਵਾਰ","ਸ਼ੁੱਕਰਵਾਰ","ਸ਼ਨਿੱਚਰਵਾਰ"], - namesAbbr: ["ਐਤ.","ਸੋਮ.","ਮੰਗਲ.","ਬੁੱਧ.","ਵੀਰ.","ਸ਼ੁਕਰ.","ਸ਼ਨਿੱਚਰ."], - namesShort: ["ਐ","ਸ","ਮ","ਬ","ਵ","ਸ਼","ਸ਼"] - }, - months: { - names: ["ਜਨਵਰੀ","ਫ਼ਰਵਰੀ","ਮਾਰਚ","ਅਪ੍ਰੈਲ","ਮਈ","ਜੂਨ","ਜੁਲਾਈ","ਅਗਸਤ","ਸਤੰਬਰ","ਅਕਤੂਬਰ","ਨਵੰਬਰ","ਦਸੰਬਰ",""], - namesAbbr: ["ਜਨਵਰੀ","ਫ਼ਰਵਰੀ","ਮਾਰਚ","ਅਪ੍ਰੈਲ","ਮਈ","ਜੂਨ","ਜੁਲਾਈ","ਅਗਸਤ","ਸਤੰਬਰ","ਅਕਤੂਬਰ","ਨਵੰਬਰ","ਦਸੰਬਰ",""] - }, - AM: ["ਸਵੇਰ","ਸਵੇਰ","ਸਵੇਰ"], - PM: ["ਸ਼ਾਮ","ਸ਼ਾਮ","ਸ਼ਾਮ"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy dddd", - t: "tt hh:mm", - T: "tt hh:mm:ss", - f: "dd MMMM yyyy dddd tt hh:mm", - F: "dd MMMM yyyy dddd tt hh:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "gu-IN", "default", { - name: "gu-IN", - englishName: "Gujarati (India)", - nativeName: "ગુજરાતી (ભારત)", - language: "gu", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "રૂ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["રવિવાર","સોમવાર","મંગળવાર","બુધવાર","ગુરુવાર","શુક્રવાર","શનિવાર"], - namesAbbr: ["રવિ","સોમ","મંગળ","બુધ","ગુરુ","શુક્ર","શનિ"], - namesShort: ["ર","સ","મ","બ","ગ","શ","શ"] - }, - months: { - names: ["જાન્યુઆરી","ફેબ્રુઆરી","માર્ચ","એપ્રિલ","મે","જૂન","જુલાઈ","ઑગસ્ટ","સપ્ટેમ્બર","ઑક્ટ્બર","નવેમ્બર","ડિસેમ્બર",""], - namesAbbr: ["જાન્યુ","ફેબ્રુ","માર્ચ","એપ્રિલ","મે","જૂન","જુલાઈ","ઑગસ્ટ","સપ્ટે","ઑક્ટો","નવે","ડિસે",""] - }, - AM: ["પૂર્વ મધ્યાહ્ન","પૂર્વ મધ્યાહ્ન","પૂર્વ મધ્યાહ્ન"], - PM: ["ઉત્તર મધ્યાહ્ન","ઉત્તર મધ્યાહ્ન","ઉત્તર મધ્યાહ્ન"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "or-IN", "default", { - name: "or-IN", - englishName: "Oriya (India)", - nativeName: "ଓଡ଼ିଆ (ଭାରତ)", - language: "or", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ଟ" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["ରବିବାର","ସୋମବାର","ମଙ୍ଗଳବାର","ବୁଧବାର","ଗୁରୁବାର","ଶୁକ୍ରବାର","ଶନିବାର"], - namesAbbr: ["ରବି.","ସୋମ.","ମଙ୍ଗଳ.","ବୁଧ.","ଗୁରୁ.","ଶୁକ୍ର.","ଶନି."], - namesShort: ["ର","ସୋ","ମ","ବୁ","ଗୁ","ଶୁ","ଶ"] - }, - months: { - names: ["ଜାନୁୟାରୀ","ଫ୍ରେବୃୟାରୀ","ମାର୍ଚ୍ଚ","ଏପ୍ରିଲ୍\u200c","ମେ","ଜୁନ୍\u200c","ଜୁଲାଇ","ଅଗଷ୍ଟ","ସେପ୍ଟେମ୍ବର","ଅକ୍ଟୋବର","ନଭେମ୍ବର","(ଡିସେମ୍ବର",""], - namesAbbr: ["ଜାନୁୟାରୀ","ଫ୍ରେବୃୟାରୀ","ମାର୍ଚ୍ଚ","ଏପ୍ରିଲ୍\u200c","ମେ","ଜୁନ୍\u200c","ଜୁଲାଇ","ଅଗଷ୍ଟ","ସେପ୍ଟେମ୍ବର","ଅକ୍ଟୋବର","ନଭେମ୍ବର","(ଡିସେମ୍ବର",""] - }, - eras: [{"name":"ଖ୍ରୀଷ୍ଟାବ୍ଦ","start":null,"offset":0}], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "ta-IN", "default", { - name: "ta-IN", - englishName: "Tamil (India)", - nativeName: "தமிழ் (இந்தியா)", - language: "ta", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ரூ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ஞாயிற்றுக்கிழமை","திங்கள்கிழமை","செவ்வாய்கிழமை","புதன்கிழமை","வியாழக்கிழமை","வெள்ளிக்கிழமை","சனிக்கிழமை"], - namesAbbr: ["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"], - namesShort: ["ஞா","தி","செ","பு","வி","வெ","ச"] - }, - months: { - names: ["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்ட்","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்",""], - namesAbbr: ["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்ட்","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்",""] - }, - AM: ["காலை","காலை","காலை"], - PM: ["மாலை","மாலை","மாலை"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "te-IN", "default", { - name: "te-IN", - englishName: "Telugu (India)", - nativeName: "తెలుగు (భారత దేశం)", - language: "te", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "రూ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ఆదివారం","సోమవారం","మంగళవారం","బుధవారం","గురువారం","శుక్రవారం","శనివారం"], - namesAbbr: ["ఆది.","సోమ.","మంగళ.","బుధ.","గురు.","శుక్ర.","శని."], - namesShort: ["ఆ","సో","మం","బు","గు","శు","శ"] - }, - months: { - names: ["జనవరి","ఫిబ్రవరి","మార్చి","ఏప్రిల్","మే","జూన్","జూలై","ఆగస్టు","సెప్టెంబర్","అక్టోబర్","నవంబర్","డిసెంబర్",""], - namesAbbr: ["జనవరి","ఫిబ్రవరి","మార్చి","ఏప్రిల్","మే","జూన్","జూలై","ఆగస్టు","సెప్టెంబర్","అక్టోబర్","నవంబర్","డిసెంబర్",""] - }, - AM: ["పూర్వాహ్న","పూర్వాహ్న","పూర్వాహ్న"], - PM: ["అపరాహ్న","అపరాహ్న","అపరాహ్న"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "kn-IN", "default", { - name: "kn-IN", - englishName: "Kannada (India)", - nativeName: "ಕನ್ನಡ (ಭಾರತ)", - language: "kn", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ರೂ" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ಭಾನುವಾರ","ಸೋಮವಾರ","ಮಂಗಳವಾರ","ಬುಧವಾರ","ಗುರುವಾರ","ಶುಕ್ರವಾರ","ಶನಿವಾರ"], - namesAbbr: ["ಭಾನು.","ಸೋಮ.","ಮಂಗಳ.","ಬುಧ.","ಗುರು.","ಶುಕ್ರ.","ಶನಿ."], - namesShort: ["ರ","ಸ","ಮ","ಬ","ಗ","ಶ","ಶ"] - }, - months: { - names: ["ಜನವರಿ","ಫೆಬ್ರವರಿ","ಮಾರ್ಚ್","ಎಪ್ರಿಲ್","ಮೇ","ಜೂನ್","ಜುಲೈ","ಆಗಸ್ಟ್","ಸೆಪ್ಟಂಬರ್","ಅಕ್ಟೋಬರ್","ನವೆಂಬರ್","ಡಿಸೆಂಬರ್",""], - namesAbbr: ["ಜನವರಿ","ಫೆಬ್ರವರಿ","ಮಾರ್ಚ್","ಎಪ್ರಿಲ್","ಮೇ","ಜೂನ್","ಜುಲೈ","ಆಗಸ್ಟ್","ಸೆಪ್ಟಂಬರ್","ಅಕ್ಟೋಬರ್","ನವೆಂಬರ್","ಡಿಸೆಂಬರ್",""] - }, - AM: ["ಪೂರ್ವಾಹ್ನ","ಪೂರ್ವಾಹ್ನ","ಪೂರ್ವಾಹ್ನ"], - PM: ["ಅಪರಾಹ್ನ","ಅಪರಾಹ್ನ","ಅಪರಾಹ್ನ"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "ml-IN", "default", { - name: "ml-IN", - englishName: "Malayalam (India)", - nativeName: "മലയാളം (ഭാരതം)", - language: "ml", - numberFormat: { - groupSizes: [3,2], - percent: { - pattern: ["-%n","%n"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "ക" - } - }, - calendars: { - standard: { - "/": "-", - ":": ".", - firstDay: 1, - days: { - names: ["ഞായറാഴ്ച","തിങ്കളാഴ്ച","ചൊവ്വാഴ്ച","ബുധനാഴ്ച","വ്യാഴാഴ്ച","വെള്ളിയാഴ്ച","ശനിയാഴ്ച"], - namesAbbr: ["ഞായർ.","തിങ്കൾ.","ചൊവ്വ.","ബുധൻ.","വ്യാഴം.","വെള്ളി.","ശനി."], - namesShort: ["ഞ","ത","ച","ബ","വ","വെ","ശ"] - }, - months: { - names: ["ജനുവരി","ഫെബ്റുവരി","മാറ്ച്ച്","ഏപ്റില്","മെയ്","ജൂണ്","ജൂലൈ","ഓഗസ്ററ്","സെപ്ററംബറ്","ഒക്ടോബറ്","നവംബറ്","ഡിസംബറ്",""], - namesAbbr: ["ജനുവരി","ഫെബ്റുവരി","മാറ്ച്ച്","ഏപ്റില്","മെയ്","ജൂണ്","ജൂലൈ","ഓഗസ്ററ്","സെപ്ററംബറ്","ഒക്ടോബറ്","നവംബറ്","ഡിസംബറ്",""] - }, - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH.mm", - T: "HH.mm.ss", - f: "dd MMMM yyyy HH.mm", - F: "dd MMMM yyyy HH.mm.ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "as-IN", "default", { - name: "as-IN", - englishName: "Assamese (India)", - nativeName: "অসমীয়া (ভাৰত)", - language: "as", - numberFormat: { - groupSizes: [3,2], - "NaN": "nan", - negativeInfinity: "-infinity", - positiveInfinity: "infinity", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","n$"], - groupSizes: [3,2], - symbol: "ট" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["সোমবাৰ","মঙ্গলবাৰ","বুধবাৰ","বৃহস্পতিবাৰ","শুক্রবাৰ","শনিবাৰ","ৰবিবাৰ"], - namesAbbr: ["সোম.","মঙ্গল.","বুধ.","বৃহ.","শুক্র.","শনি.","ৰবি."], - namesShort: ["সো","ম","বু","বৃ","শু","শ","র"] - }, - months: { - names: ["জানুৱাৰী","ফেব্রুৱাৰী","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগষ্ট","চেপ্টেম্বর","অক্টোবর","নবেম্বর","ডিচেম্বর",""], - namesAbbr: ["জানু","ফেব্রু","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগষ্ট","চেপ্টে","অক্টো","নবে","ডিচে",""] - }, - AM: ["ৰাতিপু","ৰাতিপু","ৰাতিপু"], - PM: ["আবেলি","আবেলি","আবেলি"], - eras: [{"name":"খ্রীষ্টাব্দ","start":null,"offset":0}], - patterns: { - d: "dd-MM-yyyy", - D: "yyyy,MMMM dd, dddd", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "yyyy,MMMM dd, dddd tt h:mm", - F: "yyyy,MMMM dd, dddd tt h:mm:ss", - M: "dd MMMM", - Y: "MMMM,yy" - } - } - } -}); - -Globalize.addCultureInfo( "mr-IN", "default", { - name: "mr-IN", - englishName: "Marathi (India)", - nativeName: "मराठी (भारत)", - language: "mr", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["रविवार","सोमवार","मंगळवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"], - namesAbbr: ["रवि.","सोम.","मंगळ.","बुध.","गुरु.","शुक्र.","शनि."], - namesShort: ["र","स","म","ब","ग","श","श"] - }, - months: { - names: ["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोव्हेंबर","डिसेंबर",""], - namesAbbr: ["जाने.","फेब्रु.","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टें.","ऑक्टो.","नोव्हें.","डिसें.",""] - }, - AM: ["म.पू.","म.पू.","म.पू."], - PM: ["म.नं.","म.नं.","म.नं."], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "sa-IN", "default", { - name: "sa-IN", - englishName: "Sanskrit (India)", - nativeName: "संस्कृत (भारतम्)", - language: "sa", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["रविवासरः","सोमवासरः","मङ्गलवासरः","बुधवासरः","गुरुवासरः","शुक्रवासरः","शनिवासरः"], - namesAbbr: ["रविवासरः","सोमवासरः","मङ्गलवासरः","बुधवासरः","गुरुवासरः","शुक्रवासरः","शनिवासरः"], - namesShort: ["र","स","म","ब","ग","श","श"] - }, - months: { - names: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""], - namesAbbr: ["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्तूबर","नवम्बर","दिसम्बर",""] - }, - AM: ["पूर्वाह्न","पूर्वाह्न","पूर्वाह्न"], - PM: ["अपराह्न","अपराह्न","अपराह्न"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy dddd", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy dddd HH:mm", - F: "dd MMMM yyyy dddd HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "mn-MN", "default", { - name: "mn-MN", - englishName: "Mongolian (Cyrillic, Mongolia)", - nativeName: "Монгол хэл (Монгол улс)", - language: "mn-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "₮" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Ням","Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба"], - namesAbbr: ["Ня","Да","Мя","Лх","Пү","Ба","Бя"], - namesShort: ["Ня","Да","Мя","Лх","Пү","Ба","Бя"] - }, - months: { - names: ["1 дүгээр сар","2 дугаар сар","3 дугаар сар","4 дүгээр сар","5 дугаар сар","6 дугаар сар","7 дугаар сар","8 дугаар сар","9 дүгээр сар","10 дугаар сар","11 дүгээр сар","12 дугаар сар",""], - namesAbbr: ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII",""] - }, - monthsGenitive: { - names: ["1 дүгээр сарын","2 дугаар сарын","3 дугаар сарын","4 дүгээр сарын","5 дугаар сарын","6 дугаар сарын","7 дугаар сарын","8 дугаар сарын","9 дүгээр сарын","10 дугаар сарын","11 дүгээр сарын","12 дугаар сарын",""], - namesAbbr: ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII",""] - }, - AM: null, - PM: null, - patterns: { - d: "yy.MM.dd", - D: "yyyy 'оны' MMMM d", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'оны' MMMM d H:mm", - F: "yyyy 'оны' MMMM d H:mm:ss", - M: "d MMMM", - Y: "yyyy 'он' MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "bo-CN", "default", { - name: "bo-CN", - englishName: "Tibetan (PRC)", - nativeName: "བོད་ཡིག (ཀྲུང་ཧྭ་མི་དམངས་སྤྱི་མཐུན་རྒྱལ་ཁབ།)", - language: "bo", - numberFormat: { - groupSizes: [3,0], - "NaN": "ཨང་ཀི་མིན་པ།", - negativeInfinity: "མོ་གྲངས་ཚད་མེད་ཆུང་བ།", - positiveInfinity: "ཕོ་གྲངས་ཚད་མེད་ཆེ་བ།", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["$-n","$n"], - groupSizes: [3,0], - symbol: "¥" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["གཟའ་ཉི་མ།","གཟའ་ཟླ་བ།","གཟའ་མིག་དམར།","གཟའ་ལྷག་པ།","གཟའ་ཕུར་བུ།","གཟའ་པ་སངས།","གཟའ་སྤེན་པ།"], - namesAbbr: ["ཉི་མ།","ཟླ་བ།","མིག་དམར།","ལྷག་པ།","ཕུར་བུ།","པ་སངས།","སྤེན་པ།"], - namesShort: ["༧","༡","༢","༣","༤","༥","༦"] - }, - months: { - names: ["སྤྱི་ཟླ་དང་པོ།","སྤྱི་ཟླ་གཉིས་པ།","སྤྱི་ཟླ་གསུམ་པ།","སྤྱི་ཟླ་བཞི་པ།","སྤྱི་ཟླ་ལྔ་པ།","སྤྱི་ཟླ་དྲུག་པ།","སྤྱི་ཟླ་བདུན་པ།","སྤྱི་ཟླ་བརྒྱད་པ།","སྤྱི་ཟླ་དགུ་པ།","སྤྱི་ཟླ་བཅུ་པོ།","སྤྱི་ཟླ་བཅུ་གཅིག་པ།","སྤྱི་ཟླ་བཅུ་གཉིས་པ།",""], - namesAbbr: ["ཟླ་ ༡","ཟླ་ ༢","ཟླ་ ༣","ཟླ་ ༤","ཟླ་ ༥","ཟླ་ ༦","ཟླ་ ༧","ཟླ་ ༨","ཟླ་ ༩","ཟླ་ ༡༠","ཟླ་ ༡༡","ཟླ་ ༡༢",""] - }, - AM: ["སྔ་དྲོ","སྔ་དྲོ","སྔ་དྲོ"], - PM: ["ཕྱི་དྲོ","ཕྱི་དྲོ","ཕྱི་དྲོ"], - eras: [{"name":"སྤྱི་ལོ","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'ལོའི་ཟླ' M'ཚེས' d", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy'ལོའི་ཟླ' M'ཚེས' d HH:mm", - F: "yyyy'ལོའི་ཟླ' M'ཚེས' d HH:mm:ss", - M: "'ཟླ་' M'ཚེས'd", - Y: "yyyy.M" - } - } - } -}); - -Globalize.addCultureInfo( "cy-GB", "default", { - name: "cy-GB", - englishName: "Welsh (United Kingdom)", - nativeName: "Cymraeg (y Deyrnas Unedig)", - language: "cy", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "£" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"], - namesAbbr: ["Sul","Llun","Maw","Mer","Iau","Gwe","Sad"], - namesShort: ["Su","Ll","Ma","Me","Ia","Gw","Sa"] - }, - months: { - names: ["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr",""], - namesAbbr: ["Ion","Chwe","Maw","Ebr","Mai","Meh","Gor","Aws","Med","Hyd","Tach","Rhag",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "km-KH", "default", { - name: "km-KH", - englishName: "Khmer (Cambodia)", - nativeName: "ខ្មែរ (កម្ពុជា)", - language: "km", - numberFormat: { - pattern: ["- n"], - groupSizes: [3,0], - "NaN": "NAN", - negativeInfinity: "-- អនន្ត", - positiveInfinity: "អនន្ត", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["-n$","n$"], - symbol: "៛" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["ថ្ងៃអាទិត្យ","ថ្ងៃច័ន្ទ","ថ្ងៃអង្គារ","ថ្ងៃពុធ","ថ្ងៃព្រហស្បតិ៍","ថ្ងៃសុក្រ","ថ្ងៃសៅរ៍"], - namesAbbr: ["អាទិ.","ច.","អ.","ពុ","ព្រហ.","សុ.","ស."], - namesShort: ["អា","ច","អ","ពុ","ព្","សុ","ស"] - }, - months: { - names: ["មករា","កុម្ភៈ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ",""], - namesAbbr: ["១","២","៣","៤","៥","៦","៧","៨","៩","១០","១១","១២",""] - }, - AM: ["ព្រឹក","ព្រឹក","ព្រឹក"], - PM: ["ល្ងាច","ល្ងាច","ល្ងាច"], - eras: [{"name":"មុនគ.ស.","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "d MMMM yyyy", - t: "H:mm tt", - T: "HH:mm:ss", - f: "d MMMM yyyy H:mm tt", - F: "d MMMM yyyy HH:mm:ss", - M: "'ថ្ងៃទី' dd 'ខែ' MM", - Y: "'ខែ' MM 'ឆ្នាំ' yyyy" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ព្រឹក","ព្រឹក","ព្រឹក"], - PM: ["ល្ងាច","ល្ងាច","ល្ងាច"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm tt", - T: "HH:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm tt", - F: "dddd, MMMM dd, yyyy HH:mm:ss" - } - } - } -}); - -Globalize.addCultureInfo( "lo-LA", "default", { - name: "lo-LA", - englishName: "Lao (Lao P.D.R.)", - nativeName: "ລາວ (ສ.ປ.ປ. ລາວ)", - language: "lo", - numberFormat: { - pattern: ["(n)"], - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - }, - currency: { - pattern: ["(n$)","n$"], - groupSizes: [3,0], - symbol: "₭" - } - }, - calendars: { - standard: { - days: { - names: ["ວັນອາທິດ","ວັນຈັນ","ວັນອັງຄານ","ວັນພຸດ","ວັນພະຫັດ","ວັນສຸກ","ວັນເສົາ"], - namesAbbr: ["ອາທິດ","ຈັນ","ອັງຄານ","ພຸດ","ພະຫັດ","ສຸກ","ເສົາ"], - namesShort: ["ອ","ຈ","ອ","ພ","ພ","ສ","ເ"] - }, - months: { - names: ["ມັງກອນ","ກຸມພາ","ມີນາ","ເມສາ","ພຶດສະພາ","ມິຖຸນາ","ກໍລະກົດ","ສິງຫາ","ກັນຍາ","ຕຸລາ","ພະຈິກ","ທັນວາ",""], - namesAbbr: ["ມັງກອນ","ກຸມພາ","ມີນາ","ເມສາ","ພຶດສະພາ","ມິຖຸນາ","ກໍລະກົດ","ສິງຫາ","ກັນຍາ","ຕຸລາ","ພະຈິກ","ທັນວາ",""] - }, - AM: ["ເຊົ້າ","ເຊົ້າ","ເຊົ້າ"], - PM: ["ແລງ","ແລງ","ແລງ"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm tt", - T: "HH:mm:ss", - f: "dd MMMM yyyy H:mm tt", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "gl-ES", "default", { - name: "gl-ES", - englishName: "Galician (Galician)", - nativeName: "galego (galego)", - language: "gl", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domingo","luns","martes","mércores","xoves","venres","sábado"], - namesAbbr: ["dom","luns","mar","mér","xov","ven","sáb"], - namesShort: ["do","lu","ma","mé","xo","ve","sá"] - }, - months: { - names: ["xaneiro","febreiro","marzo","abril","maio","xuño","xullo","agosto","setembro","outubro","novembro","decembro",""], - namesAbbr: ["xan","feb","mar","abr","maio","xuñ","xull","ago","set","out","nov","dec",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "kok-IN", "default", { - name: "kok-IN", - englishName: "Konkani (India)", - nativeName: "कोंकणी (भारत)", - language: "kok", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "रु" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["आयतार","सोमार","मंगळार","बुधवार","बिरेस्तार","सुक्रार","शेनवार"], - namesAbbr: ["आय.","सोम.","मंगळ.","बुध.","बिरे.","सुक्र.","शेन."], - namesShort: ["आ","स","म","ब","ब","स","श"] - }, - months: { - names: ["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोवेम्बर","डिसेंबर",""], - namesAbbr: ["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोवेम्बर","डिसेंबर",""] - }, - AM: ["म.पू.","म.पू.","म.पू."], - PM: ["म.नं.","म.नं.","म.नं."], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "syr-SY", "default", { - name: "syr-SY", - englishName: "Syriac (Syria)", - nativeName: "ܣܘܪܝܝܐ (سوريا)", - language: "syr", - isRTL: true, - numberFormat: { - currency: { - pattern: ["$n-","$ n"], - symbol: "ل.س.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["ܚܕ ܒܫܒܐ","ܬܪܝܢ ܒܫܒܐ","ܬܠܬܐ ܒܫܒܐ","ܐܪܒܥܐ ܒܫܒܐ","ܚܡܫܐ ܒܫܒܐ","ܥܪܘܒܬܐ","ܫܒܬܐ"], - namesAbbr: ["\u070fܐ \u070fܒܫ","\u070fܒ \u070fܒܫ","\u070fܓ \u070fܒܫ","\u070fܕ \u070fܒܫ","\u070fܗ \u070fܒܫ","\u070fܥܪܘܒ","\u070fܫܒ"], - namesShort: ["ܐ","ܒ","ܓ","ܕ","ܗ","ܥ","ܫ"] - }, - months: { - names: ["ܟܢܘܢ ܐܚܪܝ","ܫܒܛ","ܐܕܪ","ܢܝܣܢ","ܐܝܪ","ܚܙܝܪܢ","ܬܡܘܙ","ܐܒ","ܐܝܠܘܠ","ܬܫܪܝ ܩܕܝܡ","ܬܫܪܝ ܐܚܪܝ","ܟܢܘܢ ܩܕܝܡ",""], - namesAbbr: ["\u070fܟܢ \u070fܒ","ܫܒܛ","ܐܕܪ","ܢܝܣܢ","ܐܝܪ","ܚܙܝܪܢ","ܬܡܘܙ","ܐܒ","ܐܝܠܘܠ","\u070fܬܫ \u070fܐ","\u070fܬܫ \u070fܒ","\u070fܟܢ \u070fܐ",""] - }, - AM: ["ܩ.ܛ","ܩ.ܛ","ܩ.ܛ"], - PM: ["ܒ.ܛ","ܒ.ܛ","ܒ.ܛ"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "si-LK", "default", { - name: "si-LK", - englishName: "Sinhala (Sri Lanka)", - nativeName: "සිංහල (ශ්\u200dරී ලංකා)", - language: "si", - numberFormat: { - groupSizes: [3,2], - negativeInfinity: "-අනන්තය", - positiveInfinity: "අනන්තය", - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["($ n)","$ n"], - symbol: "රු." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ඉරිදා","සඳුදා","අඟහරුවාදා","බදාදා","බ්\u200dරහස්පතින්දා","සිකුරාදා","සෙනසුරාදා"], - namesAbbr: ["ඉරිදා","සඳුදා","කුජදා","බුදදා","ගුරුදා","කිවිදා","ශනිදා"], - namesShort: ["ඉ","ස","අ","බ","බ්\u200dර","සි","සෙ"] - }, - months: { - names: ["ජනවාරි","පෙබරවාරි","මාර්තු","අ\u200cප්\u200dරේල්","මැයි","ජූනි","ජූලි","අ\u200cගෝස්තු","සැප්තැම්බර්","ඔක්තෝබර්","නොවැම්බර්","දෙසැම්බර්",""], - namesAbbr: ["ජන.","පෙබ.","මාර්තු.","අප්\u200dරේල්.","මැයි.","ජූනි.","ජූලි.","අගෝ.","සැප්.","ඔක්.","නොවැ.","දෙසැ.",""] - }, - AM: ["පෙ.ව.","පෙ.ව.","පෙ.ව."], - PM: ["ප.ව.","ප.ව.","ප.ව."], - eras: [{"name":"ක්\u200dරි.ව.","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "yyyy MMMM' මස 'dd' වැනිදා 'dddd", - f: "yyyy MMMM' මස 'dd' වැනිදා 'dddd h:mm tt", - F: "yyyy MMMM' මස 'dd' වැනිදා 'dddd h:mm:ss tt", - Y: "yyyy MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "iu-Cans-CA", "default", { - name: "iu-Cans-CA", - englishName: "Inuktitut (Syllabics, Canada)", - nativeName: "ᐃᓄᒃᑎᑐᑦ (ᑲᓇᑕᒥ)", - language: "iu-Cans", - numberFormat: { - groupSizes: [3,0], - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["ᓈᑦᑏᖑᔭ","ᓇᒡᒐᔾᔭᐅ","ᐊᐃᑉᐱᖅ","ᐱᖓᑦᓯᖅ","ᓯᑕᒻᒥᖅ","ᑕᓪᓕᕐᒥᖅ","ᓯᕙᑖᕐᕕᒃ"], - namesAbbr: ["ᓈᑦᑏ","ᓇᒡᒐ","ᐊᐃᑉᐱ","ᐱᖓᑦᓯ","ᓯᑕ","ᑕᓪᓕ","ᓯᕙᑖᕐᕕᒃ"], - namesShort: ["ᓈ","ᓇ","ᐊ","ᐱ","ᓯ","ᑕ","ᓯ"] - }, - months: { - names: ["ᔮᓐᓄᐊᕆ","ᕖᕝᕗᐊᕆ","ᒫᑦᓯ","ᐄᐳᕆ","ᒪᐃ","ᔫᓂ","ᔪᓚᐃ","ᐋᒡᒌᓯ","ᓯᑎᐱᕆ","ᐅᑐᐱᕆ","ᓄᕕᐱᕆ","ᑎᓯᐱᕆ",""], - namesAbbr: ["ᔮᓐᓄ","ᕖᕝᕗ","ᒫᑦᓯ","ᐄᐳᕆ","ᒪᐃ","ᔫᓂ","ᔪᓚᐃ","ᐋᒡᒌ","ᓯᑎᐱ","ᐅᑐᐱ","ᓄᕕᐱ","ᑎᓯᐱ",""] - }, - patterns: { - d: "d/M/yyyy", - D: "dddd,MMMM dd,yyyy", - f: "dddd,MMMM dd,yyyy h:mm tt", - F: "dddd,MMMM dd,yyyy h:mm:ss tt", - Y: "MMMM,yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "am-ET", "default", { - name: "am-ET", - englishName: "Amharic (Ethiopia)", - nativeName: "አማርኛ (ኢትዮጵያ)", - language: "am", - numberFormat: { - decimals: 1, - groupSizes: [3,0], - "NaN": "NAN", - percent: { - pattern: ["-n%","n%"], - decimals: 1, - groupSizes: [3,0] - }, - currency: { - pattern: ["-$n","$n"], - groupSizes: [3,0], - symbol: "ETB" - } - }, - calendars: { - standard: { - days: { - names: ["እሑድ","ሰኞ","ማክሰኞ","ረቡዕ","ሐሙስ","ዓርብ","ቅዳሜ"], - namesAbbr: ["እሑድ","ሰኞ","ማክሰ","ረቡዕ","ሐሙስ","ዓርብ","ቅዳሜ"], - namesShort: ["እ","ሰ","ማ","ረ","ሐ","ዓ","ቅ"] - }, - months: { - names: ["ጃንዩወሪ","ፌብሩወሪ","ማርች","ኤፕረል","ሜይ","ጁን","ጁላይ","ኦገስት","ሴፕቴምበር","ኦክተውበር","ኖቬምበር","ዲሴምበር",""], - namesAbbr: ["ጃንዩ","ፌብሩ","ማርች","ኤፕረ","ሜይ","ጁን","ጁላይ","ኦገስ","ሴፕቴ","ኦክተ","ኖቬም","ዲሴም",""] - }, - AM: ["ጡዋት","ጡዋት","ጡዋት"], - PM: ["ከሰዓት","ከሰዓት","ከሰዓት"], - eras: [{"name":"ዓመተ ምሕረት","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "dddd '፣' MMMM d 'ቀን' yyyy", - f: "dddd '፣' MMMM d 'ቀን' yyyy h:mm tt", - F: "dddd '፣' MMMM d 'ቀን' yyyy h:mm:ss tt", - M: "MMMM d ቀን", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ne-NP", "default", { - name: "ne-NP", - englishName: "Nepali (Nepal)", - nativeName: "नेपाली (नेपाल)", - language: "ne", - numberFormat: { - groupSizes: [3,2], - "NaN": "nan", - negativeInfinity: "-infinity", - positiveInfinity: "infinity", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,2] - }, - currency: { - pattern: ["-$n","$n"], - symbol: "रु" - } - }, - calendars: { - standard: { - days: { - names: ["आइतवार","सोमवार","मङ्गलवार","बुधवार","बिहीवार","शुक्रवार","शनिवार"], - namesAbbr: ["आइत","सोम","मङ्गल","बुध","बिही","शुक्र","शनि"], - namesShort: ["आ","सो","म","बु","बि","शु","श"] - }, - months: { - names: ["जनवरी","फेब्रुअरी","मार्च","अप्रिल","मे","जून","जुलाई","अगस्त","सेप्टेम्बर","अक्टोबर","नोभेम्बर","डिसेम्बर",""], - namesAbbr: ["जन","फेब","मार्च","अप्रिल","मे","जून","जुलाई","अग","सेप्ट","अक्ट","नोभ","डिस",""] - }, - AM: ["विहानी","विहानी","विहानी"], - PM: ["बेलुकी","बेलुकी","बेलुकी"], - eras: [{"name":"a.d.","start":null,"offset":0}], - patterns: { - Y: "MMMM,yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fy-NL", "default", { - name: "fy-NL", - englishName: "Frisian (Netherlands)", - nativeName: "Frysk (Nederlân)", - language: "fy", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["Snein","Moandei","Tiisdei","Woansdei","Tongersdei","Freed","Sneon"], - namesAbbr: ["Sn","Mo","Ti","Wo","To","Fr","Sn"], - namesShort: ["S","M","T","W","T","F","S"] - }, - months: { - names: ["jannewaris","febrewaris","maart","april","maaie","juny","july","augustus","septimber","oktober","novimber","desimber",""], - namesAbbr: ["jann","febr","mrt","apr","maaie","jun","jul","aug","sept","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "d-M-yyyy", - D: "dddd d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd d MMMM yyyy H:mm", - F: "dddd d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ps-AF", "default", { - name: "ps-AF", - englishName: "Pashto (Afghanistan)", - nativeName: "پښتو (افغانستان)", - language: "ps", - isRTL: true, - numberFormat: { - pattern: ["n-"], - ",": "،", - ".": ",", - "NaN": "غ ع", - negativeInfinity: "-∞", - positiveInfinity: "∞", - percent: { - pattern: ["%n-","%n"], - ",": "،", - ".": "," - }, - currency: { - pattern: ["$n-","$n"], - ",": "٬", - ".": "٫", - symbol: "؋" - } - }, - calendars: { - standard: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - f: "dd/MM/yyyy h:mm tt", - F: "dd/MM/yyyy h:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_Localized: { - firstDay: 6, - days: { - names: ["یکشنبه","دوشنبه","سه\u200cشنبه","چارشنبه","پنجشنبه","جمعه","شنبه"], - namesAbbr: ["یکشنبه","دوشنبه","سه\u200cشنبه","چارشنبه","پنجشنبه","جمعه","شنبه"], - namesShort: ["ی","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګا ښزمرى","زمرى","وږى","تله","لړم","لنڈ ۍ","مرغومى",""], - namesAbbr: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګا ښ","زمرى","وږى","تله","لړم","لنڈ ۍ","مرغومى",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"ل.ه","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy, dd, MMMM, dddd", - f: "yyyy, dd, MMMM, dddd h:mm tt", - F: "yyyy, dd, MMMM, dddd h:mm:ss tt", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fil-PH", "default", { - name: "fil-PH", - englishName: "Filipino (Philippines)", - nativeName: "Filipino (Pilipinas)", - language: "fil", - numberFormat: { - currency: { - symbol: "PhP" - } - }, - calendars: { - standard: { - days: { - names: ["Linggo","Lunes","Martes","Mierkoles","Huebes","Biernes","Sabado"], - namesAbbr: ["Lin","Lun","Mar","Mier","Hueb","Bier","Saba"], - namesShort: ["L","L","M","M","H","B","S"] - }, - months: { - names: ["Enero","Pebrero","Marso","Abril","Mayo","Hunyo","Hulyo","Agosto","Septyembre","Oktubre","Nobyembre","Disyembre",""], - namesAbbr: ["En","Peb","Mar","Abr","Mayo","Hun","Hul","Agos","Sept","Okt","Nob","Dis",""] - }, - eras: [{"name":"Anno Domini","start":null,"offset":0}] - } - } -}); - -Globalize.addCultureInfo( "dv-MV", "default", { - name: "dv-MV", - englishName: "Divehi (Maldives)", - nativeName: "ދިވެހިބަސް (ދިވެހި ރާއްޖެ)", - language: "dv", - isRTL: true, - numberFormat: { - currency: { - pattern: ["n $-","n $"], - symbol: "ރ." - } - }, - calendars: { - standard: { - name: "Hijri", - days: { - names: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesAbbr: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesShort: ["އާ","ހޯ","އަ","ބު","ބު","ހު","ހޮ"] - }, - months: { - names: ["މުޙައްރަމް","ޞަފަރު","ރަބީޢުލްއައްވަލް","ރަބީޢުލްއާޚިރު","ޖުމާދަލްއޫލާ","ޖުމާދަލްއާޚިރާ","ރަޖަބް","ޝަޢްބާން","ރަމަޟާން","ޝައްވާލް","ޛުލްޤަޢިދާ","ޛުލްޙިއްޖާ",""], - namesAbbr: ["މުޙައްރަމް","ޞަފަރު","ރަބީޢުލްއައްވަލް","ރަބީޢުލްއާޚިރު","ޖުމާދަލްއޫލާ","ޖުމާދަލްއާޚިރާ","ރަޖަބް","ޝަޢްބާން","ރަމަޟާން","ޝައްވާލް","ޛުލްޤަޢިދާ","ޛުލްޙިއްޖާ",""] - }, - AM: ["މކ","މކ","މކ"], - PM: ["މފ","މފ","މފ"], - eras: [{"name":"ހިޖްރީ","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd/MM/yyyy HH:mm", - F: "dd/MM/yyyy HH:mm:ss", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_Localized: { - days: { - names: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesAbbr: ["އާދީއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"], - namesShort: ["އާ","ހޯ","އަ","ބު","ބު","ހު","ހޮ"] - }, - months: { - names: ["ޖަނަވަރީ","ފެބްރުއަރީ","މާޗް","އޭޕްރިލް","މެއި","ޖޫން","ޖުލައި","އޯގަސްޓް","ސެޕްޓެމްބަރ","އޮކްޓޯބަރ","ނޮވެމްބަރ","ޑިސެމްބަރ",""], - namesAbbr: ["ޖަނަވަރީ","ފެބްރުއަރީ","މާޗް","އޭޕްރިލް","މެއި","ޖޫން","ޖުލައި","އޯގަސްޓް","ސެޕްޓެމްބަރ","އޮކްޓޯބަރ","ނޮވެމްބަރ","ޑިސެމްބަރ",""] - }, - AM: ["މކ","މކ","މކ"], - PM: ["މފ","މފ","މފ"], - eras: [{"name":"މީލާދީ","start":null,"offset":0}], - patterns: { - d: "dd/MM/yy", - D: "ddd, yyyy MMMM dd", - t: "HH:mm", - T: "HH:mm:ss", - f: "ddd, yyyy MMMM dd HH:mm", - F: "ddd, yyyy MMMM dd HH:mm:ss", - Y: "yyyy, MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "ha-Latn-NG", "default", { - name: "ha-Latn-NG", - englishName: "Hausa (Latin, Nigeria)", - nativeName: "Hausa (Nigeria)", - language: "ha-Latn", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Lahadi","Litinin","Talata","Laraba","Alhamis","Juma'a","Asabar"], - namesAbbr: ["Lah","Lit","Tal","Lar","Alh","Jum","Asa"], - namesShort: ["L","L","T","L","A","J","A"] - }, - months: { - names: ["Januwaru","Febreru","Maris","Afrilu","Mayu","Yuni","Yuli","Agusta","Satumba","Oktocba","Nuwamba","Disamba",""], - namesAbbr: ["Jan","Feb","Mar","Afr","May","Yun","Yul","Agu","Sat","Okt","Nuw","Dis",""] - }, - AM: ["Safe","safe","SAFE"], - PM: ["Yamma","yamma","YAMMA"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "yo-NG", "default", { - name: "yo-NG", - englishName: "Yoruba (Nigeria)", - nativeName: "Yoruba (Nigeria)", - language: "yo", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Aiku","Aje","Isegun","Ojo'ru","Ojo'bo","Eti","Abameta"], - namesAbbr: ["Aik","Aje","Ise","Ojo","Ojo","Eti","Aba"], - namesShort: ["A","A","I","O","O","E","A"] - }, - months: { - names: ["Osu kinni","Osu keji","Osu keta","Osu kerin","Osu karun","Osu kefa","Osu keje","Osu kejo","Osu kesan","Osu kewa","Osu kokanla","Osu keresi",""], - namesAbbr: ["kin.","kej.","ket.","ker.","kar.","kef.","kej.","kej.","kes.","kew.","kok.","ker.",""] - }, - AM: ["Owuro","owuro","OWURO"], - PM: ["Ale","ale","ALE"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "quz-BO", "default", { - name: "quz-BO", - englishName: "Quechua (Bolivia)", - nativeName: "runasimi (Qullasuyu)", - language: "quz", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": ",", - symbol: "$b" - } - }, - calendars: { - standard: { - days: { - names: ["intichaw","killachaw","atipachaw","quyllurchaw","Ch' askachaw","Illapachaw","k'uychichaw"], - namesAbbr: ["int","kil","ati","quy","Ch'","Ill","k'u"], - namesShort: ["d","k","a","m","h","b","k"] - }, - months: { - names: ["Qulla puquy","Hatun puquy","Pauqar waray","ayriwa","Aymuray","Inti raymi","Anta Sitwa","Qhapaq Sitwa","Uma raymi","Kantaray","Ayamarq'a","Kapaq Raymi",""], - namesAbbr: ["Qul","Hat","Pau","ayr","Aym","Int","Ant","Qha","Uma","Kan","Aya","Kap",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "nso-ZA", "default", { - name: "nso-ZA", - englishName: "Sesotho sa Leboa (South Africa)", - nativeName: "Sesotho sa Leboa (Afrika Borwa)", - language: "nso", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$-n","$ n"], - symbol: "R" - } - }, - calendars: { - standard: { - days: { - names: ["Lamorena","Mošupologo","Labobedi","Laboraro","Labone","Labohlano","Mokibelo"], - namesAbbr: ["Lam","Moš","Lbb","Lbr","Lbn","Lbh","Mok"], - namesShort: ["L","M","L","L","L","L","M"] - }, - months: { - names: ["Pherekgong","Hlakola","Mopitlo","Moranang","Mosegamanye","Ngoatobošego","Phuphu","Phato","Lewedi","Diphalana","Dibatsela","Manthole",""], - namesAbbr: ["Pher","Hlak","Mop","Mor","Mos","Ngwat","Phup","Phat","Lew","Dip","Dib","Man",""] - }, - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ba-RU", "default", { - name: "ba-RU", - englishName: "Bashkir (Russia)", - nativeName: "Башҡорт (Россия)", - language: "ba", - numberFormat: { - ",": " ", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - groupSizes: [3,0], - ",": " ", - ".": ",", - symbol: "һ." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Йәкшәмбе","Дүшәмбе","Шишәмбе","Шаршамбы","Кесаҙна","Йома","Шәмбе"], - namesAbbr: ["Йш","Дш","Шш","Шр","Кс","Йм","Шб"], - namesShort: ["Йш","Дш","Шш","Шр","Кс","Йм","Шб"] - }, - months: { - names: ["ғинуар","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь",""], - namesAbbr: ["ғин","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d MMMM yyyy 'й'", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy 'й' H:mm", - F: "d MMMM yyyy 'й' H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "lb-LU", "default", { - name: "lb-LU", - englishName: "Luxembourgish (Luxembourg)", - nativeName: "Lëtzebuergesch (Luxembourg)", - language: "lb", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "n. num.", - negativeInfinity: "-onendlech", - positiveInfinity: "+onendlech", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Sonndeg","Méindeg","Dënschdeg","Mëttwoch","Donneschdeg","Freideg","Samschdeg"], - namesAbbr: ["Son","Méi","Dën","Mët","Don","Fre","Sam"], - namesShort: ["So","Mé","Dë","Më","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","Mäerz","Abrëll","Mee","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mäe","Abr","Mee","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "kl-GL", "default", { - name: "kl-GL", - englishName: "Greenlandic (Greenland)", - nativeName: "kalaallisut (Kalaallit Nunaat)", - language: "kl", - numberFormat: { - ",": ".", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - groupSizes: [3,0], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,0], - ",": ".", - ".": ",", - symbol: "kr." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["sapaat","ataasinngorneq","marlunngorneq","pingasunngorneq","sisamanngorneq","tallimanngorneq","arfininngorneq"], - namesAbbr: ["sap","ata","mar","ping","sis","tal","arf"], - namesShort: ["sa","at","ma","pi","si","ta","ar"] - }, - months: { - names: ["januari","februari","martsi","apriili","maaji","juni","juli","aggusti","septembari","oktobari","novembari","decembari",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ig-NG", "default", { - name: "ig-NG", - englishName: "Igbo (Nigeria)", - nativeName: "Igbo (Nigeria)", - language: "ig", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Aiku","Aje","Isegun","Ojo'ru","Ojo'bo","Eti","Abameta"], - namesAbbr: ["Aik","Aje","Ise","Ojo","Ojo","Eti","Aba"], - namesShort: ["A","A","I","O","O","E","A"] - }, - months: { - names: ["Onwa mbu","Onwa ibua","Onwa ato","Onwa ano","Onwa ise","Onwa isi","Onwa asa","Onwa asato","Onwa itolu","Onwa iri","Onwa iri n'ofu","Onwa iri n'ibua",""], - namesAbbr: ["mbu.","ibu.","ato.","ano.","ise","isi","asa","asa.","ito.","iri.","n'of.","n'ib.",""] - }, - AM: ["Ututu","ututu","UTUTU"], - PM: ["Efifie","efifie","EFIFIE"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ii-CN", "default", { - name: "ii-CN", - englishName: "Yi (PRC)", - nativeName: "ꆈꌠꁱꂷ (ꍏꉸꏓꂱꇭꉼꇩ)", - language: "ii", - numberFormat: { - groupSizes: [3,0], - "NaN": "ꌗꂷꀋꉬ", - negativeInfinity: "ꀄꊭꌐꀋꉆ", - positiveInfinity: "ꈤꇁꑖꀋꉬ", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["ꑭꆏꑍ","ꆏꊂ꒔","ꆏꊂꑍ","ꆏꊂꌕ","ꆏꊂꇖ","ꆏꊂꉬ","ꆏꊂꃘ"], - namesAbbr: ["ꑭꆏ","ꆏ꒔","ꆏꑍ","ꆏꌕ","ꆏꇖ","ꆏꉬ","ꆏꃘ"], - namesShort: ["ꆏ","꒔","ꑍ","ꌕ","ꇖ","ꉬ","ꃘ"] - }, - months: { - names: ["ꋍꆪ","ꑍꆪ","ꌕꆪ","ꇖꆪ","ꉬꆪ","ꃘꆪ","ꏃꆪ","ꉆꆪ","ꈬꆪ","ꊰꆪ","ꊯꊪꆪ","ꊰꑋꆪ",""], - namesAbbr: ["ꋍꆪ","ꑍꆪ","ꌕꆪ","ꇖꆪ","ꉬꆪ","ꃘꆪ","ꏃꆪ","ꉆꆪ","ꈬꆪ","ꊰꆪ","ꊯꊪꆪ","ꊰꑋꆪ",""] - }, - AM: ["ꂵꆪꈌꈐ","ꂵꆪꈌꈐ","ꂵꆪꈌꈐ"], - PM: ["ꂵꆪꈌꉈ","ꂵꆪꈌꉈ","ꂵꆪꈌꉈ"], - eras: [{"name":"ꇬꑼ","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'ꈎ' M'ꆪ' d'ꑍ'", - t: "tt h:mm", - T: "H:mm:ss", - f: "yyyy'ꈎ' M'ꆪ' d'ꑍ' tt h:mm", - F: "yyyy'ꈎ' M'ꆪ' d'ꑍ' H:mm:ss", - M: "M'ꆪ' d'ꑍ'", - Y: "yyyy'ꈎ' M'ꆪ'" - } - } - } -}); - -Globalize.addCultureInfo( "arn-CL", "default", { - name: "arn-CL", - englishName: "Mapudungun (Chile)", - nativeName: "Mapudungun (Chile)", - language: "arn", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd-MM-yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "moh-CA", "default", { - name: "moh-CA", - englishName: "Mohawk (Mohawk)", - nativeName: "Kanien'kéha", - language: "moh", - numberFormat: { - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["Awentatokentì:ke","Awentataón'ke","Ratironhia'kehronòn:ke","Soséhne","Okaristiiáhne","Ronwaia'tanentaktonhne","Entákta"], - namesShort: ["S","M","T","W","T","F","S"] - }, - months: { - names: ["Tsothohrkó:Wa","Enniska","Enniskó:Wa","Onerahtókha","Onerahtohkó:Wa","Ohiari:Ha","Ohiarihkó:Wa","Seskéha","Seskehkó:Wa","Kenténha","Kentenhkó:Wa","Tsothóhrha",""] - } - } - } -}); - -Globalize.addCultureInfo( "br-FR", "default", { - name: "br-FR", - englishName: "Breton (France)", - nativeName: "brezhoneg (Frañs)", - language: "br", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "NkN", - negativeInfinity: "-Anfin", - positiveInfinity: "+Anfin", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Sul","Lun","Meurzh","Merc'her","Yaou","Gwener","Sadorn"], - namesAbbr: ["Sul","Lun","Meu.","Mer.","Yaou","Gwe.","Sad."], - namesShort: ["Su","Lu","Mz","Mc","Ya","Gw","Sa"] - }, - months: { - names: ["Genver","C'hwevrer","Meurzh","Ebrel","Mae","Mezheven","Gouere","Eost","Gwengolo","Here","Du","Kerzu",""], - namesAbbr: ["Gen.","C'hwe.","Meur.","Ebr.","Mae","Mezh.","Goue.","Eost","Gwen.","Here","Du","Kzu",""] - }, - AM: null, - PM: null, - eras: [{"name":"g. J.-K.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ug-CN", "default", { - name: "ug-CN", - englishName: "Uyghur (PRC)", - nativeName: "ئۇيغۇرچە (جۇڭخۇا خەلق جۇمھۇرىيىتى)", - language: "ug", - isRTL: true, - numberFormat: { - "NaN": "سان ئەمەس", - negativeInfinity: "مەنپىي چەكسىزلىك", - positiveInfinity: "مۇسبەت چەكسىزلىك", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["يەكشەنبە","دۈشەنبە","سەيشەنبە","چارشەنبە","پەيشەنبە","جۈمە","شەنبە"], - namesAbbr: ["يە","دۈ","سە","چا","پە","جۈ","شە"], - namesShort: ["ي","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["1-ئاي","2-ئاي","3-ئاي","4-ئاي","5-ئاي","6-ئاي","7-ئاي","8-ئاي","9-ئاي","10-ئاي","11-ئاي","12-ئاي",""], - namesAbbr: ["1-ئاي","2-ئاي","3-ئاي","4-ئاي","5-ئاي","6-ئاي","7-ئاي","8-ئاي","9-ئاي","10-ئاي","11-ئاي","12-ئاي",""] - }, - AM: ["چۈشتىن بۇرۇن","چۈشتىن بۇرۇن","چۈشتىن بۇرۇن"], - PM: ["چۈشتىن كېيىن","چۈشتىن كېيىن","چۈشتىن كېيىن"], - eras: [{"name":"مىلادى","start":null,"offset":0}], - patterns: { - d: "yyyy-M-d", - D: "yyyy-'يىلى' MMMM d-'كۈنى،'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy-'يىلى' MMMM d-'كۈنى،' H:mm", - F: "yyyy-'يىلى' MMMM d-'كۈنى،' H:mm:ss", - M: "MMMM d'-كۈنى'", - Y: "yyyy-'يىلى' MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "mi-NZ", "default", { - name: "mi-NZ", - englishName: "Maori (New Zealand)", - nativeName: "Reo Māori (Aotearoa)", - language: "mi", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Rātapu","Rāhina","Rātū","Rāapa","Rāpare","Rāmere","Rāhoroi"], - namesAbbr: ["Ta","Hi","Tū","Apa","Pa","Me","Ho"], - namesShort: ["Ta","Hi","Tū","Aa","Pa","Me","Ho"] - }, - months: { - names: ["Kohi-tātea","Hui-tanguru","Poutū-te-rangi","Paenga-whāwhā","Haratua","Pipiri","Hōngongoi","Here-turi-kōkā","Mahuru","Whiringa-ā-nuku","Whiringa-ā-rangi","Hakihea",""], - namesAbbr: ["Kohi","Hui","Pou","Pae","Hara","Pipi","Hōngo","Here","Mahu","Nuku","Rangi","Haki",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd MMMM, yyyy", - f: "dddd, dd MMMM, yyyy h:mm tt", - F: "dddd, dd MMMM, yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM, yy" - } - } - } -}); - -Globalize.addCultureInfo( "oc-FR", "default", { - name: "oc-FR", - englishName: "Occitan (France)", - nativeName: "Occitan (França)", - language: "oc", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numeric", - negativeInfinity: "-Infinit", - positiveInfinity: "+Infinit", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimenge","diluns","dimars","dimècres","dijòus","divendres","dissabte"], - namesAbbr: ["dim.","lun.","mar.","mèc.","jòu.","ven.","sab."], - namesShort: ["di","lu","ma","mè","jò","ve","sa"] - }, - months: { - names: ["genier","febrier","març","abril","mai","junh","julh","agost","setembre","octobre","novembre","desembre",""], - namesAbbr: ["gen.","feb.","mar.","abr.","mai.","jun.","jul.","ag.","set.","oct.","nov.","des.",""] - }, - monthsGenitive: { - names: ["de genier","de febrier","de març","d'abril","de mai","de junh","de julh","d'agost","de setembre","d'octobre","de novembre","de desembre",""], - namesAbbr: ["gen.","feb.","mar.","abr.","mai.","jun.","jul.","ag.","set.","oct.","nov.","des.",""] - }, - AM: null, - PM: null, - eras: [{"name":"après Jèsus-Crist","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd,' lo 'd MMMM' de 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd,' lo 'd MMMM' de 'yyyy HH:mm", - F: "dddd,' lo 'd MMMM' de 'yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "co-FR", "default", { - name: "co-FR", - englishName: "Corsican (France)", - nativeName: "Corsu (France)", - language: "co", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Mica numericu", - negativeInfinity: "-Infinitu", - positiveInfinity: "+Infinitu", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dumenica","luni","marti","mercuri","ghjovi","venderi","sabbatu"], - namesAbbr: ["dum.","lun.","mar.","mer.","ghj.","ven.","sab."], - namesShort: ["du","lu","ma","me","gh","ve","sa"] - }, - months: { - names: ["ghjennaghju","ferraghju","marzu","aprile","maghju","ghjunghju","lugliu","aostu","settembre","ottobre","nuvembre","dicembre",""], - namesAbbr: ["ghje","ferr","marz","apri","magh","ghju","lugl","aost","sett","otto","nuve","dice",""] - }, - AM: null, - PM: null, - eras: [{"name":"dopu J-C","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "gsw-FR", "default", { - name: "gsw-FR", - englishName: "Alsatian (France)", - nativeName: "Elsässisch (Frànkrisch)", - language: "gsw", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Ohne Nummer", - negativeInfinity: "-Unendlich", - positiveInfinity: "+Unendlich", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Sundàà","Mondàà","Dienschdàà","Mittwuch","Dunnerschdàà","Fridàà","Sàmschdàà"], - namesAbbr: ["Su.","Mo.","Di.","Mi.","Du.","Fr.","Sà."], - namesShort: ["Su","Mo","Di","Mi","Du","Fr","Sà"] - }, - months: { - names: ["Jänner","Feverje","März","Àpril","Mai","Jüni","Jüli","Augscht","September","Oktower","Nowember","Dezember",""], - namesAbbr: ["Jän.","Fev.","März","Apr.","Mai","Jüni","Jüli","Aug.","Sept.","Okt.","Now.","Dez.",""] - }, - AM: null, - PM: null, - eras: [{"name":"Vor J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sah-RU", "default", { - name: "sah-RU", - englishName: "Yakut (Russia)", - nativeName: "саха (Россия)", - language: "sah", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "NAN", - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "с." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["баскыһыанньа","бэнидиэнньик","оптуорунньук","сэрэдэ","чэппиэр","бээтинсэ","субуота"], - namesAbbr: ["Бс","Бн","Оп","Ср","Чп","Бт","Сб"], - namesShort: ["Бс","Бн","Оп","Ср","Чп","Бт","Сб"] - }, - months: { - names: ["Тохсунньу","Олунньу","Кулун тутар","Муус устар","Ыам ыйа","Бэс ыйа","От ыйа","Атырдьах ыйа","Балаҕан ыйа","Алтынньы","Сэтинньи","Ахсынньы",""], - namesAbbr: ["тхс","олн","кул","мст","ыам","бэс","отй","атр","блҕ","алт","стн","ахс",""] - }, - monthsGenitive: { - names: ["тохсунньу","олунньу","кулун тутар","муус устар","ыам ыйын","бэс ыйын","от ыйын","атырдьах ыйын","балаҕан ыйын","алтынньы","сэтинньи","ахсынньы",""], - namesAbbr: ["тхс","олн","кул","мст","ыам","бэс","отй","атр","блҕ","алт","стн","ахс",""] - }, - AM: null, - PM: null, - patterns: { - d: "MM.dd.yyyy", - D: "MMMM d yyyy 'с.'", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d yyyy 'с.' H:mm", - F: "MMMM d yyyy 'с.' H:mm:ss", - Y: "MMMM yyyy 'с.'" - } - } - } -}); - -Globalize.addCultureInfo( "qut-GT", "default", { - name: "qut-GT", - englishName: "K'iche (Guatemala)", - nativeName: "K'iche (Guatemala)", - language: "qut", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - symbol: "Q" - } - }, - calendars: { - standard: { - days: { - names: ["juq'ij","kaq'ij","oxq'ij","kajq'ij","joq'ij","waqq'ij","wuqq'ij"], - namesAbbr: ["juq","kaq","oxq","kajq","joq","waqq","wuqq"], - namesShort: ["ju","ka","ox","ka","jo","wa","wu"] - }, - months: { - names: ["nab'e ik'","ukab' ik'","rox ik'","ukaj ik'","uro' ik'","uwaq ik'","uwuq ik'","uwajxaq ik'","ub'elej ik'","ulaj ik'","ujulaj ik'","ukab'laj ik'",""], - namesAbbr: ["nab'e","ukab","rox","ukaj","uro","uwaq","uwuq","uwajxaq","ub'elej","ulaj","ujulaj","ukab'laj",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "rw-RW", "default", { - name: "rw-RW", - englishName: "Kinyarwanda (Rwanda)", - nativeName: "Kinyarwanda (Rwanda)", - language: "rw", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$-n","$ n"], - ",": " ", - ".": ",", - symbol: "RWF" - } - }, - calendars: { - standard: { - days: { - names: ["Ku wa mbere","Ku wa kabiri","Ku wa gatatu","Ku wa kane","Ku wa gatanu","Ku wa gatandatu","Ku cyumweru"], - namesAbbr: ["mbe.","kab.","gat.","kan.","gat.","gat.","cyu."], - namesShort: ["mb","ka","ga","ka","ga","ga","cy"] - }, - months: { - names: ["Mutarama","Gashyantare","Werurwe","Mata","Gicurasi","Kamena","Nyakanga","Kanama","Nzeli","Ukwakira","Ugushyingo","Ukuboza",""], - namesAbbr: ["Mut","Gas","Wer","Mat","Gic","Kam","Nya","Kan","Nze","Ukwa","Ugu","Uku",""] - }, - AM: ["saa moya z.m.","saa moya z.m.","SAA MOYA Z.M."], - PM: ["saa moya z.n.","saa moya z.n.","SAA MOYA Z.N."], - eras: [{"name":"AD","start":null,"offset":0}] - } - } -}); - -Globalize.addCultureInfo( "wo-SN", "default", { - name: "wo-SN", - englishName: "Wolof (Senegal)", - nativeName: "Wolof (Sénégal)", - language: "wo", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "XOF" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "prs-AF", "default", { - name: "prs-AF", - englishName: "Dari (Afghanistan)", - nativeName: "درى (افغانستان)", - language: "prs", - isRTL: true, - numberFormat: { - pattern: ["n-"], - ",": ".", - ".": ",", - "NaN": "غ ع", - negativeInfinity: "-∞", - positiveInfinity: "∞", - percent: { - pattern: ["%n-","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$n-","$n"], - symbol: "؋" - } - }, - calendars: { - standard: { - name: "Hijri", - firstDay: 5, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - f: "dd/MM/yyyy h:mm tt", - F: "dd/MM/yyyy h:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_Localized: { - firstDay: 5, - days: { - names: ["یکشنبه","دوشنبه","سه\u200cشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesAbbr: ["یکشنبه","دوشنبه","سه\u200cشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"], - namesShort: ["ی","د","س","چ","پ","ج","ش"] - }, - months: { - names: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګاښ","زمرى","وږى","تله","لړم","ليندۍ","مرغومى",""], - namesAbbr: ["سلواغه","كب","ورى","غويى","غبرګولى","چنګاښ","زمرى","وږى","تله","لړم","ليندۍ","مرغومى",""] - }, - AM: ["غ.م","غ.م","غ.م"], - PM: ["غ.و","غ.و","غ.و"], - eras: [{"name":"ل.ه","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy, dd, MMMM, dddd", - f: "yyyy, dd, MMMM, dddd h:mm tt", - F: "yyyy, dd, MMMM, dddd h:mm:ss tt", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "gd-GB", "default", { - name: "gd-GB", - englishName: "Scottish Gaelic (United Kingdom)", - nativeName: "Gàidhlig (An Rìoghachd Aonaichte)", - language: "gd", - numberFormat: { - negativeInfinity: "-Neo-chrìochnachd", - positiveInfinity: "Neo-chrìochnachd", - currency: { - pattern: ["-$n","$n"], - symbol: "£" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"], - namesAbbr: ["Dòm","Lua","Mài","Cia","Ard","Hao","Sat"], - namesShort: ["D","L","M","C","A","H","S"] - }, - months: { - names: ["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd",""], - namesAbbr: ["Fao","Gea","Màr","Gib","Cèi","Ògm","Iuc","Lùn","Sul","Dàm","Sam","Dùb",""] - }, - AM: ["m","m","M"], - PM: ["f","f","F"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-IQ", "default", { - name: "ar-IQ", - englishName: "Arabic (Iraq)", - nativeName: "العربية (العراق)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "د.ع.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "zh-CN", "default", { - name: "zh-CN", - englishName: "Chinese (Simplified, PRC)", - nativeName: "中文(中华人民共和国)", - language: "zh-CHS", - numberFormat: { - "NaN": "非数字", - negativeInfinity: "负无穷大", - positiveInfinity: "正无穷大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["周日","周一","周二","周三","周四","周五","周六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -Globalize.addCultureInfo( "de-CH", "default", { - name: "de-CH", - englishName: "German (Switzerland)", - nativeName: "Deutsch (Schweiz)", - language: "de", - numberFormat: { - ",": "'", - "NaN": "n. def.", - negativeInfinity: "-unendlich", - positiveInfinity: "+unendlich", - percent: { - pattern: ["-n%","n%"], - ",": "'" - }, - currency: { - pattern: ["$-n","$ n"], - ",": "'", - symbol: "Fr." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"], - namesAbbr: ["So","Mo","Di","Mi","Do","Fr","Sa"], - namesShort: ["So","Mo","Di","Mi","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d. MMMM yyyy HH:mm", - F: "dddd, d. MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "en-GB", "default", { - name: "en-GB", - englishName: "English (United Kingdom)", - nativeName: "English (United Kingdom)", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "£" - } - }, - calendars: { - standard: { - firstDay: 1, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "es-MX", "default", { - name: "es-MX", - englishName: "Spanish (Mexico)", - nativeName: "Español (México)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fr-BE", "default", { - name: "fr-BE", - englishName: "French (Belgium)", - nativeName: "français (Belgique)", - language: "fr", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "d/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "it-CH", "default", { - name: "it-CH", - englishName: "Italian (Switzerland)", - nativeName: "italiano (Svizzera)", - language: "it", - numberFormat: { - ",": "'", - "NaN": "Non un numero reale", - negativeInfinity: "-Infinito", - positiveInfinity: "+Infinito", - percent: { - pattern: ["-n%","n%"], - ",": "'" - }, - currency: { - pattern: ["$-n","$ n"], - ",": "'", - symbol: "fr." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"], - namesAbbr: ["dom","lun","mar","mer","gio","ven","sab"], - namesShort: ["do","lu","ma","me","gi","ve","sa"] - }, - months: { - names: ["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre",""], - namesAbbr: ["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d. MMMM yyyy HH:mm", - F: "dddd, d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "nl-BE", "default", { - name: "nl-BE", - englishName: "Dutch (Belgium)", - nativeName: "Nederlands (België)", - language: "nl", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NaN (Niet-een-getal)", - negativeInfinity: "-oneindig", - positiveInfinity: "oneindig", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"], - namesAbbr: ["zo","ma","di","wo","do","vr","za"], - namesShort: ["zo","ma","di","wo","do","vr","za"] - }, - months: { - names: ["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd d MMMM yyyy H:mm", - F: "dddd d MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "nn-NO", "default", { - name: "nn-NO", - englishName: "Norwegian, Nynorsk (Norway)", - nativeName: "norsk, nynorsk (Noreg)", - language: "nn", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["søndag","måndag","tysdag","onsdag","torsdag","fredag","laurdag"], - namesAbbr: ["sø","må","ty","on","to","fr","la"], - namesShort: ["sø","må","ty","on","to","fr","la"] - }, - months: { - names: ["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "pt-PT", "default", { - name: "pt-PT", - englishName: "Portuguese (Portugal)", - nativeName: "português (Portugal)", - language: "pt", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NaN (Não é um número)", - negativeInfinity: "-Infinito", - positiveInfinity: "+Infinito", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"], - namesAbbr: ["dom","seg","ter","qua","qui","sex","sáb"], - namesShort: ["D","S","T","Q","Q","S","S"] - }, - months: { - names: ["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro",""], - namesAbbr: ["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd-MM-yyyy", - D: "dddd, d' de 'MMMM' de 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d' de 'MMMM' de 'yyyy HH:mm", - F: "dddd, d' de 'MMMM' de 'yyyy HH:mm:ss", - M: "d/M", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sr-Latn-CS", "default", { - name: "sr-Latn-CS", - englishName: "Serbian (Latin, Serbia and Montenegro (Former))", - nativeName: "srpski (Srbija i Crna Gora (Prethodno))", - language: "sr-Latn", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-beskonačnost", - positiveInfinity: "+beskonačnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Din." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sre","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"n.e.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sv-FI", "default", { - name: "sv-FI", - englishName: "Swedish (Finland)", - nativeName: "svenska (Finland)", - language: "sv", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"], - namesAbbr: ["sö","må","ti","on","to","fr","lö"], - namesShort: ["sö","må","ti","on","to","fr","lö"] - }, - months: { - names: ["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "'den 'd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "'den 'd MMMM yyyy HH:mm", - F: "'den 'd MMMM yyyy HH:mm:ss", - M: "'den 'd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "az-Cyrl-AZ", "default", { - name: "az-Cyrl-AZ", - englishName: "Azeri (Cyrillic, Azerbaijan)", - nativeName: "Азәрбајҹан (Азәрбајҹан)", - language: "az-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "ман." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Базар","Базар ертәси","Чәршәнбә ахшамы","Чәршәнбә","Ҹүмә ахшамы","Ҹүмә","Шәнбә"], - namesAbbr: ["Б","Бе","Ча","Ч","Ҹа","Ҹ","Ш"], - namesShort: ["Б","Бе","Ча","Ч","Ҹа","Ҹ","Ш"] - }, - months: { - names: ["Јанвар","Феврал","Март","Апрел","Мај","Ијун","Ијул","Август","Сентјабр","Октјабр","Нојабр","Декабр",""], - namesAbbr: ["Јан","Фев","Мар","Апр","Мај","Ијун","Ијул","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["јанвар","феврал","март","апрел","мај","ијун","ијул","август","сентјабр","октјабр","нојабр","декабр",""], - namesAbbr: ["Јан","Фев","Мар","Апр","мая","ијун","ијул","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "dsb-DE", "default", { - name: "dsb-DE", - englishName: "Lower Sorbian (Germany)", - nativeName: "dolnoserbšćina (Nimska)", - language: "dsb", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "njedefinowane", - negativeInfinity: "-njekońcne", - positiveInfinity: "+njekońcne", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ". ", - firstDay: 1, - days: { - names: ["njeźela","ponjeźele","wałtora","srjoda","stwortk","pětk","sobota"], - namesAbbr: ["nje","pon","wał","srj","stw","pět","sob"], - namesShort: ["n","p","w","s","s","p","s"] - }, - months: { - names: ["januar","februar","měrc","apryl","maj","junij","julij","awgust","september","oktober","nowember","december",""], - namesAbbr: ["jan","feb","měr","apr","maj","jun","jul","awg","sep","okt","now","dec",""] - }, - monthsGenitive: { - names: ["januara","februara","měrca","apryla","maja","junija","julija","awgusta","septembra","oktobra","nowembra","decembra",""], - namesAbbr: ["jan","feb","měr","apr","maj","jun","jul","awg","sep","okt","now","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"po Chr.","start":null,"offset":0}], - patterns: { - d: "d. M. yyyy", - D: "dddd, 'dnja' d. MMMM yyyy", - t: "H.mm 'goź.'", - T: "H:mm:ss", - f: "dddd, 'dnja' d. MMMM yyyy H.mm 'goź.'", - F: "dddd, 'dnja' d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "se-SE", "default", { - name: "se-SE", - englishName: "Sami, Northern (Sweden)", - nativeName: "davvisámegiella (Ruoŧŧa)", - language: "se", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["sotnabeaivi","mánnodat","disdat","gaskavahkku","duorastat","bearjadat","lávvardat"], - namesAbbr: ["sotn","mán","dis","gask","duor","bear","láv"], - namesShort: ["s","m","d","g","d","b","l"] - }, - months: { - names: ["ođđajagemánnu","guovvamánnu","njukčamánnu","cuoŋománnu","miessemánnu","geassemánnu","suoidnemánnu","borgemánnu","čakčamánnu","golggotmánnu","skábmamánnu","juovlamánnu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - monthsGenitive: { - names: ["ođđajagimánu","guovvamánu","njukčamánu","cuoŋománu","miessemánu","geassemánu","suoidnemánu","borgemánu","čakčamánu","golggotmánu","skábmamánu","juovlamánu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ga-IE", "default", { - name: "ga-IE", - englishName: "Irish (Ireland)", - nativeName: "Gaeilge (Éire)", - language: "ga", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Sathairn"], - namesAbbr: ["Domh","Luan","Máir","Céad","Déar","Aoi","Sath"], - namesShort: ["Do","Lu","Má","Cé","De","Ao","Sa"] - }, - months: { - names: ["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Meitheamh","Iúil","Lúnasa","Meán Fómhair","Deireadh Fómhair","Samhain","Nollaig",""], - namesAbbr: ["Ean","Feabh","Már","Aib","Bealt","Meith","Iúil","Lún","M.Fómh","D.Fómh","Samh","Noll",""] - }, - AM: ["r.n.","r.n.","R.N."], - PM: ["i.n.","i.n.","I.N."], - patterns: { - d: "dd/MM/yyyy", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ms-BN", "default", { - name: "ms-BN", - englishName: "Malay (Brunei Darussalam)", - nativeName: "Bahasa Melayu (Brunei Darussalam)", - language: "ms", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - decimals: 0, - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"], - namesAbbr: ["Ahad","Isnin","Sel","Rabu","Khamis","Jumaat","Sabtu"], - namesShort: ["A","I","S","R","K","J","S"] - }, - months: { - names: ["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember",""], - namesAbbr: ["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogos","Sept","Okt","Nov","Dis",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM yyyy H:mm", - F: "dd MMMM yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "uz-Cyrl-UZ", "default", { - name: "uz-Cyrl-UZ", - englishName: "Uzbek (Cyrillic, Uzbekistan)", - nativeName: "Ўзбек (Ўзбекистон)", - language: "uz-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "сўм" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["якшанба","душанба","сешанба","чоршанба","пайшанба","жума","шанба"], - namesAbbr: ["якш","дш","сш","чш","пш","ж","ш"], - namesShort: ["я","д","с","ч","п","ж","ш"] - }, - months: { - names: ["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["январ","феврал","март","апрел","май","июн","июл","август","сентябр","октябр","ноябр","декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","мая","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "yyyy 'йил' d-MMMM", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'йил' d-MMMM HH:mm", - F: "yyyy 'йил' d-MMMM HH:mm:ss", - M: "d-MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "bn-BD", "default", { - name: "bn-BD", - englishName: "Bengali (Bangladesh)", - nativeName: "বাংলা (বাংলাদেশ)", - language: "bn", - numberFormat: { - groupSizes: [3,2], - percent: { - pattern: ["-%n","%n"], - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "৳" - } - }, - calendars: { - standard: { - "/": "-", - ":": ".", - firstDay: 1, - days: { - names: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"], - namesAbbr: ["রবি.","সোম.","মঙ্গল.","বুধ.","বৃহস্পতি.","শুক্র.","শনি."], - namesShort: ["র","স","ম","ব","ব","শ","শ"] - }, - months: { - names: ["জানুয়ারী","ফেব্রুয়ারী","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর",""], - namesAbbr: ["জানু.","ফেব্রু.","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগ.","সেপ্টে.","অক্টো.","নভে.","ডিসে.",""] - }, - AM: ["পুর্বাহ্ন","পুর্বাহ্ন","পুর্বাহ্ন"], - PM: ["অপরাহ্ন","অপরাহ্ন","অপরাহ্ন"], - patterns: { - d: "dd-MM-yy", - D: "dd MMMM yyyy", - t: "HH.mm", - T: "HH.mm.ss", - f: "dd MMMM yyyy HH.mm", - F: "dd MMMM yyyy HH.mm.ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "mn-Mong-CN", "default", { - name: "mn-Mong-CN", - englishName: "Mongolian (Traditional Mongolian, PRC)", - nativeName: "ᠮᠤᠨᠭᠭᠤᠯ ᠬᠡᠯᠡ (ᠪᠦᠭᠦᠳᠡ ᠨᠠᠢᠷᠠᠮᠳᠠᠬᠤ ᠳᠤᠮᠳᠠᠳᠤ ᠠᠷᠠᠳ ᠣᠯᠣᠰ)", - language: "mn-Mong", - numberFormat: { - groupSizes: [3,0], - "NaN": "ᠲᠤᠭᠠᠠ ᠪᠤᠰᠤ", - negativeInfinity: "ᠰᠦᠬᠡᠷᠬᠦ ᠬᠢᠵᠠᠭᠠᠷᠭᠦᠢ ᠶᠡᠬᠡ", - positiveInfinity: "ᠡᠶ᠋ᠡᠷᠬᠦ ᠬᠢᠵᠠᠭᠠᠷᠭᠦᠢ ᠶᠠᠬᠡ", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["$-n","$n"], - groupSizes: [3,0], - symbol: "¥" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠡᠳᠦᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠨᠢᠭᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠬᠣᠶᠠᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠭᠤᠷᠪᠠᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠳᠥᠷᠪᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠲᠠᠪᠤᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠵᠢᠷᠭᠤᠭᠠᠨ"], - namesAbbr: ["ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠡᠳᠦᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠨᠢᠭᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠬᠣᠶᠠᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠭᠤᠷᠪᠠᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠳᠥᠷᠪᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠲᠠᠪᠤᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠵᠢᠷᠭᠤᠭᠠᠨ"], - namesShort: ["ᠡ\u200d","ᠨᠢ\u200d","ᠬᠣ\u200d","ᠭᠤ\u200d","ᠳᠥ\u200d","ᠲᠠ\u200d","ᠵᠢ\u200d"] - }, - months: { - names: ["ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠭᠤᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠦᠷᠪᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠠᠪᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠵᠢᠷᠭᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠤᠯᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠨᠠᠢᠮᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠶᠢᠰᠦᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ",""], - namesAbbr: ["ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠭᠤᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠦᠷᠪᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠠᠪᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠵᠢᠷᠭᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠤᠯᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠨᠠᠢᠮᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠶᠢᠰᠦᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ",""] - }, - AM: null, - PM: null, - eras: [{"name":"ᠣᠨ ᠲᠣᠭᠠᠯᠠᠯ ᠤᠨ","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'ᠣᠨ ᠤ᠋' M'ᠰᠠᠷ᠎ᠠ \u202fᠢᠢᠨ 'd' ᠤ᠋ ᠡᠳᠦᠷ'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'ᠣᠨ ᠤ᠋' M'ᠰᠠᠷ᠎ᠠ \u202fᠢᠢᠨ 'd' ᠤ᠋ ᠡᠳᠦᠷ' H:mm", - F: "yyyy'ᠣᠨ ᠤ᠋' M'ᠰᠠᠷ᠎ᠠ \u202fᠢᠢᠨ 'd' ᠤ᠋ ᠡᠳᠦᠷ' H:mm:ss", - M: "M'ᠰᠠᠷ᠎ᠠ' d'ᠡᠳᠦᠷ'", - Y: "yyyy'ᠣᠨ' M'ᠰᠠᠷ᠎ᠠ'" - } - } - } -}); - -Globalize.addCultureInfo( "iu-Latn-CA", "default", { - name: "iu-Latn-CA", - englishName: "Inuktitut (Latin, Canada)", - nativeName: "Inuktitut (Kanatami)", - language: "iu-Latn", - numberFormat: { - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["Naattiinguja","Naggajjau","Aippiq","Pingatsiq","Sitammiq","Tallirmiq","Sivataarvik"], - namesAbbr: ["Nat","Nag","Aip","Pi","Sit","Tal","Siv"], - namesShort: ["N","N","A","P","S","T","S"] - }, - months: { - names: ["Jaannuari","Viivvuari","Maatsi","Iipuri","Mai","Juuni","Julai","Aaggiisi","Sitipiri","Utupiri","Nuvipiri","Tisipiri",""], - namesAbbr: ["Jan","Viv","Mas","Ipu","Mai","Jun","Jul","Agi","Sii","Uut","Nuv","Tis",""] - }, - patterns: { - d: "d/MM/yyyy", - D: "ddd, MMMM dd,yyyy", - f: "ddd, MMMM dd,yyyy h:mm tt", - F: "ddd, MMMM dd,yyyy h:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "tzm-Latn-DZ", "default", { - name: "tzm-Latn-DZ", - englishName: "Tamazight (Latin, Algeria)", - nativeName: "Tamazight (Djazaïr)", - language: "tzm-Latn", - numberFormat: { - pattern: ["n-"], - ",": ".", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - symbol: "DZD" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 6, - days: { - names: ["Acer","Arime","Aram","Ahad","Amhadh","Sem","Sedh"], - namesAbbr: ["Ace","Ari","Ara","Aha","Amh","Sem","Sed"], - namesShort: ["Ac","Ar","Ar","Ah","Am","Se","Se"] - }, - months: { - names: ["Yenayer","Furar","Maghres","Yebrir","Mayu","Yunyu","Yulyu","Ghuct","Cutenber","Ktuber","Wambir","Dujanbir",""], - namesAbbr: ["Yen","Fur","Mag","Yeb","May","Yun","Yul","Ghu","Cut","Ktu","Wam","Duj",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM, yyyy H:mm", - F: "dd MMMM, yyyy H:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "quz-EC", "default", { - name: "quz-EC", - englishName: "Quechua (Ecuador)", - nativeName: "runasimi (Ecuador)", - language: "quz", - numberFormat: { - ",": ".", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - days: { - names: ["intichaw","killachaw","atipachaw","quyllurchaw","Ch' askachaw","Illapachaw","k'uychichaw"], - namesAbbr: ["int","kil","ati","quy","Ch'","Ill","k'u"], - namesShort: ["d","k","a","m","h","b","k"] - }, - months: { - names: ["Qulla puquy","Hatun puquy","Pauqar waray","ayriwa","Aymuray","Inti raymi","Anta Sitwa","Qhapaq Sitwa","Uma raymi","Kantaray","Ayamarq'a","Kapaq Raymi",""], - namesAbbr: ["Qul","Hat","Pau","ayr","Aym","Int","Ant","Qha","Uma","Kan","Aya","Kap",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-EG", "default", { - name: "ar-EG", - englishName: "Arabic (Egypt)", - nativeName: "العربية (مصر)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - decimals: 3, - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - percent: { - decimals: 3 - }, - currency: { - pattern: ["$n-","$ n"], - symbol: "ج.م.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "zh-HK", "default", { - name: "zh-HK", - englishName: "Chinese (Traditional, Hong Kong S.A.R.)", - nativeName: "中文(香港特別行政區)", - language: "zh-CHT", - numberFormat: { - "NaN": "非數字", - negativeInfinity: "負無窮大", - positiveInfinity: "正無窮大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - symbol: "HK$" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["週日","週一","週二","週三","週四","週五","週六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -Globalize.addCultureInfo( "de-AT", "default", { - name: "de-AT", - englishName: "German (Austria)", - nativeName: "Deutsch (Österreich)", - language: "de", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "n. def.", - negativeInfinity: "-unendlich", - positiveInfinity: "+unendlich", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"], - namesAbbr: ["So","Mo","Di","Mi","Do","Fr","Sa"], - namesShort: ["So","Mo","Di","Mi","Do","Fr","Sa"] - }, - months: { - names: ["Jänner","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jän","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, dd. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, dd. MMMM yyyy HH:mm", - F: "dddd, dd. MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "en-AU", "default", { - name: "en-AU", - englishName: "English (Australia)", - nativeName: "English (Australia)", - numberFormat: { - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - firstDay: 1, - patterns: { - d: "d/MM/yyyy", - D: "dddd, d MMMM yyyy", - f: "dddd, d MMMM yyyy h:mm tt", - F: "dddd, d MMMM yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "es-ES", "default", { - name: "es-ES", - englishName: "Spanish (Spain, International Sort)", - nativeName: "Español (España, alfabetización internacional)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fr-CA", "default", { - name: "fr-CA", - englishName: "French (Canada)", - nativeName: "français (Canada)", - language: "fr", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["(n $)","n $"], - ",": " ", - ".": "," - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "yyyy-MM-dd", - D: "d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d MMMM yyyy HH:mm", - F: "d MMMM yyyy HH:mm:ss", - M: "d MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "sr-Cyrl-CS", "default", { - name: "sr-Cyrl-CS", - englishName: "Serbian (Cyrillic, Serbia and Montenegro (Former))", - nativeName: "српски (Србија и Црна Гора (Претходно))", - language: "sr-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Дин." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недеља","понедељак","уторак","среда","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["не","по","ут","ср","че","пе","су"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "se-FI", "default", { - name: "se-FI", - englishName: "Sami, Northern (Finland)", - nativeName: "davvisámegiella (Suopma)", - language: "se", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sotnabeaivi","vuossárga","maŋŋebárga","gaskavahkku","duorastat","bearjadat","lávvardat"], - namesAbbr: ["sotn","vuos","maŋ","gask","duor","bear","láv"], - namesShort: ["s","m","d","g","d","b","l"] - }, - months: { - names: ["ođđajagemánnu","guovvamánnu","njukčamánnu","cuoŋománnu","miessemánnu","geassemánnu","suoidnemánnu","borgemánnu","čakčamánnu","golggotmánnu","skábmamánnu","juovlamánnu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - monthsGenitive: { - names: ["ođđajagimánu","guovvamánu","njukčamánu","cuoŋománu","miessemánu","geassemánu","suoidnemánu","borgemánu","čakčamánu","golggotmánu","skábmamánu","juovlamánu",""], - namesAbbr: ["ođđj","guov","njuk","cuo","mies","geas","suoi","borg","čakč","golg","skáb","juov",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "MMMM d'. b. 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d'. b. 'yyyy H:mm", - F: "MMMM d'. b. 'yyyy H:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "quz-PE", "default", { - name: "quz-PE", - englishName: "Quechua (Peru)", - nativeName: "runasimi (Piruw)", - language: "quz", - numberFormat: { - percent: { - pattern: ["-%n","%n"] - }, - currency: { - pattern: ["$ -n","$ n"], - symbol: "S/." - } - }, - calendars: { - standard: { - days: { - names: ["intichaw","killachaw","atipachaw","quyllurchaw","Ch' askachaw","Illapachaw","k'uychichaw"], - namesAbbr: ["int","kil","ati","quy","Ch'","Ill","k'u"], - namesShort: ["d","k","a","m","h","b","k"] - }, - months: { - names: ["Qulla puquy","Hatun puquy","Pauqar waray","ayriwa","Aymuray","Inti raymi","Anta Sitwa","Qhapaq Sitwa","Uma raymi","Kantaray","Ayamarq'a","Kapaq Raymi",""], - namesAbbr: ["Qul","Hat","Pau","ayr","Aym","Int","Ant","Qha","Uma","Kan","Aya","Kap",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-LY", "default", { - name: "ar-LY", - englishName: "Arabic (Libya)", - nativeName: "العربية (ليبيا)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - decimals: 3, - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - percent: { - decimals: 3 - }, - currency: { - pattern: ["$n-","$n"], - decimals: 3, - symbol: "د.ل.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "zh-SG", "default", { - name: "zh-SG", - englishName: "Chinese (Simplified, Singapore)", - nativeName: "中文(新加坡)", - language: "zh-CHS", - numberFormat: { - percent: { - pattern: ["-n%","n%"] - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["周日","周一","周二","周三","周四","周五","周六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - patterns: { - d: "d/M/yyyy", - D: "yyyy'年'M'月'd'日'", - t: "tt h:mm", - T: "tt h:mm:ss", - f: "yyyy'年'M'月'd'日' tt h:mm", - F: "yyyy'年'M'月'd'日' tt h:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -Globalize.addCultureInfo( "de-LU", "default", { - name: "de-LU", - englishName: "German (Luxembourg)", - nativeName: "Deutsch (Luxemburg)", - language: "de", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "n. def.", - negativeInfinity: "-unendlich", - positiveInfinity: "+unendlich", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"], - namesAbbr: ["So","Mo","Di","Mi","Do","Fr","Sa"], - namesShort: ["So","Mo","Di","Mi","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d. MMMM yyyy HH:mm", - F: "dddd, d. MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "en-CA", "default", { - name: "en-CA", - englishName: "English (Canada)", - nativeName: "English (Canada)", - numberFormat: { - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - patterns: { - d: "dd/MM/yyyy", - D: "MMMM-dd-yy", - f: "MMMM-dd-yy h:mm tt", - F: "MMMM-dd-yy h:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "es-GT", "default", { - name: "es-GT", - englishName: "Spanish (Guatemala)", - nativeName: "Español (Guatemala)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - symbol: "Q" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fr-CH", "default", { - name: "fr-CH", - englishName: "French (Switzerland)", - nativeName: "français (Suisse)", - language: "fr", - numberFormat: { - ",": "'", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": "'" - }, - currency: { - pattern: ["$-n","$ n"], - ",": "'", - symbol: "fr." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "hr-BA", "default", { - name: "hr-BA", - englishName: "Croatian (Latin, Bosnia and Herzegovina)", - nativeName: "hrvatski (Bosna i Hercegovina)", - language: "hr", - numberFormat: { - pattern: ["- n"], - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "KM" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sri","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["siječanj","veljača","ožujak","travanj","svibanj","lipanj","srpanj","kolovoz","rujan","listopad","studeni","prosinac",""], - namesAbbr: ["sij","vlj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro",""] - }, - monthsGenitive: { - names: ["siječnja","veljače","ožujka","travnja","svibnja","lipnja","srpnja","kolovoza","rujna","listopada","studenog","prosinca",""], - namesAbbr: ["sij","vlj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy.", - D: "d. MMMM yyyy.", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy. H:mm", - F: "d. MMMM yyyy. H:mm:ss", - M: "d. MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "smj-NO", "default", { - name: "smj-NO", - englishName: "Sami, Lule (Norway)", - nativeName: "julevusámegiella (Vuodna)", - language: "smj", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["sådnåbiejvve","mánnodahka","dijstahka","gasskavahkko","duorastahka","bierjjedahka","lávvodahka"], - namesAbbr: ["såd","mán","dis","gas","duor","bier","láv"], - namesShort: ["s","m","d","g","d","b","l"] - }, - months: { - names: ["ådåjakmánno","guovvamánno","sjnjuktjamánno","vuoratjismánno","moarmesmánno","biehtsemánno","sjnjilltjamánno","bårggemánno","ragátmánno","gålgådismánno","basádismánno","javllamánno",""], - namesAbbr: ["ådåj","guov","snju","vuor","moar","bieh","snji","bårg","ragá","gålg","basá","javl",""] - }, - monthsGenitive: { - names: ["ådåjakmáno","guovvamáno","sjnjuktjamáno","vuoratjismáno","moarmesmáno","biehtsemáno","sjnjilltjamáno","bårggemáno","ragátmáno","gålgådismáno","basádismáno","javllamáno",""], - namesAbbr: ["ådåj","guov","snju","vuor","moar","bieh","snji","bårg","ragá","gålg","basá","javl",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-DZ", "default", { - name: "ar-DZ", - englishName: "Arabic (Algeria)", - nativeName: "العربية (الجزائر)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "د.ج.\u200f" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM, yyyy H:mm", - F: "dd MMMM, yyyy H:mm:ss", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd/MM/yyyy H:mm", - F: "dd/MM/yyyy H:mm:ss", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd/MMMM/yyyy H:mm", - F: "dd/MMMM/yyyy H:mm:ss", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss" - } - } - } -}); - -Globalize.addCultureInfo( "zh-MO", "default", { - name: "zh-MO", - englishName: "Chinese (Traditional, Macao S.A.R.)", - nativeName: "中文(澳門特別行政區)", - language: "zh-CHT", - numberFormat: { - "NaN": "非數字", - negativeInfinity: "負無窮大", - positiveInfinity: "正無窮大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - symbol: "MOP" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["週日","週一","週二","週三","週四","週五","週六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -Globalize.addCultureInfo( "de-LI", "default", { - name: "de-LI", - englishName: "German (Liechtenstein)", - nativeName: "Deutsch (Liechtenstein)", - language: "de", - numberFormat: { - ",": "'", - "NaN": "n. def.", - negativeInfinity: "-unendlich", - positiveInfinity: "+unendlich", - percent: { - pattern: ["-n%","n%"], - ",": "'" - }, - currency: { - pattern: ["$-n","$ n"], - ",": "'", - symbol: "CHF" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"], - namesAbbr: ["So","Mo","Di","Mi","Do","Fr","Sa"], - namesShort: ["So","Mo","Di","Mi","Do","Fr","Sa"] - }, - months: { - names: ["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember",""], - namesAbbr: ["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez",""] - }, - AM: null, - PM: null, - eras: [{"name":"n. Chr.","start":null,"offset":0}], - patterns: { - d: "dd.MM.yyyy", - D: "dddd, d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd, d. MMMM yyyy HH:mm", - F: "dddd, d. MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "en-NZ", "default", { - name: "en-NZ", - englishName: "English (New Zealand)", - nativeName: "English (New Zealand)", - numberFormat: { - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - firstDay: 1, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - patterns: { - d: "d/MM/yyyy", - D: "dddd, d MMMM yyyy", - f: "dddd, d MMMM yyyy h:mm tt", - F: "dddd, d MMMM yyyy h:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "es-CR", "default", { - name: "es-CR", - englishName: "Spanish (Costa Rica)", - nativeName: "Español (Costa Rica)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - ",": ".", - ".": ",", - symbol: "₡" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fr-LU", "default", { - name: "fr-LU", - englishName: "French (Luxembourg)", - nativeName: "français (Luxembourg)", - language: "fr", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "bs-Latn-BA", "default", { - name: "bs-Latn-BA", - englishName: "Bosnian (Latin, Bosnia and Herzegovina)", - nativeName: "bosanski (Bosna i Hercegovina)", - language: "bs-Latn", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "KM" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sri","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","juni","juli","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "smj-SE", "default", { - name: "smj-SE", - englishName: "Sami, Lule (Sweden)", - nativeName: "julevusámegiella (Svierik)", - language: "smj", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ájllek","mánnodahka","dijstahka","gasskavahkko","duorastahka","bierjjedahka","lávvodahka"], - namesAbbr: ["ájl","mán","dis","gas","duor","bier","láv"], - namesShort: ["á","m","d","g","d","b","l"] - }, - months: { - names: ["ådåjakmánno","guovvamánno","sjnjuktjamánno","vuoratjismánno","moarmesmánno","biehtsemánno","sjnjilltjamánno","bårggemánno","ragátmánno","gålgådismánno","basádismánno","javllamánno",""], - namesAbbr: ["ådåj","guov","snju","vuor","moar","bieh","snji","bårg","ragá","gålg","basá","javl",""] - }, - monthsGenitive: { - names: ["ådåjakmáno","guovvamáno","sjnjuktjamáno","vuoratjismáno","moarmesmáno","biehtsemáno","sjnjilltjamáno","bårggemáno","ragátmáno","gålgådismáno","basádismáno","javllamáno",""], - namesAbbr: ["ådåj","guov","snju","vuor","moar","bieh","snji","bårg","ragá","gålg","basá","javl",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-MA", "default", { - name: "ar-MA", - englishName: "Arabic (Morocco)", - nativeName: "العربية (المملكة المغربية)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "د.م.\u200f" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","ماي","يونيو","يوليوز","غشت","شتنبر","أكتوبر","نونبر","دجنبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","ماي","يونيو","يوليوز","غشت","شتنبر","أكتوبر","نونبر","دجنبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM, yyyy H:mm", - F: "dd MMMM, yyyy H:mm:ss", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd/MM/yyyy H:mm", - F: "dd/MM/yyyy H:mm:ss", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd/MMMM/yyyy H:mm", - F: "dd/MMMM/yyyy H:mm:ss", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss" - } - } - } -}); - -Globalize.addCultureInfo( "en-IE", "default", { - name: "en-IE", - englishName: "English (Ireland)", - nativeName: "English (Ireland)", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - AM: null, - PM: null, - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "es-PA", "default", { - name: "es-PA", - englishName: "Spanish (Panama)", - nativeName: "Español (Panamá)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - pattern: ["($ n)","$ n"], - symbol: "B/." - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "fr-MC", "default", { - name: "fr-MC", - englishName: "French (Monaco)", - nativeName: "français (Principauté de Monaco)", - language: "fr", - numberFormat: { - ",": " ", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: null, - PM: null, - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd d MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dddd d MMMM yyyy HH:mm", - F: "dddd d MMMM yyyy HH:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sr-Latn-BA", "default", { - name: "sr-Latn-BA", - englishName: "Serbian (Latin, Bosnia and Herzegovina)", - nativeName: "srpski (Bosna i Hercegovina)", - language: "sr-Latn", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-beskonačnost", - positiveInfinity: "+beskonačnost", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "KM" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sre","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"n.e.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sma-NO", "default", { - name: "sma-NO", - englishName: "Sami, Southern (Norway)", - nativeName: "åarjelsaemiengiele (Nöörje)", - language: "sma", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-%n","%n"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["aejlege","måanta","dæjsta","gaskevåhkoe","duarsta","bearjadahke","laavvardahke"], - namesAbbr: ["aej","måa","dæj","gask","duar","bearj","laav"], - namesShort: ["a","m","d","g","d","b","l"] - }, - months: { - names: ["tsïengele","goevte","njoktje","voerhtje","suehpede","ruffie","snjaltje","mïetske","skïerede","golke","rahka","goeve",""], - namesAbbr: ["tsïen","goevt","njok","voer","sueh","ruff","snja","mïet","skïer","golk","rahk","goev",""] - }, - monthsGenitive: { - names: ["tsïengelen","goevten","njoktjen","voerhtjen","suehpeden","ruffien","snjaltjen","mïetsken","skïereden","golken","rahkan","goeven",""], - namesAbbr: ["tsïen","goevt","njok","voer","sueh","ruff","snja","mïet","skïer","golk","rahk","goev",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-TN", "default", { - name: "ar-TN", - englishName: "Arabic (Tunisia)", - nativeName: "العربية (تونس)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - decimals: 3, - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - percent: { - decimals: 3 - }, - currency: { - pattern: ["$n-","$ n"], - decimals: 3, - symbol: "د.ت.\u200f" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM, yyyy H:mm", - F: "dd MMMM, yyyy H:mm:ss", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd/MM/yyyy H:mm", - F: "dd/MM/yyyy H:mm:ss", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd/MMMM/yyyy H:mm", - F: "dd/MMMM/yyyy H:mm:ss", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, MMMM dd, yyyy H:mm", - F: "dddd, MMMM dd, yyyy H:mm:ss" - } - } - } -}); - -Globalize.addCultureInfo( "en-ZA", "default", { - name: "en-ZA", - englishName: "English (South Africa)", - nativeName: "English (South Africa)", - numberFormat: { - ",": " ", - percent: { - pattern: ["-n%","n%"], - ",": " " - }, - currency: { - pattern: ["$-n","$ n"], - ",": " ", - ".": ",", - symbol: "R" - } - }, - calendars: { - standard: { - patterns: { - d: "yyyy/MM/dd", - D: "dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM yyyy hh:mm tt", - F: "dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "es-DO", "default", { - name: "es-DO", - englishName: "Spanish (Dominican Republic)", - nativeName: "Español (República Dominicana)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - symbol: "RD$" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sr-Cyrl-BA", "default", { - name: "sr-Cyrl-BA", - englishName: "Serbian (Cyrillic, Bosnia and Herzegovina)", - nativeName: "српски (Босна и Херцеговина)", - language: "sr-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "КМ" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недеља","понедељак","уторак","среда","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["н","п","у","с","ч","п","с"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "sma-SE", "default", { - name: "sma-SE", - englishName: "Sami, Southern (Sweden)", - nativeName: "åarjelsaemiengiele (Sveerje)", - language: "sma", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["aejlege","måanta","dæjsta","gaskevåhkoe","duarsta","bearjadahke","laavvardahke"], - namesAbbr: ["aej","måa","dæj","gask","duar","bearj","laav"], - namesShort: ["a","m","d","g","d","b","l"] - }, - months: { - names: ["tsïengele","goevte","njoktje","voerhtje","suehpede","ruffie","snjaltje","mïetske","skïerede","golke","rahka","goeve",""], - namesAbbr: ["tsïen","goevt","njok","voer","sueh","ruff","snja","mïet","skïer","golk","rahk","goev",""] - }, - monthsGenitive: { - names: ["tsïengelen","goevten","njoktjen","voerhtjen","suehpeden","ruffien","snjaltjen","mïetsken","skïereden","golken","rahkan","goeven",""], - namesAbbr: ["tsïen","goevt","njok","voer","sueh","ruff","snja","mïet","skïer","golk","rahk","goev",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-OM", "default", { - name: "ar-OM", - englishName: "Arabic (Oman)", - nativeName: "العربية (عمان)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - decimals: 3, - symbol: "ر.ع.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "en-JM", "default", { - name: "en-JM", - englishName: "English (Jamaica)", - nativeName: "English (Jamaica)", - numberFormat: { - currency: { - pattern: ["-$n","$n"], - symbol: "J$" - } - }, - calendars: { - standard: { - patterns: { - d: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "es-VE", "default", { - name: "es-VE", - englishName: "Spanish (Bolivarian Republic of Venezuela)", - nativeName: "Español (Republica Bolivariana de Venezuela)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": ".", - ".": ",", - symbol: "Bs. F." - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "bs-Cyrl-BA", "default", { - name: "bs-Cyrl-BA", - englishName: "Bosnian (Cyrillic, Bosnia and Herzegovina)", - nativeName: "босански (Босна и Херцеговина)", - language: "bs-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "КМ" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недјеља","понедјељак","уторак","сриједа","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["н","п","у","с","ч","п","с"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "sms-FI", "default", { - name: "sms-FI", - englishName: "Sami, Skolt (Finland)", - nativeName: "sääm´ǩiõll (Lää´ddjânnam)", - language: "sms", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["pâ´sspei´vv","vuõssargg","mââibargg","seärad","nelljdpei´vv","piâtnâc","sue´vet"], - namesAbbr: ["pâ","vu","mâ","se","ne","pi","su"], - namesShort: ["p","v","m","s","n","p","s"] - }, - months: { - names: ["ođđee´jjmään","tä´lvvmään","pâ´zzlâšttammään","njuhččmään","vue´ssmään","ǩie´ssmään","suei´nnmään","på´rǧǧmään","čõhččmään","kålggmään","skamm´mään","rosttovmään",""], - namesAbbr: ["ođjm","tä´lvv","pâzl","njuh","vue","ǩie","suei","på´r","čõh","kålg","ska","rost",""] - }, - monthsGenitive: { - names: ["ođđee´jjmannu","tä´lvvmannu","pâ´zzlâšttammannu","njuhččmannu","vue´ssmannu","ǩie´ssmannu","suei´nnmannu","på´rǧǧmannu","čõhččmannu","kålggmannu","skamm´mannu","rosttovmannu",""], - namesAbbr: ["ođjm","tä´lvv","pâzl","njuh","vue","ǩie","suei","på´r","čõh","kålg","ska","rost",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "MMMM d'. p. 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d'. p. 'yyyy H:mm", - F: "MMMM d'. p. 'yyyy H:mm:ss", - M: "MMMM d'. p. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-YE", "default", { - name: "ar-YE", - englishName: "Arabic (Yemen)", - nativeName: "العربية (اليمن)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "ر.ي.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "en-029", "default", { - name: "en-029", - englishName: "English (Caribbean)", - nativeName: "English (Caribbean)", - numberFormat: { - currency: { - pattern: ["-$n","$n"] - } - }, - calendars: { - standard: { - firstDay: 1, - patterns: { - d: "MM/dd/yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "es-CO", "default", { - name: "es-CO", - englishName: "Spanish (Colombia)", - nativeName: "Español (Colombia)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sr-Latn-RS", "default", { - name: "sr-Latn-RS", - englishName: "Serbian (Latin, Serbia)", - nativeName: "srpski (Srbija)", - language: "sr-Latn", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-beskonačnost", - positiveInfinity: "+beskonačnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Din." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sre","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"n.e.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "smn-FI", "default", { - name: "smn-FI", - englishName: "Sami, Inari (Finland)", - nativeName: "sämikielâ (Suomâ)", - language: "smn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["pasepeivi","vuossargâ","majebargâ","koskokko","tuorâstâh","vástuppeivi","lávárdâh"], - namesAbbr: ["pa","vu","ma","ko","tu","vá","lá"], - namesShort: ["p","v","m","k","t","v","l"] - }, - months: { - names: ["uđđâivemáánu","kuovâmáánu","njuhčâmáánu","cuáŋuimáánu","vyesimáánu","kesimáánu","syeinimáánu","porgemáánu","čohčâmáánu","roovvâdmáánu","skammâmáánu","juovlâmáánu",""], - namesAbbr: ["uđiv","kuov","njuh","cuoŋ","vyes","kesi","syei","porg","čoh","roov","ska","juov",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "MMMM d'. p. 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d'. p. 'yyyy H:mm", - F: "MMMM d'. p. 'yyyy H:mm:ss", - M: "MMMM d'. p. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-SY", "default", { - name: "ar-SY", - englishName: "Arabic (Syria)", - nativeName: "العربية (سوريا)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "ل.س.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "en-BZ", "default", { - name: "en-BZ", - englishName: "English (Belize)", - nativeName: "English (Belize)", - numberFormat: { - currency: { - groupSizes: [3,0], - symbol: "BZ$" - } - }, - calendars: { - standard: { - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd MMMM yyyy hh:mm tt", - F: "dddd, dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "es-PE", "default", { - name: "es-PE", - englishName: "Spanish (Peru)", - nativeName: "Español (Perú)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - pattern: ["$ -n","$ n"], - symbol: "S/." - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sr-Cyrl-RS", "default", { - name: "sr-Cyrl-RS", - englishName: "Serbian (Cyrillic, Serbia)", - nativeName: "српски (Србија)", - language: "sr-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Дин." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недеља","понедељак","уторак","среда","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["не","по","ут","ср","че","пе","су"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-JO", "default", { - name: "ar-JO", - englishName: "Arabic (Jordan)", - nativeName: "العربية (الأردن)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - decimals: 3, - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - percent: { - decimals: 3 - }, - currency: { - pattern: ["$n-","$ n"], - decimals: 3, - symbol: "د.ا.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "en-TT", "default", { - name: "en-TT", - englishName: "English (Trinidad and Tobago)", - nativeName: "English (Trinidad y Tobago)", - numberFormat: { - currency: { - groupSizes: [3,0], - symbol: "TT$" - } - }, - calendars: { - standard: { - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd MMMM yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd MMMM yyyy hh:mm tt", - F: "dddd, dd MMMM yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "es-AR", "default", { - name: "es-AR", - englishName: "Spanish (Argentina)", - nativeName: "Español (Argentina)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["$-n","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sr-Latn-ME", "default", { - name: "sr-Latn-ME", - englishName: "Serbian (Latin, Montenegro)", - nativeName: "srpski (Crna Gora)", - language: "sr-Latn", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-beskonačnost", - positiveInfinity: "+beskonačnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sre","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"n.e.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-LB", "default", { - name: "ar-LB", - englishName: "Arabic (Lebanon)", - nativeName: "العربية (لبنان)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "ل.ل.\u200f" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 1, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_TransliteratedEnglish: { - name: "Gregorian_TransliteratedEnglish", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["أ","ا","ث","أ","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 1, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "en-ZW", "default", { - name: "en-ZW", - englishName: "English (Zimbabwe)", - nativeName: "English (Zimbabwe)", - numberFormat: { - currency: { - symbol: "Z$" - } - } -}); - -Globalize.addCultureInfo( "es-EC", "default", { - name: "es-EC", - englishName: "Spanish (Ecuador)", - nativeName: "Español (Ecuador)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sr-Cyrl-ME", "default", { - name: "sr-Cyrl-ME", - englishName: "Serbian (Cyrillic, Montenegro)", - nativeName: "српски (Црна Гора)", - language: "sr-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недеља","понедељак","уторак","среда","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["не","по","ут","ср","че","пе","су"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-KW", "default", { - name: "ar-KW", - englishName: "Arabic (Kuwait)", - nativeName: "العربية (الكويت)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - decimals: 3, - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - percent: { - decimals: 3 - }, - currency: { - pattern: ["$n-","$ n"], - decimals: 3, - symbol: "د.ك.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "en-PH", "default", { - name: "en-PH", - englishName: "English (Republic of the Philippines)", - nativeName: "English (Philippines)", - numberFormat: { - currency: { - symbol: "Php" - } - } -}); - -Globalize.addCultureInfo( "es-CL", "default", { - name: "es-CL", - englishName: "Spanish (Chile)", - nativeName: "Español (Chile)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-$ n","$ n"], - ",": ".", - ".": "," - } - }, - calendars: { - standard: { - "/": "-", - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: null, - PM: null, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd-MM-yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dddd, dd' de 'MMMM' de 'yyyy H:mm", - F: "dddd, dd' de 'MMMM' de 'yyyy H:mm:ss", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-AE", "default", { - name: "ar-AE", - englishName: "Arabic (U.A.E.)", - nativeName: "العربية (الإمارات العربية المتحدة)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "د.إ.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "es-UY", "default", { - name: "es-UY", - englishName: "Spanish (Uruguay)", - nativeName: "Español (Uruguay)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": ",", - symbol: "$U" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-BH", "default", { - name: "ar-BH", - englishName: "Arabic (Bahrain)", - nativeName: "العربية (البحرين)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - decimals: 3, - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - percent: { - decimals: 3 - }, - currency: { - pattern: ["$n-","$ n"], - decimals: 3, - symbol: "د.ب.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "es-PY", "default", { - name: "es-PY", - englishName: "Spanish (Paraguay)", - nativeName: "Español (Paraguay)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": ",", - symbol: "Gs" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "ar-QA", "default", { - name: "ar-QA", - englishName: "Arabic (Qatar)", - nativeName: "العربية (قطر)", - language: "ar", - isRTL: true, - numberFormat: { - pattern: ["n-"], - "NaN": "ليس برقم", - negativeInfinity: "-لا نهاية", - positiveInfinity: "+لا نهاية", - currency: { - pattern: ["$n-","$ n"], - symbol: "ر.ق.\u200f" - } - }, - calendars: { - standard: { - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - patterns: { - d: "dd/MM/yyyy", - D: "dd MMMM, yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd MMMM, yyyy hh:mm tt", - F: "dd MMMM, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - UmAlQura: { - name: "UmAlQura", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MMMM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MMMM/yyyy hh:mm tt", - F: "dd/MMMM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - _yearInfo: [ - // MonthLengthFlags, Gregorian Date - [746, -2198707200000], - [1769, -2168121600000], - [3794, -2137449600000], - [3748, -2106777600000], - [3402, -2076192000000], - [2710, -2045606400000], - [1334, -2015020800000], - [2741, -1984435200000], - [3498, -1953763200000], - [2980, -1923091200000], - [2889, -1892505600000], - [2707, -1861920000000], - [1323, -1831334400000], - [2647, -1800748800000], - [1206, -1770076800000], - [2741, -1739491200000], - [1450, -1708819200000], - [3413, -1678233600000], - [3370, -1647561600000], - [2646, -1616976000000], - [1198, -1586390400000], - [2397, -1555804800000], - [748, -1525132800000], - [1749, -1494547200000], - [1706, -1463875200000], - [1365, -1433289600000], - [1195, -1402704000000], - [2395, -1372118400000], - [698, -1341446400000], - [1397, -1310860800000], - [2994, -1280188800000], - [1892, -1249516800000], - [1865, -1218931200000], - [1621, -1188345600000], - [683, -1157760000000], - [1371, -1127174400000], - [2778, -1096502400000], - [1748, -1065830400000], - [3785, -1035244800000], - [3474, -1004572800000], - [3365, -973987200000], - [2637, -943401600000], - [685, -912816000000], - [1389, -882230400000], - [2922, -851558400000], - [2898, -820886400000], - [2725, -790300800000], - [2635, -759715200000], - [1175, -729129600000], - [2359, -698544000000], - [694, -667872000000], - [1397, -637286400000], - [3434, -606614400000], - [3410, -575942400000], - [2710, -545356800000], - [2349, -514771200000], - [605, -484185600000], - [1245, -453600000000], - [2778, -422928000000], - [1492, -392256000000], - [3497, -361670400000], - [3410, -330998400000], - [2730, -300412800000], - [1238, -269827200000], - [2486, -239241600000], - [884, -208569600000], - [1897, -177984000000], - [1874, -147312000000], - [1701, -116726400000], - [1355, -86140800000], - [2731, -55555200000], - [1370, -24883200000], - [2773, 5702400000], - [3538, 36374400000], - [3492, 67046400000], - [3401, 97632000000], - [2709, 128217600000], - [1325, 158803200000], - [2653, 189388800000], - [1370, 220060800000], - [2773, 250646400000], - [1706, 281318400000], - [1685, 311904000000], - [1323, 342489600000], - [2647, 373075200000], - [1198, 403747200000], - [2422, 434332800000], - [1388, 465004800000], - [2901, 495590400000], - [2730, 526262400000], - [2645, 556848000000], - [1197, 587433600000], - [2397, 618019200000], - [730, 648691200000], - [1497, 679276800000], - [3506, 709948800000], - [2980, 740620800000], - [2890, 771206400000], - [2645, 801792000000], - [693, 832377600000], - [1397, 862963200000], - [2922, 893635200000], - [3026, 924307200000], - [3012, 954979200000], - [2953, 985564800000], - [2709, 1016150400000], - [1325, 1046736000000], - [1453, 1077321600000], - [2922, 1107993600000], - [1748, 1138665600000], - [3529, 1169251200000], - [3474, 1199923200000], - [2726, 1230508800000], - [2390, 1261094400000], - [686, 1291680000000], - [1389, 1322265600000], - [874, 1352937600000], - [2901, 1383523200000], - [2730, 1414195200000], - [2381, 1444780800000], - [1181, 1475366400000], - [2397, 1505952000000], - [698, 1536624000000], - [1461, 1567209600000], - [1450, 1597881600000], - [3413, 1628467200000], - [2714, 1659139200000], - [2350, 1689724800000], - [622, 1720310400000], - [1373, 1750896000000], - [2778, 1781568000000], - [1748, 1812240000000], - [1701, 1842825600000], - [0, 1873411200000] - ], - minDate: -2198707200000, - maxDate: 1873411199999, - toGregorian: function(hyear, hmonth, hday) { - var days = hday - 1, - gyear = hyear - 1318; - if (gyear < 0 || gyear >= this._yearInfo.length) return null; - var info = this._yearInfo[gyear], - gdate = new Date(info[1]), - monthLength = info[0]; - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the gregorian date in the same timezone, - // not what the gregorian date was at GMT time, so we adjust for the offset. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - for (var i = 0; i < hmonth; i++) { - days += 29 + (monthLength & 1); - monthLength = monthLength >> 1; - } - gdate.setDate(gdate.getDate() + days); - return gdate; - }, - fromGregorian: function(gdate) { - // Date's ticks in javascript are always from the GMT time, - // but we are interested in the hijri date in the same timezone, - // not what the hijri date was at GMT time, so we adjust for the offset. - var ticks = gdate - gdate.getTimezoneOffset() * 60000; - if (ticks < this.minDate || ticks > this.maxDate) return null; - var hyear = 0, - hmonth = 1; - // find the earliest gregorian date in the array that is greater than or equal to the given date - while (ticks > this._yearInfo[++hyear][1]) { } - if (ticks !== this._yearInfo[hyear][1]) { - hyear--; - } - var info = this._yearInfo[hyear], - // how many days has it been since the date we found in the array? - // 86400000 = ticks per day - days = Math.floor((ticks - info[1]) / 86400000), - monthLength = info[0]; - hyear += 1318; // the Nth array entry corresponds to hijri year 1318+N - // now increment day/month based on the total days, considering - // how many days are in each month. We cannot run past the year - // mark since we would have found a different array entry in that case. - var daysInMonth = 29 + (monthLength & 1); - while (days >= daysInMonth) { - days -= daysInMonth; - monthLength = monthLength >> 1; - daysInMonth = 29 + (monthLength & 1); - hmonth++; - } - // remaining days is less than is in one month, thus is the day of the month we landed on - // hmonth-1 because in javascript months are zero based, stay consistent with that. - return [hyear, hmonth - 1, days + 1]; - } - } - }, - Hijri: { - name: "Hijri", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""], - namesAbbr: ["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الثانية","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"بعد الهجرة","start":null,"offset":0}], - twoDigitYearMax: 1451, - patterns: { - d: "dd/MM/yy", - D: "dd/MM/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dd/MM/yyyy hh:mm tt", - F: "dd/MM/yyyy hh:mm:ss tt", - M: "dd MMMM" - }, - convert: { - // Adapted to Script from System.Globalization.HijriCalendar - ticks1970: 62135596800000, - // number of days leading up to each month - monthDays: [0, 30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355], - minDate: -42521673600000, - maxDate: 253402300799999, - // The number of days to add or subtract from the calendar to accommodate the variances - // in the start and the end of Ramadan and to accommodate the date difference between - // countries/regions. May be dynamically adjusted based on user preference, but should - // remain in the range of -2 to 2, inclusive. - hijriAdjustment: 0, - toGregorian: function(hyear, hmonth, hday) { - var daysSinceJan0101 = this.daysToYear(hyear) + this.monthDays[hmonth] + hday - 1 - this.hijriAdjustment; - // 86400000 = ticks per day - var gdate = new Date(daysSinceJan0101 * 86400000 - this.ticks1970); - // adjust for timezone, because we are interested in the gregorian date for the same timezone - // but ticks in javascript is always from GMT, unlike the server were ticks counts from the base - // date in the current timezone. - gdate.setMinutes(gdate.getMinutes() + gdate.getTimezoneOffset()); - return gdate; - }, - fromGregorian: function(gdate) { - if ((gdate < this.minDate) || (gdate > this.maxDate)) return null; - var ticks = this.ticks1970 + (gdate-0) - gdate.getTimezoneOffset() * 60000, - daysSinceJan0101 = Math.floor(ticks / 86400000) + 1 + this.hijriAdjustment; - // very particular formula determined by someone smart, adapted from the server-side implementation. - // it approximates the hijri year. - var hday, hmonth, hyear = Math.floor(((daysSinceJan0101 - 227013) * 30) / 10631) + 1, - absDays = this.daysToYear(hyear), - daysInYear = this.isLeapYear(hyear) ? 355 : 354; - // hyear is just approximate, it may need adjustment up or down by 1. - if (daysSinceJan0101 < absDays) { - hyear--; - absDays -= daysInYear; - } - else if (daysSinceJan0101 === absDays) { - hyear--; - absDays = this.daysToYear(hyear); - } - else { - if (daysSinceJan0101 > (absDays + daysInYear)) { - absDays += daysInYear; - hyear++; - } - } - // determine month by looking at how many days into the hyear we are - // monthDays contains the number of days up to each month. - hmonth = 0; - var daysIntoYear = daysSinceJan0101 - absDays; - while (hmonth <= 11 && daysIntoYear > this.monthDays[hmonth]) { - hmonth++; - } - hmonth--; - hday = daysIntoYear - this.monthDays[hmonth]; - return [hyear, hmonth, hday]; - }, - daysToYear: function(year) { - // calculates how many days since Jan 1, 0001 - var yearsToYear30 = Math.floor((year - 1) / 30) * 30, - yearsInto30 = year - yearsToYear30 - 1, - days = Math.floor((yearsToYear30 * 10631) / 30) + 227013; - while (yearsInto30 > 0) { - days += (this.isLeapYear(yearsInto30) ? 355 : 354); - yearsInto30--; - } - return days; - }, - isLeapYear: function(year) { - return ((((year * 11) + 14) % 30) < 11); - } - } - }, - Gregorian_MiddleEastFrench: { - name: "Gregorian_MiddleEastFrench", - firstDay: 6, - days: { - names: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"], - namesAbbr: ["dim.","lun.","mar.","mer.","jeu.","ven.","sam."], - namesShort: ["di","lu","ma","me","je","ve","sa"] - }, - months: { - names: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",""], - namesAbbr: ["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc.",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"ap. J.-C.","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt", - M: "dd MMMM" - } - }, - Gregorian_Arabic: { - name: "Gregorian_Arabic", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""], - namesAbbr: ["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - }, - Gregorian_TransliteratedFrench: { - name: "Gregorian_TransliteratedFrench", - firstDay: 6, - days: { - names: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesAbbr: ["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"], - namesShort: ["ح","ن","ث","ر","خ","ج","س"] - }, - months: { - names: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""], - namesAbbr: ["جانفييه","فيفرييه","مارس","أفريل","مي","جوان","جوييه","أوت","سبتمبر","اكتوبر","نوفمبر","ديسمبر",""] - }, - AM: ["ص","ص","ص"], - PM: ["م","م","م"], - eras: [{"name":"م","start":null,"offset":0}], - patterns: { - d: "MM/dd/yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, MMMM dd, yyyy hh:mm tt", - F: "dddd, MMMM dd, yyyy hh:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "en-IN", "default", { - name: "en-IN", - englishName: "English (India)", - nativeName: "English (India)", - numberFormat: { - groupSizes: [3,2], - percent: { - groupSizes: [3,2] - }, - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,2], - symbol: "Rs." - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "dd MMMM yyyy HH:mm", - F: "dd MMMM yyyy HH:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "es-BO", "default", { - name: "es-BO", - englishName: "Spanish (Bolivia)", - nativeName: "Español (Bolivia)", - language: "es", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["($ n)","$ n"], - ",": ".", - ".": ",", - symbol: "$b" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "en-MY", "default", { - name: "en-MY", - englishName: "English (Malaysia)", - nativeName: "English (Malaysia)", - numberFormat: { - percent: { - pattern: ["-n%","n%"] - }, - currency: { - symbol: "RM" - } - }, - calendars: { - standard: { - days: { - namesShort: ["S","M","T","W","T","F","S"] - }, - patterns: { - d: "d/M/yyyy", - D: "dddd, d MMMM, yyyy", - f: "dddd, d MMMM, yyyy h:mm tt", - F: "dddd, d MMMM, yyyy h:mm:ss tt", - M: "d MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "es-SV", "default", { - name: "es-SV", - englishName: "Spanish (El Salvador)", - nativeName: "Español (El Salvador)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "en-SG", "default", { - name: "en-SG", - englishName: "English (Singapore)", - nativeName: "English (Singapore)", - numberFormat: { - percent: { - pattern: ["-n%","n%"] - } - }, - calendars: { - standard: { - days: { - namesShort: ["S","M","T","W","T","F","S"] - }, - patterns: { - d: "d/M/yyyy", - D: "dddd, d MMMM, yyyy", - f: "dddd, d MMMM, yyyy h:mm tt", - F: "dddd, d MMMM, yyyy h:mm:ss tt", - M: "d MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "es-HN", "default", { - name: "es-HN", - englishName: "Spanish (Honduras)", - nativeName: "Español (Honduras)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - pattern: ["$ -n","$ n"], - groupSizes: [3,0], - symbol: "L." - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "es-NI", "default", { - name: "es-NI", - englishName: "Spanish (Nicaragua)", - nativeName: "Español (Nicaragua)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - pattern: ["($ n)","$ n"], - groupSizes: [3,0], - symbol: "C$" - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "es-PR", "default", { - name: "es-PR", - englishName: "Spanish (Puerto Rico)", - nativeName: "Español (Puerto Rico)", - language: "es", - numberFormat: { - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - currency: { - pattern: ["($ n)","$ n"], - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sá"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - AM: ["a.m.","a.m.","A.M."], - PM: ["p.m.","p.m.","P.M."], - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - d: "dd/MM/yyyy", - D: "dddd, dd' de 'MMMM' de 'yyyy", - t: "hh:mm tt", - T: "hh:mm:ss tt", - f: "dddd, dd' de 'MMMM' de 'yyyy hh:mm tt", - F: "dddd, dd' de 'MMMM' de 'yyyy hh:mm:ss tt", - M: "dd MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "es-US", "default", { - name: "es-US", - englishName: "Spanish (United States)", - nativeName: "Español (Estados Unidos)", - language: "es", - numberFormat: { - groupSizes: [3,0], - "NaN": "NeuN", - negativeInfinity: "-Infinito", - positiveInfinity: "Infinito", - percent: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], - namesAbbr: ["dom","lun","mar","mié","jue","vie","sáb"], - namesShort: ["do","lu","ma","mi","ju","vi","sa"] - }, - months: { - names: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre",""], - namesAbbr: ["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic",""] - }, - eras: [{"name":"d.C.","start":null,"offset":0}], - patterns: { - M: "dd' de 'MMMM", - Y: "MMMM' de 'yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "bs-Cyrl", "default", { - name: "bs-Cyrl", - englishName: "Bosnian (Cyrillic)", - nativeName: "босански", - language: "bs-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "КМ" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недјеља","понедјељак","уторак","сриједа","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["н","п","у","с","ч","п","с"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "bs-Latn", "default", { - name: "bs-Latn", - englishName: "Bosnian (Latin)", - nativeName: "bosanski", - language: "bs-Latn", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "KM" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sri","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","juni","juli","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sr-Cyrl", "default", { - name: "sr-Cyrl", - englishName: "Serbian (Cyrillic)", - nativeName: "српски", - language: "sr-Cyrl", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-бесконачност", - positiveInfinity: "+бесконачност", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Дин." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["недеља","понедељак","уторак","среда","четвртак","петак","субота"], - namesAbbr: ["нед","пон","уто","сре","чет","пет","суб"], - namesShort: ["не","по","ут","ср","че","пе","су"] - }, - months: { - names: ["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар",""], - namesAbbr: ["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец",""] - }, - AM: null, - PM: null, - eras: [{"name":"н.е.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sr-Latn", "default", { - name: "sr-Latn", - englishName: "Serbian (Latin)", - nativeName: "srpski", - language: "sr-Latn", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-beskonačnost", - positiveInfinity: "+beskonačnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Din." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sre","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"n.e.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "smn", "default", { - name: "smn", - englishName: "Sami (Inari)", - nativeName: "sämikielâ", - language: "smn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["pasepeivi","vuossargâ","majebargâ","koskokko","tuorâstâh","vástuppeivi","lávárdâh"], - namesAbbr: ["pa","vu","ma","ko","tu","vá","lá"], - namesShort: ["p","v","m","k","t","v","l"] - }, - months: { - names: ["uđđâivemáánu","kuovâmáánu","njuhčâmáánu","cuáŋuimáánu","vyesimáánu","kesimáánu","syeinimáánu","porgemáánu","čohčâmáánu","roovvâdmáánu","skammâmáánu","juovlâmáánu",""], - namesAbbr: ["uđiv","kuov","njuh","cuoŋ","vyes","kesi","syei","porg","čoh","roov","ska","juov",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "MMMM d'. p. 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d'. p. 'yyyy H:mm", - F: "MMMM d'. p. 'yyyy H:mm:ss", - M: "MMMM d'. p. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "az-Cyrl", "default", { - name: "az-Cyrl", - englishName: "Azeri (Cyrillic)", - nativeName: "Азәрбајҹан дили", - language: "az-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "ман." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Базар","Базар ертәси","Чәршәнбә ахшамы","Чәршәнбә","Ҹүмә ахшамы","Ҹүмә","Шәнбә"], - namesAbbr: ["Б","Бе","Ча","Ч","Ҹа","Ҹ","Ш"], - namesShort: ["Б","Бе","Ча","Ч","Ҹа","Ҹ","Ш"] - }, - months: { - names: ["Јанвар","Феврал","Март","Апрел","Мај","Ијун","Ијул","Август","Сентјабр","Октјабр","Нојабр","Декабр",""], - namesAbbr: ["Јан","Фев","Мар","Апр","Мај","Ијун","Ијул","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["јанвар","феврал","март","апрел","мај","ијун","ијул","август","сентјабр","октјабр","нојабр","декабр",""], - namesAbbr: ["Јан","Фев","Мар","Апр","мая","ијун","ијул","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sms", "default", { - name: "sms", - englishName: "Sami (Skolt)", - nativeName: "sääm´ǩiõll", - language: "sms", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["pâ´sspei´vv","vuõssargg","mââibargg","seärad","nelljdpei´vv","piâtnâc","sue´vet"], - namesAbbr: ["pâ","vu","mâ","se","ne","pi","su"], - namesShort: ["p","v","m","s","n","p","s"] - }, - months: { - names: ["ođđee´jjmään","tä´lvvmään","pâ´zzlâšttammään","njuhččmään","vue´ssmään","ǩie´ssmään","suei´nnmään","på´rǧǧmään","čõhččmään","kålggmään","skamm´mään","rosttovmään",""], - namesAbbr: ["ođjm","tä´lvv","pâzl","njuh","vue","ǩie","suei","på´r","čõh","kålg","ska","rost",""] - }, - monthsGenitive: { - names: ["ođđee´jjmannu","tä´lvvmannu","pâ´zzlâšttammannu","njuhččmannu","vue´ssmannu","ǩie´ssmannu","suei´nnmannu","på´rǧǧmannu","čõhččmannu","kålggmannu","skamm´mannu","rosttovmannu",""], - namesAbbr: ["ođjm","tä´lvv","pâzl","njuh","vue","ǩie","suei","på´r","čõh","kålg","ska","rost",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "MMMM d'. p. 'yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "MMMM d'. p. 'yyyy H:mm", - F: "MMMM d'. p. 'yyyy H:mm:ss", - M: "MMMM d'. p. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "zh", "default", { - name: "zh", - englishName: "Chinese", - nativeName: "中文", - language: "zh", - numberFormat: { - "NaN": "非数字", - negativeInfinity: "负无穷大", - positiveInfinity: "正无穷大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["周日","周一","周二","周三","周四","周五","周六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -Globalize.addCultureInfo( "nn", "default", { - name: "nn", - englishName: "Norwegian (Nynorsk)", - nativeName: "norsk (nynorsk)", - language: "nn", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["søndag","måndag","tysdag","onsdag","torsdag","fredag","laurdag"], - namesAbbr: ["sø","må","ty","on","to","fr","la"], - namesShort: ["sø","må","ty","on","to","fr","la"] - }, - months: { - names: ["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "bs", "default", { - name: "bs", - englishName: "Bosnian", - nativeName: "bosanski", - language: "bs", - numberFormat: { - ",": ".", - ".": ",", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "KM" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sri","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","juni","juli","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "az-Latn", "default", { - name: "az-Latn", - englishName: "Azeri (Latin)", - nativeName: "Azərbaycan\xadılı", - language: "az-Latn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "man." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"], - namesAbbr: ["B","Be","Ça","Ç","Ca","C","Ş"], - namesShort: ["B","Be","Ça","Ç","Ca","C","Ş"] - }, - months: { - names: ["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avgust","Sentyabr","Oktyabr","Noyabr","Dekabr",""], - namesAbbr: ["Yan","Fev","Mar","Apr","May","İyun","İyul","Avg","Sen","Okt","Noy","Dek",""] - }, - monthsGenitive: { - names: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""], - namesAbbr: ["Yan","Fev","Mar","Apr","May","İyun","İyul","Avg","Sen","Okt","Noy","Dek",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - M: "d MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sma", "default", { - name: "sma", - englishName: "Sami (Southern)", - nativeName: "åarjelsaemiengiele", - language: "sma", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["aejlege","måanta","dæjsta","gaskevåhkoe","duarsta","bearjadahke","laavvardahke"], - namesAbbr: ["aej","måa","dæj","gask","duar","bearj","laav"], - namesShort: ["a","m","d","g","d","b","l"] - }, - months: { - names: ["tsïengele","goevte","njoktje","voerhtje","suehpede","ruffie","snjaltje","mïetske","skïerede","golke","rahka","goeve",""], - namesAbbr: ["tsïen","goevt","njok","voer","sueh","ruff","snja","mïet","skïer","golk","rahk","goev",""] - }, - monthsGenitive: { - names: ["tsïengelen","goevten","njoktjen","voerhtjen","suehpeden","ruffien","snjaltjen","mïetsken","skïereden","golken","rahkan","goeven",""], - namesAbbr: ["tsïen","goevt","njok","voer","sueh","ruff","snja","mïet","skïer","golk","rahk","goev",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "uz-Cyrl", "default", { - name: "uz-Cyrl", - englishName: "Uzbek (Cyrillic)", - nativeName: "Ўзбек", - language: "uz-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": " ", - ".": ",", - symbol: "сўм" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["якшанба","душанба","сешанба","чоршанба","пайшанба","жума","шанба"], - namesAbbr: ["якш","дш","сш","чш","пш","ж","ш"], - namesShort: ["я","д","с","ч","п","ж","ш"] - }, - months: { - names: ["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["январ","феврал","март","апрел","май","июн","июл","август","сентябр","октябр","ноябр","декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","мая","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "yyyy 'йил' d-MMMM", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'йил' d-MMMM HH:mm", - F: "yyyy 'йил' d-MMMM HH:mm:ss", - M: "d-MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "mn-Cyrl", "default", { - name: "mn-Cyrl", - englishName: "Mongolian (Cyrillic)", - nativeName: "Монгол хэл", - language: "mn-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n$","n$"], - ",": " ", - ".": ",", - symbol: "₮" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["Ням","Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба"], - namesAbbr: ["Ня","Да","Мя","Лх","Пү","Ба","Бя"], - namesShort: ["Ня","Да","Мя","Лх","Пү","Ба","Бя"] - }, - months: { - names: ["1 дүгээр сар","2 дугаар сар","3 дугаар сар","4 дүгээр сар","5 дугаар сар","6 дугаар сар","7 дугаар сар","8 дугаар сар","9 дүгээр сар","10 дугаар сар","11 дүгээр сар","12 дугаар сар",""], - namesAbbr: ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII",""] - }, - monthsGenitive: { - names: ["1 дүгээр сарын","2 дугаар сарын","3 дугаар сарын","4 дүгээр сарын","5 дугаар сарын","6 дугаар сарын","7 дугаар сарын","8 дугаар сарын","9 дүгээр сарын","10 дугаар сарын","11 дүгээр сарын","12 дугаар сарын",""], - namesAbbr: ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII",""] - }, - AM: null, - PM: null, - patterns: { - d: "yy.MM.dd", - D: "yyyy 'оны' MMMM d", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy 'оны' MMMM d H:mm", - F: "yyyy 'оны' MMMM d H:mm:ss", - M: "d MMMM", - Y: "yyyy 'он' MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "iu-Cans", "default", { - name: "iu-Cans", - englishName: "Inuktitut (Syllabics)", - nativeName: "ᐃᓄᒃᑎᑐᑦ", - language: "iu-Cans", - numberFormat: { - groupSizes: [3,0], - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["ᓈᑦᑏᖑᔭ","ᓇᒡᒐᔾᔭᐅ","ᐊᐃᑉᐱᖅ","ᐱᖓᑦᓯᖅ","ᓯᑕᒻᒥᖅ","ᑕᓪᓕᕐᒥᖅ","ᓯᕙᑖᕐᕕᒃ"], - namesAbbr: ["ᓈᑦᑏ","ᓇᒡᒐ","ᐊᐃᑉᐱ","ᐱᖓᑦᓯ","ᓯᑕ","ᑕᓪᓕ","ᓯᕙᑖᕐᕕᒃ"], - namesShort: ["ᓈ","ᓇ","ᐊ","ᐱ","ᓯ","ᑕ","ᓯ"] - }, - months: { - names: ["ᔮᓐᓄᐊᕆ","ᕖᕝᕗᐊᕆ","ᒫᑦᓯ","ᐄᐳᕆ","ᒪᐃ","ᔫᓂ","ᔪᓚᐃ","ᐋᒡᒌᓯ","ᓯᑎᐱᕆ","ᐅᑐᐱᕆ","ᓄᕕᐱᕆ","ᑎᓯᐱᕆ",""], - namesAbbr: ["ᔮᓐᓄ","ᕖᕝᕗ","ᒫᑦᓯ","ᐄᐳᕆ","ᒪᐃ","ᔫᓂ","ᔪᓚᐃ","ᐋᒡᒌ","ᓯᑎᐱ","ᐅᑐᐱ","ᓄᕕᐱ","ᑎᓯᐱ",""] - }, - patterns: { - d: "d/M/yyyy", - D: "dddd,MMMM dd,yyyy", - f: "dddd,MMMM dd,yyyy h:mm tt", - F: "dddd,MMMM dd,yyyy h:mm:ss tt", - Y: "MMMM,yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "zh-Hant", "default", { - name: "zh-Hant", - englishName: "Chinese (Traditional)", - nativeName: "中文(繁體)", - language: "zh-Hant", - numberFormat: { - "NaN": "非數字", - negativeInfinity: "負無窮大", - positiveInfinity: "正無窮大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - symbol: "HK$" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["週日","週一","週二","週三","週四","週五","週六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -Globalize.addCultureInfo( "nb", "default", { - name: "nb", - englishName: "Norwegian (Bokmål)", - nativeName: "norsk (bokmål)", - language: "nb", - numberFormat: { - ",": " ", - ".": ",", - negativeInfinity: "-INF", - positiveInfinity: "INF", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["$ -n","$ n"], - ",": " ", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"], - namesAbbr: ["sø","ma","ti","on","to","fr","lø"], - namesShort: ["sø","ma","ti","on","to","fr","lø"] - }, - months: { - names: ["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember",""], - namesAbbr: ["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yyyy", - D: "d. MMMM yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "d. MMMM yyyy HH:mm", - F: "d. MMMM yyyy HH:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "sr", "default", { - name: "sr", - englishName: "Serbian", - nativeName: "srpski", - language: "sr", - numberFormat: { - ",": ".", - ".": ",", - negativeInfinity: "-beskonačnost", - positiveInfinity: "+beskonačnost", - percent: { - pattern: ["-n%","n%"], - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "Din." - } - }, - calendars: { - standard: { - "/": ".", - firstDay: 1, - days: { - names: ["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"], - namesAbbr: ["ned","pon","uto","sre","čet","pet","sub"], - namesShort: ["ne","po","ut","sr","če","pe","su"] - }, - months: { - names: ["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar",""], - namesAbbr: ["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"n.e.","start":null,"offset":0}], - patterns: { - d: "d.M.yyyy", - D: "d. MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d. MMMM yyyy H:mm", - F: "d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "tg-Cyrl", "default", { - name: "tg-Cyrl", - englishName: "Tajik (Cyrillic)", - nativeName: "Тоҷикӣ", - language: "tg-Cyrl", - numberFormat: { - ",": " ", - ".": ",", - groupSizes: [3,0], - negativeInfinity: "-бесконечность", - positiveInfinity: "бесконечность", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - groupSizes: [3,0], - ",": " ", - ".": ";", - symbol: "т.р." - } - }, - calendars: { - standard: { - "/": ".", - days: { - names: ["Яш","Душанбе","Сешанбе","Чоршанбе","Панҷшанбе","Ҷумъа","Шанбе"], - namesAbbr: ["Яш","Дш","Сш","Чш","Пш","Ҷм","Шн"], - namesShort: ["Яш","Дш","Сш","Чш","Пш","Ҷм","Шн"] - }, - months: { - names: ["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - monthsGenitive: { - names: ["январи","феврали","марти","апрели","маи","июни","июли","августи","сентябри","октябри","ноябри","декабри",""], - namesAbbr: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd.MM.yy", - D: "d MMMM yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "d MMMM yyyy H:mm", - F: "d MMMM yyyy H:mm:ss", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "dsb", "default", { - name: "dsb", - englishName: "Lower Sorbian", - nativeName: "dolnoserbšćina", - language: "dsb", - numberFormat: { - ",": ".", - ".": ",", - "NaN": "njedefinowane", - negativeInfinity: "-njekońcne", - positiveInfinity: "+njekońcne", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "€" - } - }, - calendars: { - standard: { - "/": ". ", - firstDay: 1, - days: { - names: ["njeźela","ponjeźele","wałtora","srjoda","stwortk","pětk","sobota"], - namesAbbr: ["nje","pon","wał","srj","stw","pět","sob"], - namesShort: ["n","p","w","s","s","p","s"] - }, - months: { - names: ["januar","februar","měrc","apryl","maj","junij","julij","awgust","september","oktober","nowember","december",""], - namesAbbr: ["jan","feb","měr","apr","maj","jun","jul","awg","sep","okt","now","dec",""] - }, - monthsGenitive: { - names: ["januara","februara","měrca","apryla","maja","junija","julija","awgusta","septembra","oktobra","nowembra","decembra",""], - namesAbbr: ["jan","feb","měr","apr","maj","jun","jul","awg","sep","okt","now","dec",""] - }, - AM: null, - PM: null, - eras: [{"name":"po Chr.","start":null,"offset":0}], - patterns: { - d: "d. M. yyyy", - D: "dddd, 'dnja' d. MMMM yyyy", - t: "H.mm 'goź.'", - T: "H:mm:ss", - f: "dddd, 'dnja' d. MMMM yyyy H.mm 'goź.'", - F: "dddd, 'dnja' d. MMMM yyyy H:mm:ss", - M: "d. MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "smj", "default", { - name: "smj", - englishName: "Sami (Lule)", - nativeName: "julevusámegiella", - language: "smj", - numberFormat: { - ",": " ", - ".": ",", - percent: { - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - ",": ".", - ".": ",", - symbol: "kr" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 1, - days: { - names: ["ájllek","mánnodahka","dijstahka","gasskavahkko","duorastahka","bierjjedahka","lávvodahka"], - namesAbbr: ["ájl","mán","dis","gas","duor","bier","láv"], - namesShort: ["á","m","d","g","d","b","l"] - }, - months: { - names: ["ådåjakmánno","guovvamánno","sjnjuktjamánno","vuoratjismánno","moarmesmánno","biehtsemánno","sjnjilltjamánno","bårggemánno","ragátmánno","gålgådismánno","basádismánno","javllamánno",""], - namesAbbr: ["ådåj","guov","snju","vuor","moar","bieh","snji","bårg","ragá","gålg","basá","javl",""] - }, - monthsGenitive: { - names: ["ådåjakmáno","guovvamáno","sjnjuktjamáno","vuoratjismáno","moarmesmáno","biehtsemáno","sjnjilltjamáno","bårggemáno","ragátmáno","gålgådismáno","basádismáno","javllamáno",""], - namesAbbr: ["ådåj","guov","snju","vuor","moar","bieh","snji","bårg","ragá","gålg","basá","javl",""] - }, - AM: null, - PM: null, - patterns: { - d: "yyyy-MM-dd", - D: "MMMM d'. b. 'yyyy", - t: "HH:mm", - T: "HH:mm:ss", - f: "MMMM d'. b. 'yyyy HH:mm", - F: "MMMM d'. b. 'yyyy HH:mm:ss", - M: "MMMM d'. b. '", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "uz-Latn", "default", { - name: "uz-Latn", - englishName: "Uzbek (Latin)", - nativeName: "U'zbek", - language: "uz-Latn", - numberFormat: { - ",": " ", - ".": ",", - percent: { - pattern: ["-n%","n%"], - ",": " ", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - decimals: 0, - ",": " ", - ".": ",", - symbol: "so'm" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["yakshanba","dushanba","seshanba","chorshanba","payshanba","juma","shanba"], - namesAbbr: ["yak.","dsh.","sesh.","chr.","psh.","jm.","sh."], - namesShort: ["ya","d","s","ch","p","j","sh"] - }, - months: { - names: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""], - namesAbbr: ["yanvar","fevral","mart","aprel","may","iyun","iyul","avgust","sentyabr","oktyabr","noyabr","dekabr",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd/MM yyyy", - D: "yyyy 'yil' d-MMMM", - t: "HH:mm", - T: "HH:mm:ss", - f: "yyyy 'yil' d-MMMM HH:mm", - F: "yyyy 'yil' d-MMMM HH:mm:ss", - M: "d-MMMM", - Y: "MMMM yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "mn-Mong", "default", { - name: "mn-Mong", - englishName: "Mongolian (Traditional Mongolian)", - nativeName: "ᠮᠤᠨᠭᠭᠤᠯ ᠬᠡᠯᠡ", - language: "mn-Mong", - numberFormat: { - groupSizes: [3,0], - "NaN": "ᠲᠤᠭᠠᠠ ᠪᠤᠰᠤ", - negativeInfinity: "ᠰᠦᠬᠡᠷᠬᠦ ᠬᠢᠵᠠᠭᠠᠷᠭᠦᠢ ᠶᠡᠬᠡ", - positiveInfinity: "ᠡᠶ᠋ᠡᠷᠬᠦ ᠬᠢᠵᠠᠭᠠᠷᠭᠦᠢ ᠶᠠᠬᠡ", - percent: { - pattern: ["-n%","n%"], - groupSizes: [3,0] - }, - currency: { - pattern: ["$-n","$n"], - groupSizes: [3,0], - symbol: "¥" - } - }, - calendars: { - standard: { - firstDay: 1, - days: { - names: ["ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠡᠳᠦᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠨᠢᠭᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠬᠣᠶᠠᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠭᠤᠷᠪᠠᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠳᠥᠷᠪᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠲᠠᠪᠤᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠵᠢᠷᠭᠤᠭᠠᠨ"], - namesAbbr: ["ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠡᠳᠦᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠨᠢᠭᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠬᠣᠶᠠᠷ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠭᠤᠷᠪᠠᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠳᠥᠷᠪᠡᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠲᠠᠪᠤᠨ","ᠭᠠᠷᠠᠭ\u202fᠤᠨ ᠵᠢᠷᠭᠤᠭᠠᠨ"], - namesShort: ["ᠡ\u200d","ᠨᠢ\u200d","ᠬᠣ\u200d","ᠭᠤ\u200d","ᠳᠥ\u200d","ᠲᠠ\u200d","ᠵᠢ\u200d"] - }, - months: { - names: ["ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠭᠤᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠦᠷᠪᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠠᠪᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠵᠢᠷᠭᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠤᠯᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠨᠠᠢᠮᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠶᠢᠰᠦᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ",""], - namesAbbr: ["ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠭᠤᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠦᠷᠪᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠠᠪᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠵᠢᠷᠭᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠲᠤᠯᠤᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠨᠠᠢᠮᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠶᠢᠰᠦᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠨᠢᠭᠡᠳᠦᠭᠡᠷ ᠰᠠᠷ᠎ᠠ","ᠠᠷᠪᠠᠨ ᠬᠤᠶ᠋ᠠᠳᠤᠭᠠᠷ ᠰᠠᠷ᠎ᠠ",""] - }, - AM: null, - PM: null, - eras: [{"name":"ᠣᠨ ᠲᠣᠭᠠᠯᠠᠯ ᠤᠨ","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'ᠣᠨ ᠤ᠋' M'ᠰᠠᠷ᠎ᠠ \u202fᠢᠢᠨ 'd' ᠤ᠋ ᠡᠳᠦᠷ'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'ᠣᠨ ᠤ᠋' M'ᠰᠠᠷ᠎ᠠ \u202fᠢᠢᠨ 'd' ᠤ᠋ ᠡᠳᠦᠷ' H:mm", - F: "yyyy'ᠣᠨ ᠤ᠋' M'ᠰᠠᠷ᠎ᠠ \u202fᠢᠢᠨ 'd' ᠤ᠋ ᠡᠳᠦᠷ' H:mm:ss", - M: "M'ᠰᠠᠷ᠎ᠠ' d'ᠡᠳᠦᠷ'", - Y: "yyyy'ᠣᠨ' M'ᠰᠠᠷ᠎ᠠ'" - } - } - } -}); - -Globalize.addCultureInfo( "iu-Latn", "default", { - name: "iu-Latn", - englishName: "Inuktitut (Latin)", - nativeName: "Inuktitut", - language: "iu-Latn", - numberFormat: { - groupSizes: [3,0], - percent: { - groupSizes: [3,0] - } - }, - calendars: { - standard: { - days: { - names: ["Naattiinguja","Naggajjau","Aippiq","Pingatsiq","Sitammiq","Tallirmiq","Sivataarvik"], - namesAbbr: ["Nat","Nag","Aip","Pi","Sit","Tal","Siv"], - namesShort: ["N","N","A","P","S","T","S"] - }, - months: { - names: ["Jaannuari","Viivvuari","Maatsi","Iipuri","Mai","Juuni","Julai","Aaggiisi","Sitipiri","Utupiri","Nuvipiri","Tisipiri",""], - namesAbbr: ["Jan","Viv","Mas","Ipu","Mai","Jun","Jul","Agi","Sii","Uut","Nuv","Tis",""] - }, - patterns: { - d: "d/MM/yyyy", - D: "ddd, MMMM dd,yyyy", - f: "ddd, MMMM dd,yyyy h:mm tt", - F: "ddd, MMMM dd,yyyy h:mm:ss tt" - } - } - } -}); - -Globalize.addCultureInfo( "tzm-Latn", "default", { - name: "tzm-Latn", - englishName: "Tamazight (Latin)", - nativeName: "Tamazight", - language: "tzm-Latn", - numberFormat: { - pattern: ["n-"], - ",": ".", - ".": ",", - "NaN": "Non Numérique", - negativeInfinity: "-Infini", - positiveInfinity: "+Infini", - percent: { - ",": ".", - ".": "," - }, - currency: { - pattern: ["-n $","n $"], - symbol: "DZD" - } - }, - calendars: { - standard: { - "/": "-", - firstDay: 6, - days: { - names: ["Acer","Arime","Aram","Ahad","Amhadh","Sem","Sedh"], - namesAbbr: ["Ace","Ari","Ara","Aha","Amh","Sem","Sed"], - namesShort: ["Ac","Ar","Ar","Ah","Am","Se","Se"] - }, - months: { - names: ["Yenayer","Furar","Maghres","Yebrir","Mayu","Yunyu","Yulyu","Ghuct","Cutenber","Ktuber","Wambir","Dujanbir",""], - namesAbbr: ["Yen","Fur","Mag","Yeb","May","Yun","Yul","Ghu","Cut","Ktu","Wam","Duj",""] - }, - AM: null, - PM: null, - patterns: { - d: "dd-MM-yyyy", - D: "dd MMMM, yyyy", - t: "H:mm", - T: "H:mm:ss", - f: "dd MMMM, yyyy H:mm", - F: "dd MMMM, yyyy H:mm:ss", - M: "dd MMMM" - } - } - } -}); - -Globalize.addCultureInfo( "ha-Latn", "default", { - name: "ha-Latn", - englishName: "Hausa (Latin)", - nativeName: "Hausa", - language: "ha-Latn", - numberFormat: { - currency: { - pattern: ["$-n","$ n"], - symbol: "N" - } - }, - calendars: { - standard: { - days: { - names: ["Lahadi","Litinin","Talata","Laraba","Alhamis","Juma'a","Asabar"], - namesAbbr: ["Lah","Lit","Tal","Lar","Alh","Jum","Asa"], - namesShort: ["L","L","T","L","A","J","A"] - }, - months: { - names: ["Januwaru","Febreru","Maris","Afrilu","Mayu","Yuni","Yuli","Agusta","Satumba","Oktocba","Nuwamba","Disamba",""], - namesAbbr: ["Jan","Feb","Mar","Afr","May","Yun","Yul","Agu","Sat","Okt","Nuw","Dis",""] - }, - AM: ["Safe","safe","SAFE"], - PM: ["Yamma","yamma","YAMMA"], - eras: [{"name":"AD","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy" - } - } - } -}); - -Globalize.addCultureInfo( "zh-CHS", "default", { - name: "zh-CHS", - englishName: "Chinese (Simplified) Legacy", - nativeName: "中文(简体) 旧版", - language: "zh-CHS", - numberFormat: { - "NaN": "非数字", - negativeInfinity: "负无穷大", - positiveInfinity: "正无穷大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - pattern: ["$-n","$n"], - symbol: "¥" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["周日","周一","周二","周三","周四","周五","周六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "yyyy/M/d", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -Globalize.addCultureInfo( "zh-CHT", "default", { - name: "zh-CHT", - englishName: "Chinese (Traditional) Legacy", - nativeName: "中文(繁體) 舊版", - language: "zh-CHT", - numberFormat: { - "NaN": "非數字", - negativeInfinity: "負無窮大", - positiveInfinity: "正無窮大", - percent: { - pattern: ["-n%","n%"] - }, - currency: { - symbol: "HK$" - } - }, - calendars: { - standard: { - days: { - names: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"], - namesAbbr: ["週日","週一","週二","週三","週四","週五","週六"], - namesShort: ["日","一","二","三","四","五","六"] - }, - months: { - names: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""], - namesAbbr: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""] - }, - AM: ["上午","上午","上午"], - PM: ["下午","下午","下午"], - eras: [{"name":"公元","start":null,"offset":0}], - patterns: { - d: "d/M/yyyy", - D: "yyyy'年'M'月'd'日'", - t: "H:mm", - T: "H:mm:ss", - f: "yyyy'年'M'月'd'日' H:mm", - F: "yyyy'年'M'月'd'日' H:mm:ss", - M: "M'月'd'日'", - Y: "yyyy'年'M'月'" - } - } - } -}); - -}( this )); diff --git a/Web/Scripts/globalize/currency.js b/Web/Scripts/globalize/currency.js new file mode 100644 index 0000000..8b68100 --- /dev/null +++ b/Web/Scripts/globalize/currency.js @@ -0,0 +1,439 @@ +/*! + * Globalize v1.1.1 + * + * http://github.com/jquery/globalize + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-02-04T12:01Z + */ +(function( root, factory ) { + + // UMD returnExports + if ( typeof define === "function" && define.amd ) { + + // AMD + define([ + "cldr", + "../globalize", + "./number", + "cldr/event", + "cldr/supplemental" + ], factory ); + } else if ( typeof exports === "object" ) { + + // Node, CommonJS + module.exports = factory( require( "cldrjs" ), require( "globalize" ) ); + } else { + + // Global + factory( root.Cldr, root.Globalize ); + } +}(this, function( Cldr, Globalize ) { + +var alwaysArray = Globalize._alwaysArray, + formatMessage = Globalize._formatMessage, + numberNumberingSystem = Globalize._numberNumberingSystem, + numberPattern = Globalize._numberPattern, + runtimeBind = Globalize._runtimeBind, + stringPad = Globalize._stringPad, + validateCldr = Globalize._validateCldr, + validateDefaultLocale = Globalize._validateDefaultLocale, + validateParameterPresence = Globalize._validateParameterPresence, + validateParameterType = Globalize._validateParameterType, + validateParameterTypeNumber = Globalize._validateParameterTypeNumber, + validateParameterTypePlainObject = Globalize._validateParameterTypePlainObject; + + +var validateParameterTypeCurrency = function( value, name ) { + validateParameterType( + value, + name, + value === undefined || typeof value === "string" && ( /^[A-Za-z]{3}$/ ).test( value ), + "3-letter currency code string as defined by ISO 4217" + ); +}; + + + + +/** + * supplementalOverride( currency, pattern, cldr ) + * + * Return pattern with fraction digits overriden by supplemental currency data. + */ +var currencySupplementalOverride = function( currency, pattern, cldr ) { + var digits, + fraction = "", + fractionData = cldr.supplemental([ "currencyData/fractions", currency ]) || + cldr.supplemental( "currencyData/fractions/DEFAULT" ); + + digits = +fractionData._digits; + + if ( digits ) { + fraction = "." + stringPad( "0", digits ).slice( 0, -1 ) + fractionData._rounding; + } + + return pattern.replace( /\.(#+|0*[0-9]|0+[0-9]?)/g, fraction ); +}; + + + + +var objectFilter = function( object, testRe ) { + var key, + copy = {}; + + for ( key in object ) { + if ( testRe.test( key ) ) { + copy[ key ] = object[ key ]; + } + } + + return copy; +}; + + + + +var currencyUnitPatterns = function( cldr ) { + return objectFilter( cldr.main([ + "numbers", + "currencyFormats-numberSystem-" + numberNumberingSystem( cldr ) + ]), /^unitPattern/ ); +}; + + + + +/** + * codeProperties( currency, cldr ) + * + * Return number pattern with the appropriate currency code in as literal. + */ +var currencyCodeProperties = function( currency, cldr ) { + var pattern = numberPattern( "decimal", cldr ); + + // The number of decimal places and the rounding for each currency is not locale-specific. Those + // values overridden by Supplemental Currency Data. + pattern = currencySupplementalOverride( currency, pattern, cldr ); + + return { + currency: currency, + pattern: pattern, + unitPatterns: currencyUnitPatterns( cldr ) + }; +}; + + + + +/** + * nameFormat( formattedNumber, pluralForm, properties ) + * + * Return the appropriate name form currency format. + */ +var currencyNameFormat = function( formattedNumber, pluralForm, properties ) { + var displayName, unitPattern, + displayNames = properties.displayNames || {}, + unitPatterns = properties.unitPatterns; + + displayName = displayNames[ "displayName-count-" + pluralForm ] || + displayNames[ "displayName-count-other" ] || + displayNames.displayName || + properties.currency; + unitPattern = unitPatterns[ "unitPattern-count-" + pluralForm ] || + unitPatterns[ "unitPattern-count-other" ]; + + return formatMessage( unitPattern, [ formattedNumber, displayName ]); +}; + + + + +var currencyFormatterFn = function( numberFormatter, pluralGenerator, properties ) { + var fn; + + // Return formatter when style is "code" or "name". + if ( pluralGenerator && properties ) { + fn = function currencyFormatter( value ) { + validateParameterPresence( value, "value" ); + validateParameterTypeNumber( value, "value" ); + return currencyNameFormat( + numberFormatter( value ), + pluralGenerator( value ), + properties + ); + }; + + // Return formatter when style is "symbol" or "accounting". + } else { + fn = function currencyFormatter( value ) { + return numberFormatter( value ); + }; + } + + return fn; +}; + + + + +/** + * nameProperties( currency, cldr ) + * + * Return number pattern with the appropriate currency code in as literal. + */ +var currencyNameProperties = function( currency, cldr ) { + var properties = currencyCodeProperties( currency, cldr ); + + properties.displayNames = objectFilter( cldr.main([ + "numbers/currencies", + currency + ]), /^displayName/ ); + + return properties; +}; + + + + +/** + * Unicode regular expression for: everything except math symbols, currency signs, dingbats, and + * box-drawing characters. + * + * Generated by: + * + * regenerate() + * .addRange( 0x0, 0x10FFFF ) + * .remove( require( "unicode-7.0.0/categories/S/symbols" ) ).toString(); + * + * https://github.com/mathiasbynens/regenerate + * https://github.com/mathiasbynens/unicode-7.0.0 + */ +var regexpNotS = /[\0-#%-\*,-;\?-\]_a-\{\}\x7F-\xA1\xA7\xAA\xAB\xAD\xB2\xB3\xB5-\xB7\xB9-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376-\u0383\u0386-\u03F5\u03F7-\u0481\u0483-\u058C\u0590-\u0605\u0609\u060A\u060C\u060D\u0610-\u06DD\u06DF-\u06E8\u06EA-\u06FC\u06FF-\u07F5\u07F7-\u09F1\u09F4-\u09F9\u09FC-\u0AF0\u0AF2-\u0B6F\u0B71-\u0BF2\u0BFB-\u0C7E\u0C80-\u0D78\u0D7A-\u0E3E\u0E40-\u0F00\u0F04-\u0F12\u0F14\u0F18\u0F19\u0F20-\u0F33\u0F35\u0F37\u0F39-\u0FBD\u0FC6\u0FCD\u0FD0-\u0FD4\u0FD9-\u109D\u10A0-\u138F\u139A-\u17DA\u17DC-\u193F\u1941-\u19DD\u1A00-\u1B60\u1B6B-\u1B73\u1B7D-\u1FBC\u1FBE\u1FC2-\u1FCC\u1FD0-\u1FDC\u1FE0-\u1FEC\u1FF0-\u1FFC\u1FFF-\u2043\u2045-\u2051\u2053-\u2079\u207D-\u2089\u208D-\u209F\u20BE-\u20FF\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u218F\u2308-\u230B\u2329\u232A\u23FB-\u23FF\u2427-\u243F\u244B-\u249B\u24EA-\u24FF\u2768-\u2793\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2B74\u2B75\u2B96\u2B97\u2BBA-\u2BBC\u2BC9\u2BD2-\u2CE4\u2CEB-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u3003\u3005-\u3011\u3014-\u301F\u3021-\u3035\u3038-\u303D\u3040-\u309A\u309D-\u318F\u3192-\u3195\u31A0-\u31BF\u31E4-\u31FF\u321F-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u32FF\u3400-\u4DBF\u4E00-\uA48F\uA4C7-\uA6FF\uA717-\uA71F\uA722-\uA788\uA78B-\uA827\uA82C-\uA835\uA83A-\uAA76\uAA7A-\uAB5A\uAB5C-\uD7FF\uDC00-\uFB28\uFB2A-\uFBB1\uFBC2-\uFDFB\uFDFE-\uFE61\uFE63\uFE67\uFE68\uFE6A-\uFF03\uFF05-\uFF0A\uFF0C-\uFF1B\uFF1F-\uFF3D\uFF3F\uFF41-\uFF5B\uFF5D\uFF5F-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF]|\uD800[\uDC00-\uDD36\uDD40-\uDD78\uDD8A\uDD8B\uDD8D-\uDD8F\uDD9C-\uDD9F\uDDA1-\uDDCF\uDDFD-\uDFFF]|[\uD801\uD803-\uD819\uD81B-\uD82E\uD830-\uD833\uD836-\uD83A\uD83F-\uDBFF][\uDC00-\uDFFF]|\uD802[\uDC00-\uDC76\uDC79-\uDEC7\uDEC9-\uDFFF]|\uD81A[\uDC00-\uDF3B\uDF40-\uDF44\uDF46-\uDFFF]|\uD82F[\uDC00-\uDC9B\uDC9D-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDD65-\uDD69\uDD6D-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDDDE-\uDDFF\uDE42-\uDE44\uDE46-\uDEFF\uDF57-\uDFFF]|\uD835[\uDC00-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFFF]|\uD83B[\uDC00-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDD0F\uDD2F\uDD6C-\uDD6F\uDD9B-\uDDE5\uDE03-\uDE0F\uDE3B-\uDE3F\uDE49-\uDE4F\uDE52-\uDEFF\uDF2D-\uDF2F\uDF7E\uDF7F\uDFCF-\uDFD3\uDFF8-\uDFFF]|\uD83D[\uDCFF\uDD4B-\uDD4F\uDD7A\uDDA4\uDE43\uDE44\uDED0-\uDEDF\uDEED-\uDEEF\uDEF4-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDFFF]|[\uD800-\uDBFF]/; + + + + +/** + * symbolProperties( currency, cldr ) + * + * Return pattern replacing `¤` with the appropriate currency symbol literal. + */ +var currencySymbolProperties = function( currency, cldr, options ) { + var currencySpacing, pattern, + regexp = { + "[:digit:]": /\d/, + "[:^S:]": regexpNotS + }, + symbol = cldr.main([ + "numbers/currencies", + currency, + "symbol" + ]); + + currencySpacing = [ "beforeCurrency", "afterCurrency" ].map(function( position ) { + return cldr.main([ + "numbers", + "currencyFormats-numberSystem-" + numberNumberingSystem( cldr ), + "currencySpacing", + position + ]); + }); + + pattern = cldr.main([ + "numbers", + "currencyFormats-numberSystem-" + numberNumberingSystem( cldr ), + options.style === "accounting" ? "accounting" : "standard" + ]); + + pattern = + + // The number of decimal places and the rounding for each currency is not locale-specific. + // Those values are overridden by Supplemental Currency Data. + currencySupplementalOverride( currency, pattern, cldr ) + + // Replace "¤" (\u00A4) with the appropriate symbol literal. + .split( ";" ).map(function( pattern ) { + + return pattern.split( "\u00A4" ).map(function( part, i ) { + var currencyMatch = regexp[ currencySpacing[ i ].currencyMatch ], + surroundingMatch = regexp[ currencySpacing[ i ].surroundingMatch ], + insertBetween = ""; + + // For currencyMatch and surroundingMatch definitions, read [1]. + // When i === 0, beforeCurrency is being handled. Otherwise, afterCurrency. + // 1: http://www.unicode.org/reports/tr35/tr35-numbers.html#Currencies + currencyMatch = currencyMatch.test( symbol.charAt( i ? symbol.length - 1 : 0 ) ); + surroundingMatch = surroundingMatch.test( + part.charAt( i ? 0 : part.length - 1 ).replace( /[#@,.]/g, "0" ) + ); + + if ( currencyMatch && part && surroundingMatch ) { + insertBetween = currencySpacing[ i ].insertBetween; + } + + return ( i ? insertBetween : "" ) + part + ( i ? "" : insertBetween ); + }).join( "'" + symbol + "'" ); + }).join( ";" ); + + return { + pattern: pattern + }; +}; + + + + +/** + * objectOmit( object, keys ) + * + * Return a copy of the object, filtered to omit the blacklisted key or array of keys. + */ +var objectOmit = function( object, keys ) { + var key, + copy = {}; + + keys = alwaysArray( keys ); + + for ( key in object ) { + if ( keys.indexOf( key ) === -1 ) { + copy[ key ] = object[ key ]; + } + } + + return copy; +}; + + + + +function validateRequiredCldr( path, value ) { + validateCldr( path, value, { + skip: [ /supplemental\/currencyData\/fractions\/[A-Za-z]{3}$/ ] + }); +} + +/** + * .currencyFormatter( currency [, options] ) + * + * @currency [String] 3-letter currency code as defined by ISO 4217. + * + * @options [Object]: + * - style: [String] "symbol" (default), "accounting", "code" or "name". + * - see also number/format options. + * + * Return a function that formats a currency according to the given options and default/instance + * locale. + */ +Globalize.currencyFormatter = +Globalize.prototype.currencyFormatter = function( currency, options ) { + var args, cldr, numberFormatter, pluralGenerator, properties, returnFn, style; + + validateParameterPresence( currency, "currency" ); + validateParameterTypeCurrency( currency, "currency" ); + + validateParameterTypePlainObject( options, "options" ); + + cldr = this.cldr; + options = options || {}; + + args = [ currency, options ]; + style = options.style || "symbol"; + + validateDefaultLocale( cldr ); + + // Get properties given style ("symbol" default, "code" or "name"). + cldr.on( "get", validateRequiredCldr ); + properties = ({ + accounting: currencySymbolProperties, + code: currencyCodeProperties, + name: currencyNameProperties, + symbol: currencySymbolProperties + }[ style ] )( currency, cldr, options ); + cldr.off( "get", validateRequiredCldr ); + + // options = options minus style, plus raw pattern. + options = objectOmit( options, "style" ); + options.raw = properties.pattern; + + // Return formatter when style is "symbol" or "accounting". + if ( style === "symbol" || style === "accounting" ) { + numberFormatter = this.numberFormatter( options ); + + returnFn = currencyFormatterFn( numberFormatter ); + + runtimeBind( args, cldr, returnFn, [ numberFormatter ] ); + + // Return formatter when style is "code" or "name". + } else { + numberFormatter = this.numberFormatter( options ); + pluralGenerator = this.pluralGenerator(); + + returnFn = currencyFormatterFn( numberFormatter, pluralGenerator, properties ); + + runtimeBind( args, cldr, returnFn, [ numberFormatter, pluralGenerator, properties ] ); + } + + return returnFn; +}; + +/** + * .currencyParser( currency [, options] ) + * + * @currency [String] 3-letter currency code as defined by ISO 4217. + * + * @options [Object] see currencyFormatter. + * + * Return the currency parser according to the given options and the default/instance locale. + */ +Globalize.currencyParser = +Globalize.prototype.currencyParser = function( /* currency, options */ ) { + + // TODO implement parser. + +}; + +/** + * .formatCurrency( value, currency [, options] ) + * + * @value [Number] number to be formatted. + * + * @currency [String] 3-letter currency code as defined by ISO 4217. + * + * @options [Object] see currencyFormatter. + * + * Format a currency according to the given options and the default/instance locale. + */ +Globalize.formatCurrency = +Globalize.prototype.formatCurrency = function( value, currency, options ) { + validateParameterPresence( value, "value" ); + validateParameterTypeNumber( value, "value" ); + + return this.currencyFormatter( currency, options )( value ); +}; + +/** + * .parseCurrency( value, currency [, options] ) + * + * @value [String] + * + * @currency [String] 3-letter currency code as defined by ISO 4217. + * + * @options [Object]: See currencyFormatter. + * + * Return the parsed currency or NaN when value is invalid. + */ +Globalize.parseCurrency = +Globalize.prototype.parseCurrency = function( /* value, currency, options */ ) { +}; + +return Globalize; + + + + +})); diff --git a/Web/Scripts/globalize/date.js b/Web/Scripts/globalize/date.js new file mode 100644 index 0000000..4fa68ce --- /dev/null +++ b/Web/Scripts/globalize/date.js @@ -0,0 +1,1923 @@ +/** + * Globalize v1.1.1 + * + * http://github.com/jquery/globalize + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-02-04T12:01Z + */ +/*! + * Globalize v1.1.1 2016-02-04T12:01Z Released under the MIT license + * http://git.io/TrdQbw + */ +(function( root, factory ) { + + // UMD returnExports + if ( typeof define === "function" && define.amd ) { + + // AMD + define([ + "cldr", + "../globalize", + "./number", + "cldr/event", + "cldr/supplemental" + ], factory ); + } else if ( typeof exports === "object" ) { + + // Node, CommonJS + module.exports = factory( require( "cldrjs" ), require( "globalize" ) ); + } else { + + // Extend global + factory( root.Cldr, root.Globalize ); + } +}(this, function( Cldr, Globalize ) { + +var createError = Globalize._createError, + createErrorUnsupportedFeature = Globalize._createErrorUnsupportedFeature, + formatMessage = Globalize._formatMessage, + numberSymbol = Globalize._numberSymbol, + regexpEscape = Globalize._regexpEscape, + runtimeBind = Globalize._runtimeBind, + stringPad = Globalize._stringPad, + validateCldr = Globalize._validateCldr, + validateDefaultLocale = Globalize._validateDefaultLocale, + validateParameterPresence = Globalize._validateParameterPresence, + validateParameterType = Globalize._validateParameterType, + validateParameterTypePlainObject = Globalize._validateParameterTypePlainObject, + validateParameterTypeString = Globalize._validateParameterTypeString; + + +var validateParameterTypeDate = function( value, name ) { + validateParameterType( value, name, value === undefined || value instanceof Date, "Date" ); +}; + + + + +var createErrorInvalidParameterValue = function( name, value ) { + return createError( "E_INVALID_PAR_VALUE", "Invalid `{name}` value ({value}).", { + name: name, + value: value + }); +}; + + + + +/** + * expandPattern( options, cldr ) + * + * @options [Object] if String, it's considered a skeleton. Object accepts: + * - skeleton: [String] lookup availableFormat; + * - date: [String] ( "full" | "long" | "medium" | "short" ); + * - time: [String] ( "full" | "long" | "medium" | "short" ); + * - datetime: [String] ( "full" | "long" | "medium" | "short" ); + * - raw: [String] For more info see datetime/format.js. + * + * @cldr [Cldr instance]. + * + * Return the corresponding pattern. + * Eg for "en": + * - "GyMMMd" returns "MMM d, y G"; + * - { skeleton: "GyMMMd" } returns "MMM d, y G"; + * - { date: "full" } returns "EEEE, MMMM d, y"; + * - { time: "full" } returns "h:mm:ss a zzzz"; + * - { datetime: "full" } returns "EEEE, MMMM d, y 'at' h:mm:ss a zzzz"; + * - { raw: "dd/mm" } returns "dd/mm"; + */ + +var dateExpandPattern = function( options, cldr ) { + var dateSkeleton, result, skeleton, timeSkeleton, type; + + function combineDateTime( type, datePattern, timePattern ) { + return formatMessage( + cldr.main([ + "dates/calendars/gregorian/dateTimeFormats", + type + ]), + [ timePattern, datePattern ] + ); + } + + switch ( true ) { + case "skeleton" in options: + skeleton = options.skeleton; + result = cldr.main([ + "dates/calendars/gregorian/dateTimeFormats/availableFormats", + skeleton + ]); + if ( !result ) { + timeSkeleton = skeleton.split( /[^hHKkmsSAzZOvVXx]/ ).slice( -1 )[ 0 ]; + dateSkeleton = skeleton.split( /[^GyYuUrQqMLlwWdDFgEec]/ )[ 0 ]; + if ( /(MMMM|LLLL).*[Ec]/.test( dateSkeleton ) ) { + type = "full"; + } else if ( /MMMM/g.test( dateSkeleton ) ) { + type = "long"; + } else if ( /MMM/g.test( dateSkeleton ) || /LLL/g.test( dateSkeleton ) ) { + type = "medium"; + } else { + type = "short"; + } + result = combineDateTime( type, + cldr.main([ + "dates/calendars/gregorian/dateTimeFormats/availableFormats", + dateSkeleton + ]), + cldr.main([ + "dates/calendars/gregorian/dateTimeFormats/availableFormats", + timeSkeleton + ]) + ); + } + break; + + case "date" in options: + case "time" in options: + result = cldr.main([ + "dates/calendars/gregorian", + "date" in options ? "dateFormats" : "timeFormats", + ( options.date || options.time ) + ]); + break; + + case "datetime" in options: + result = combineDateTime( options.datetime, + cldr.main([ "dates/calendars/gregorian/dateFormats", options.datetime ]), + cldr.main([ "dates/calendars/gregorian/timeFormats", options.datetime ]) + ); + break; + + case "raw" in options: + result = options.raw; + break; + + default: + throw createErrorInvalidParameterValue({ + name: "options", + value: options + }); + } + + return result; +}; + + + + +/** + * dayOfWeek( date, firstDay ) + * + * @date + * + * @firstDay the result of `dateFirstDayOfWeek( cldr )` + * + * Return the day of the week normalized by the territory's firstDay [0-6]. + * Eg for "mon": + * - return 0 if territory is GB, or BR, or DE, or FR (week starts on "mon"); + * - return 1 if territory is US (week starts on "sun"); + * - return 2 if territory is EG (week starts on "sat"); + */ +var dateDayOfWeek = function( date, firstDay ) { + return ( date.getDay() - firstDay + 7 ) % 7; +}; + + + + +/** + * distanceInDays( from, to ) + * + * Return the distance in days between from and to Dates. + */ +var dateDistanceInDays = function( from, to ) { + var inDays = 864e5; + return ( to.getTime() - from.getTime() ) / inDays; +}; + + + + +/** + * startOf changes the input to the beginning of the given unit. + * + * For example, starting at the start of a day, resets hours, minutes + * seconds and milliseconds to 0. Starting at the month does the same, but + * also sets the date to 1. + * + * Returns the modified date + */ +var dateStartOf = function( date, unit ) { + date = new Date( date.getTime() ); + switch ( unit ) { + case "year": + date.setMonth( 0 ); + /* falls through */ + case "month": + date.setDate( 1 ); + /* falls through */ + case "day": + date.setHours( 0 ); + /* falls through */ + case "hour": + date.setMinutes( 0 ); + /* falls through */ + case "minute": + date.setSeconds( 0 ); + /* falls through */ + case "second": + date.setMilliseconds( 0 ); + } + return date; +}; + + + + +/** + * dayOfYear + * + * Return the distance in days of the date to the begin of the year [0-d]. + */ +var dateDayOfYear = function( date ) { + return Math.floor( dateDistanceInDays( dateStartOf( date, "year" ), date ) ); +}; + + + + +/** + * millisecondsInDay + */ +var dateMillisecondsInDay = function( date ) { + + // TODO Handle daylight savings discontinuities + return date - dateStartOf( date, "day" ); +}; + + + + +var datePatternRe = ( /([a-z])\1*|'([^']|'')+'|''|./ig ); + + + + +/** + * hourFormat( date, format, timeSeparator, formatNumber ) + * + * Return date's timezone offset according to the format passed. + * Eg for format when timezone offset is 180: + * - "+H;-H": -3 + * - "+HHmm;-HHmm": -0300 + * - "+HH:mm;-HH:mm": -03:00 + */ +var dateTimezoneHourFormat = function( date, format, timeSeparator, formatNumber ) { + var absOffset, + offset = date.getTimezoneOffset(); + + absOffset = Math.abs( offset ); + formatNumber = formatNumber || { + 1: function( value ) { + return stringPad( value, 1 ); + }, + 2: function( value ) { + return stringPad( value, 2 ); + } + }; + + return format + + // Pick the correct sign side (+ or -). + .split( ";" )[ offset > 0 ? 1 : 0 ] + + // Localize time separator + .replace( ":", timeSeparator ) + + // Update hours offset. + .replace( /HH?/, function( match ) { + return formatNumber[ match.length ]( Math.floor( absOffset / 60 ) ); + }) + + // Update minutes offset and return. + .replace( /mm/, function() { + return formatNumber[ 2 ]( absOffset % 60 ); + }); +}; + + + + +var dateWeekDays = [ "sun", "mon", "tue", "wed", "thu", "fri", "sat" ]; + + + + +/** + * format( date, properties ) + * + * @date [Date instance]. + * + * @properties + * + * TODO Support other calendar types. + * + * Disclosure: this function borrows excerpts of dojo/date/locale. + */ +var dateFormat = function( date, numberFormatters, properties ) { + var timeSeparator = properties.timeSeparator; + + return properties.pattern.replace( datePatternRe, function( current ) { + var ret, + chr = current.charAt( 0 ), + length = current.length; + + if ( chr === "j" ) { + + // Locale preferred hHKk. + // http://www.unicode.org/reports/tr35/tr35-dates.html#Time_Data + chr = properties.preferredTime; + } + + if ( chr === "Z" ) { + + // Z..ZZZ: same as "xxxx". + if ( length < 4 ) { + chr = "x"; + length = 4; + + // ZZZZ: same as "OOOO". + } else if ( length < 5 ) { + chr = "O"; + length = 4; + + // ZZZZZ: same as "XXXXX" + } else { + chr = "X"; + length = 5; + } + } + + switch ( chr ) { + + // Era + case "G": + ret = properties.eras[ date.getFullYear() < 0 ? 0 : 1 ]; + break; + + // Year + case "y": + + // Plain year. + // The length specifies the padding, but for two letters it also specifies the + // maximum length. + ret = date.getFullYear(); + if ( length === 2 ) { + ret = String( ret ); + ret = +ret.substr( ret.length - 2 ); + } + break; + + case "Y": + + // Year in "Week of Year" + // The length specifies the padding, but for two letters it also specifies the + // maximum length. + // yearInWeekofYear = date + DaysInAWeek - (dayOfWeek - firstDay) - minDays + ret = new Date( date.getTime() ); + ret.setDate( + ret.getDate() + 7 - + dateDayOfWeek( date, properties.firstDay ) - + properties.firstDay - + properties.minDays + ); + ret = ret.getFullYear(); + if ( length === 2 ) { + ret = String( ret ); + ret = +ret.substr( ret.length - 2 ); + } + break; + + // Quarter + case "Q": + case "q": + ret = Math.ceil( ( date.getMonth() + 1 ) / 3 ); + if ( length > 2 ) { + ret = properties.quarters[ chr ][ length ][ ret ]; + } + break; + + // Month + case "M": + case "L": + ret = date.getMonth() + 1; + if ( length > 2 ) { + ret = properties.months[ chr ][ length ][ ret ]; + } + break; + + // Week + case "w": + + // Week of Year. + // woy = ceil( ( doy + dow of 1/1 ) / 7 ) - minDaysStuff ? 1 : 0. + // TODO should pad on ww? Not documented, but I guess so. + ret = dateDayOfWeek( dateStartOf( date, "year" ), properties.firstDay ); + ret = Math.ceil( ( dateDayOfYear( date ) + ret ) / 7 ) - + ( 7 - ret >= properties.minDays ? 0 : 1 ); + break; + + case "W": + + // Week of Month. + // wom = ceil( ( dom + dow of `1/month` ) / 7 ) - minDaysStuff ? 1 : 0. + ret = dateDayOfWeek( dateStartOf( date, "month" ), properties.firstDay ); + ret = Math.ceil( ( date.getDate() + ret ) / 7 ) - + ( 7 - ret >= properties.minDays ? 0 : 1 ); + break; + + // Day + case "d": + ret = date.getDate(); + break; + + case "D": + ret = dateDayOfYear( date ) + 1; + break; + + case "F": + + // Day of Week in month. eg. 2nd Wed in July. + ret = Math.floor( date.getDate() / 7 ) + 1; + break; + + // Week day + case "e": + case "c": + if ( length <= 2 ) { + + // Range is [1-7] (deduced by example provided on documentation) + // TODO Should pad with zeros (not specified in the docs)? + ret = dateDayOfWeek( date, properties.firstDay ) + 1; + break; + } + + /* falls through */ + case "E": + ret = dateWeekDays[ date.getDay() ]; + ret = properties.days[ chr ][ length ][ ret ]; + break; + + // Period (AM or PM) + case "a": + ret = properties.dayPeriods[ date.getHours() < 12 ? "am" : "pm" ]; + break; + + // Hour + case "h": // 1-12 + ret = ( date.getHours() % 12 ) || 12; + break; + + case "H": // 0-23 + ret = date.getHours(); + break; + + case "K": // 0-11 + ret = date.getHours() % 12; + break; + + case "k": // 1-24 + ret = date.getHours() || 24; + break; + + // Minute + case "m": + ret = date.getMinutes(); + break; + + // Second + case "s": + ret = date.getSeconds(); + break; + + case "S": + ret = Math.round( date.getMilliseconds() * Math.pow( 10, length - 3 ) ); + break; + + case "A": + ret = Math.round( dateMillisecondsInDay( date ) * Math.pow( 10, length - 3 ) ); + break; + + // Zone + case "z": + case "O": + + // O: "{gmtFormat}+H;{gmtFormat}-H" or "{gmtZeroFormat}", eg. "GMT-8" or "GMT". + // OOOO: "{gmtFormat}{hourFormat}" or "{gmtZeroFormat}", eg. "GMT-08:00" or "GMT". + if ( date.getTimezoneOffset() === 0 ) { + ret = properties.gmtZeroFormat; + } else { + ret = dateTimezoneHourFormat( + date, + length < 4 ? "+H;-H" : properties.tzLongHourFormat, + timeSeparator, + numberFormatters + ); + ret = properties.gmtFormat.replace( /\{0\}/, ret ); + } + break; + + case "X": + + // Same as x*, except it uses "Z" for zero offset. + if ( date.getTimezoneOffset() === 0 ) { + ret = "Z"; + break; + } + + /* falls through */ + case "x": + + // x: hourFormat("+HH;-HH") + // xx or xxxx: hourFormat("+HHmm;-HHmm") + // xxx or xxxxx: hourFormat("+HH:mm;-HH:mm") + ret = length === 1 ? "+HH;-HH" : ( length % 2 ? "+HH:mm;-HH:mm" : "+HHmm;-HHmm" ); + ret = dateTimezoneHourFormat( date, ret, ":" ); + break; + + // timeSeparator + case ":": + ret = timeSeparator; + break; + + // ' literals. + case "'": + current = current.replace( /''/, "'" ); + if ( length > 2 ) { + current = current.slice( 1, -1 ); + } + ret = current; + break; + + // Anything else is considered a literal, including [ ,:/.@#], chinese, japonese, and + // arabic characters. + default: + ret = current; + } + if ( typeof ret === "number" ) { + ret = numberFormatters[ length ]( ret ); + } + return ret; + }); +}; + + + + +var dateFormatterFn = function( numberFormatters, properties ) { + return function dateFormatter( value ) { + validateParameterPresence( value, "value" ); + validateParameterTypeDate( value, "value" ); + + return dateFormat( value, numberFormatters, properties ); + }; + +}; + + + + +/** + * firstDayOfWeek + */ +var dateFirstDayOfWeek = function( cldr ) { + return dateWeekDays.indexOf( cldr.supplemental.weekData.firstDay() ); +}; + + + + +/** + * properties( pattern, cldr ) + * + * @pattern [String] raw pattern. + * ref: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns + * + * @cldr [Cldr instance]. + * + * Return the properties given the pattern and cldr. + * + * TODO Support other calendar types. + */ +var dateFormatProperties = function( pattern, cldr ) { + var properties = { + numberFormatters: {}, + pattern: pattern, + timeSeparator: numberSymbol( "timeSeparator", cldr ) + }, + widths = [ "abbreviated", "wide", "narrow" ]; + + function setNumberFormatterPattern( pad ) { + properties.numberFormatters[ pad ] = stringPad( "", pad ); + } + + pattern.replace( datePatternRe, function( current ) { + var formatNumber, + chr = current.charAt( 0 ), + length = current.length; + + if ( chr === "j" ) { + + // Locale preferred hHKk. + // http://www.unicode.org/reports/tr35/tr35-dates.html#Time_Data + properties.preferredTime = chr = cldr.supplemental.timeData.preferred(); + } + + // ZZZZ: same as "OOOO". + if ( chr === "Z" && length === 4 ) { + chr = "O"; + length = 4; + } + + switch ( chr ) { + + // Era + case "G": + properties.eras = cldr.main([ + "dates/calendars/gregorian/eras", + length <= 3 ? "eraAbbr" : ( length === 4 ? "eraNames" : "eraNarrow" ) + ]); + break; + + // Year + case "y": + + // Plain year. + formatNumber = true; + break; + + case "Y": + + // Year in "Week of Year" + properties.firstDay = dateFirstDayOfWeek( cldr ); + properties.minDays = cldr.supplemental.weekData.minDays(); + formatNumber = true; + break; + + case "u": // Extended year. Need to be implemented. + case "U": // Cyclic year name. Need to be implemented. + throw createErrorUnsupportedFeature({ + feature: "year pattern `" + chr + "`" + }); + + // Quarter + case "Q": + case "q": + if ( length > 2 ) { + if ( !properties.quarters ) { + properties.quarters = {}; + } + if ( !properties.quarters[ chr ] ) { + properties.quarters[ chr ] = {}; + } + properties.quarters[ chr ][ length ] = cldr.main([ + "dates/calendars/gregorian/quarters", + chr === "Q" ? "format" : "stand-alone", + widths[ length - 3 ] + ]); + } else { + formatNumber = true; + } + break; + + // Month + case "M": + case "L": + if ( length > 2 ) { + if ( !properties.months ) { + properties.months = {}; + } + if ( !properties.months[ chr ] ) { + properties.months[ chr ] = {}; + } + properties.months[ chr ][ length ] = cldr.main([ + "dates/calendars/gregorian/months", + chr === "M" ? "format" : "stand-alone", + widths[ length - 3 ] + ]); + } else { + formatNumber = true; + } + break; + + // Week - Week of Year (w) or Week of Month (W). + case "w": + case "W": + properties.firstDay = dateFirstDayOfWeek( cldr ); + properties.minDays = cldr.supplemental.weekData.minDays(); + formatNumber = true; + break; + + // Day + case "d": + case "D": + case "F": + formatNumber = true; + break; + + case "g": + + // Modified Julian day. Need to be implemented. + throw createErrorUnsupportedFeature({ + feature: "Julian day pattern `g`" + }); + + // Week day + case "e": + case "c": + if ( length <= 2 ) { + properties.firstDay = dateFirstDayOfWeek( cldr ); + formatNumber = true; + break; + } + + /* falls through */ + case "E": + if ( !properties.days ) { + properties.days = {}; + } + if ( !properties.days[ chr ] ) { + properties.days[ chr ] = {}; + } + if ( length === 6 ) { + + // If short day names are not explicitly specified, abbreviated day names are + // used instead. + // http://www.unicode.org/reports/tr35/tr35-dates.html#months_days_quarters_eras + // http://unicode.org/cldr/trac/ticket/6790 + properties.days[ chr ][ length ] = cldr.main([ + "dates/calendars/gregorian/days", + chr === "c" ? "stand-alone" : "format", + "short" + ]) || cldr.main([ + "dates/calendars/gregorian/days", + chr === "c" ? "stand-alone" : "format", + "abbreviated" + ]); + } else { + properties.days[ chr ][ length ] = cldr.main([ + "dates/calendars/gregorian/days", + chr === "c" ? "stand-alone" : "format", + widths[ length < 3 ? 0 : length - 3 ] + ]); + } + break; + + // Period (AM or PM) + case "a": + properties.dayPeriods = cldr.main( + "dates/calendars/gregorian/dayPeriods/format/wide" + ); + break; + + // Hour + case "h": // 1-12 + case "H": // 0-23 + case "K": // 0-11 + case "k": // 1-24 + + // Minute + case "m": + + // Second + case "s": + case "S": + case "A": + formatNumber = true; + break; + + // Zone + case "z": + case "O": + + // O: "{gmtFormat}+H;{gmtFormat}-H" or "{gmtZeroFormat}", eg. "GMT-8" or "GMT". + // OOOO: "{gmtFormat}{hourFormat}" or "{gmtZeroFormat}", eg. "GMT-08:00" or "GMT". + properties.gmtFormat = cldr.main( "dates/timeZoneNames/gmtFormat" ); + properties.gmtZeroFormat = cldr.main( "dates/timeZoneNames/gmtZeroFormat" ); + properties.tzLongHourFormat = cldr.main( "dates/timeZoneNames/hourFormat" ); + + /* falls through */ + case "Z": + case "X": + case "x": + setNumberFormatterPattern( 1 ); + setNumberFormatterPattern( 2 ); + break; + + case "v": + case "V": + throw createErrorUnsupportedFeature({ + feature: "timezone pattern `" + chr + "`" + }); + } + + if ( formatNumber ) { + setNumberFormatterPattern( length ); + } + }); + + return properties; +}; + + + + +/** + * isLeapYear( year ) + * + * @year [Number] + * + * Returns an indication whether the specified year is a leap year. + */ +var dateIsLeapYear = function( year ) { + return new Date( year, 1, 29 ).getMonth() === 1; +}; + + + + +/** + * lastDayOfMonth( date ) + * + * @date [Date] + * + * Return the last day of the given date's month + */ +var dateLastDayOfMonth = function( date ) { + return new Date( date.getFullYear(), date.getMonth() + 1, 0 ).getDate(); +}; + + + + +/** + * Differently from native date.setDate(), this function returns a date whose + * day remains inside the month boundaries. For example: + * + * setDate( FebDate, 31 ): a "Feb 28" date. + * setDate( SepDate, 31 ): a "Sep 30" date. + */ +var dateSetDate = function( date, day ) { + var lastDay = new Date( date.getFullYear(), date.getMonth() + 1, 0 ).getDate(); + + date.setDate( day < 1 ? 1 : day < lastDay ? day : lastDay ); +}; + + + + +/** + * Differently from native date.setMonth(), this function adjusts date if + * needed, so final month is always the one set. + * + * setMonth( Jan31Date, 1 ): a "Feb 28" date. + * setDate( Jan31Date, 8 ): a "Sep 30" date. + */ +var dateSetMonth = function( date, month ) { + var originalDate = date.getDate(); + + date.setDate( 1 ); + date.setMonth( month ); + dateSetDate( date, originalDate ); +}; + + + + +var outOfRange = function( value, low, high ) { + return value < low || value > high; +}; + + + + +/** + * parse( value, tokens, properties ) + * + * @value [String] string date. + * + * @tokens [Object] tokens returned by date/tokenizer. + * + * @properties [Object] output returned by date/tokenizer-properties. + * + * ref: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns + */ +var dateParse = function( value, tokens, properties ) { + var amPm, day, daysOfYear, month, era, hour, hour12, timezoneOffset, valid, + YEAR = 0, + MONTH = 1, + DAY = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECONDS = 6, + date = new Date(), + truncateAt = [], + units = [ "year", "month", "day", "hour", "minute", "second", "milliseconds" ]; + + if ( !tokens.length ) { + return null; + } + + valid = tokens.every(function( token ) { + var century, chr, value, length; + + if ( token.type === "literal" ) { + + // continue + return true; + } + + chr = token.type.charAt( 0 ); + length = token.type.length; + + if ( chr === "j" ) { + + // Locale preferred hHKk. + // http://www.unicode.org/reports/tr35/tr35-dates.html#Time_Data + chr = properties.preferredTimeData; + } + + switch ( chr ) { + + // Era + case "G": + truncateAt.push( YEAR ); + era = +token.value; + break; + + // Year + case "y": + value = token.value; + if ( length === 2 ) { + if ( outOfRange( value, 0, 99 ) ) { + return false; + } + + // mimic dojo/date/locale: choose century to apply, according to a sliding + // window of 80 years before and 20 years after present year. + century = Math.floor( date.getFullYear() / 100 ) * 100; + value += century; + if ( value > date.getFullYear() + 20 ) { + value -= 100; + } + } + date.setFullYear( value ); + truncateAt.push( YEAR ); + break; + + case "Y": // Year in "Week of Year" + throw createErrorUnsupportedFeature({ + feature: "year pattern `" + chr + "`" + }); + + // Quarter (skip) + case "Q": + case "q": + break; + + // Month + case "M": + case "L": + if ( length <= 2 ) { + value = token.value; + } else { + value = +token.value; + } + if ( outOfRange( value, 1, 12 ) ) { + return false; + } + + // Setting the month later so that we have the correct year and can determine + // the correct last day of February in case of leap year. + month = value; + truncateAt.push( MONTH ); + break; + + // Week (skip) + case "w": // Week of Year. + case "W": // Week of Month. + break; + + // Day + case "d": + day = token.value; + truncateAt.push( DAY ); + break; + + case "D": + daysOfYear = token.value; + truncateAt.push( DAY ); + break; + + case "F": + + // Day of Week in month. eg. 2nd Wed in July. + // Skip + break; + + // Week day + case "e": + case "c": + case "E": + + // Skip. + // value = arrayIndexOf( dateWeekDays, token.value ); + break; + + // Period (AM or PM) + case "a": + amPm = token.value; + break; + + // Hour + case "h": // 1-12 + value = token.value; + if ( outOfRange( value, 1, 12 ) ) { + return false; + } + hour = hour12 = true; + date.setHours( value === 12 ? 0 : value ); + truncateAt.push( HOUR ); + break; + + case "K": // 0-11 + value = token.value; + if ( outOfRange( value, 0, 11 ) ) { + return false; + } + hour = hour12 = true; + date.setHours( value ); + truncateAt.push( HOUR ); + break; + + case "k": // 1-24 + value = token.value; + if ( outOfRange( value, 1, 24 ) ) { + return false; + } + hour = true; + date.setHours( value === 24 ? 0 : value ); + truncateAt.push( HOUR ); + break; + + case "H": // 0-23 + value = token.value; + if ( outOfRange( value, 0, 23 ) ) { + return false; + } + hour = true; + date.setHours( value ); + truncateAt.push( HOUR ); + break; + + // Minute + case "m": + value = token.value; + if ( outOfRange( value, 0, 59 ) ) { + return false; + } + date.setMinutes( value ); + truncateAt.push( MINUTE ); + break; + + // Second + case "s": + value = token.value; + if ( outOfRange( value, 0, 59 ) ) { + return false; + } + date.setSeconds( value ); + truncateAt.push( SECOND ); + break; + + case "A": + date.setHours( 0 ); + date.setMinutes( 0 ); + date.setSeconds( 0 ); + + /* falls through */ + case "S": + value = Math.round( token.value * Math.pow( 10, 3 - length ) ); + date.setMilliseconds( value ); + truncateAt.push( MILLISECONDS ); + break; + + // Zone + case "Z": + case "z": + case "O": + case "X": + case "x": + timezoneOffset = token.value - date.getTimezoneOffset(); + break; + } + + return true; + }); + + if ( !valid ) { + return null; + } + + // 12-hour format needs AM or PM, 24-hour format doesn't, ie. return null + // if amPm && !hour12 || !amPm && hour12. + if ( hour && !( !amPm ^ hour12 ) ) { + return null; + } + + if ( era === 0 ) { + + // 1 BC = year 0 + date.setFullYear( date.getFullYear() * -1 + 1 ); + } + + if ( month !== undefined ) { + dateSetMonth( date, month - 1 ); + } + + if ( day !== undefined ) { + if ( outOfRange( day, 1, dateLastDayOfMonth( date ) ) ) { + return null; + } + date.setDate( day ); + } else if ( daysOfYear !== undefined ) { + if ( outOfRange( daysOfYear, 1, dateIsLeapYear( date.getFullYear() ) ? 366 : 365 ) ) { + return null; + } + date.setMonth( 0 ); + date.setDate( daysOfYear ); + } + + if ( hour12 && amPm === "pm" ) { + date.setHours( date.getHours() + 12 ); + } + + if ( timezoneOffset ) { + date.setMinutes( date.getMinutes() + timezoneOffset ); + } + + // Truncate date at the most precise unit defined. Eg. + // If value is "12/31", and pattern is "MM/dd": + // => new Date( , 12, 31, 0, 0, 0, 0 ); + truncateAt = Math.max.apply( null, truncateAt ); + date = dateStartOf( date, units[ truncateAt ] ); + + return date; +}; + + + + +/** + * Generated by: + * + * regenerate().add( require( "unicode-7.0.0/categories/N/symbols" ) ).toString(); + * + * https://github.com/mathiasbynens/regenerate + * https://github.com/mathiasbynens/unicode-7.0.0 + */ +var regexpN = /[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D66-\u0D75\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDD16-\uDD1B\uDE40-\uDE47\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDE60-\uDE7E]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9]|\uD806[\uDCE0-\uDCF2]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59\uDF5B-\uDF61]|\uD834[\uDF60-\uDF71]|\uD835[\uDFCE-\uDFFF]|\uD83A[\uDCC7-\uDCCF]|\uD83C[\uDD00-\uDD0C]/; + + + + +/** + * tokenizer( value, pattern, properties ) + * + * @value [String] string date. + * + * @properties [Object] output returned by date/tokenizer-properties. + * + * Returns an Array of tokens, eg. value "5 o'clock PM", pattern "h 'o''clock' a": + * [{ + * type: "h", + * lexeme: "5" + * }, { + * type: "literal", + * lexeme: " " + * }, { + * type: "literal", + * lexeme: "o'clock" + * }, { + * type: "literal", + * lexeme: " " + * }, { + * type: "a", + * lexeme: "PM", + * value: "pm" + * }] + * + * OBS: lexeme's are always String and may return invalid ranges depending of the token type. + * Eg. "99" for month number. + * + * Return an empty Array when not successfully parsed. + */ +var dateTokenizer = function( value, numberParser, properties ) { + var valid, + timeSeparator = properties.timeSeparator, + tokens = [], + widths = [ "abbreviated", "wide", "narrow" ]; + + valid = properties.pattern.match( datePatternRe ).every(function( current ) { + var chr, length, numeric, tokenRe, + token = {}; + + function hourFormatParse( tokenRe, numberParser ) { + var aux = value.match( tokenRe ); + numberParser = numberParser || function( value ) { + return +value; + }; + + if ( !aux ) { + return false; + } + + // hourFormat containing H only, e.g., `+H;-H` + if ( aux.length < 8 ) { + token.value = + ( aux[ 1 ] ? -numberParser( aux[ 1 ] ) : numberParser( aux[ 4 ] ) ) * 60; + + // hourFormat containing H and m, e.g., `+HHmm;-HHmm` + } else { + token.value = + ( aux[ 1 ] ? -numberParser( aux[ 1 ] ) : numberParser( aux[ 7 ] ) ) * 60 + + ( aux[ 1 ] ? -numberParser( aux[ 4 ] ) : numberParser( aux[ 10 ] ) ); + } + + return true; + } + + // Transform: + // - "+H;-H" -> /\+(\d\d?)|-(\d\d?)/ + // - "+HH;-HH" -> /\+(\d\d)|-(\d\d)/ + // - "+HHmm;-HHmm" -> /\+(\d\d)(\d\d)|-(\d\d)(\d\d)/ + // - "+HH:mm;-HH:mm" -> /\+(\d\d):(\d\d)|-(\d\d):(\d\d)/ + // + // If gmtFormat is GMT{0}, the regexp must fill {0} in each side, e.g.: + // - "+H;-H" -> /GMT\+(\d\d?)|GMT-(\d\d?)/ + function hourFormatRe( hourFormat, gmtFormat, timeSeparator ) { + var re; + + if ( !gmtFormat ) { + gmtFormat = "{0}"; + } + + re = hourFormat + .replace( "+", "\\+" ) + + // Unicode equivalent to (\\d\\d) + .replace( /HH|mm/g, "((" + regexpN.source + ")(" + regexpN.source + "))" ) + + // Unicode equivalent to (\\d\\d?) + .replace( /H|m/g, "((" + regexpN.source + ")(" + regexpN.source + ")?)" ); + + if ( timeSeparator ) { + re = re.replace( /:/g, timeSeparator ); + } + + re = re.split( ";" ).map(function( part ) { + return gmtFormat.replace( "{0}", part ); + }).join( "|" ); + + return new RegExp( re ); + } + + function oneDigitIfLengthOne() { + if ( length === 1 ) { + + // Unicode equivalent to /\d/ + numeric = true; + return tokenRe = regexpN; + } + } + + function oneOrTwoDigitsIfLengthOne() { + if ( length === 1 ) { + + // Unicode equivalent to /\d\d?/ + numeric = true; + return tokenRe = new RegExp( "(" + regexpN.source + ")(" + regexpN.source + ")?" ); + } + } + + function twoDigitsIfLengthTwo() { + if ( length === 2 ) { + + // Unicode equivalent to /\d\d/ + numeric = true; + return tokenRe = new RegExp( "(" + regexpN.source + ")(" + regexpN.source + ")" ); + } + } + + // Brute-force test every locale entry in an attempt to match the given value. + // Return the first found one (and set token accordingly), or null. + function lookup( path ) { + var i, re, + data = properties[ path.join( "/" ) ]; + + for ( i in data ) { + re = new RegExp( "^" + data[ i ] ); + if ( re.test( value ) ) { + token.value = i; + return tokenRe = new RegExp( data[ i ] ); + } + } + return null; + } + + token.type = current; + chr = current.charAt( 0 ), + length = current.length; + + if ( chr === "Z" ) { + + // Z..ZZZ: same as "xxxx". + if ( length < 4 ) { + chr = "x"; + length = 4; + + // ZZZZ: same as "OOOO". + } else if ( length < 5 ) { + chr = "O"; + length = 4; + + // ZZZZZ: same as "XXXXX" + } else { + chr = "X"; + length = 5; + } + } + + switch ( chr ) { + + // Era + case "G": + lookup([ + "gregorian/eras", + length <= 3 ? "eraAbbr" : ( length === 4 ? "eraNames" : "eraNarrow" ) + ]); + break; + + // Year + case "y": + case "Y": + numeric = true; + + // number l=1:+, l=2:{2}, l=3:{3,}, l=4:{4,}, ... + if ( length === 1 ) { + + // Unicode equivalent to /\d+/. + tokenRe = new RegExp( "(" + regexpN.source + ")+" ); + } else if ( length === 2 ) { + + // Unicode equivalent to /\d\d/ + tokenRe = new RegExp( "(" + regexpN.source + ")(" + regexpN.source + ")" ); + } else { + + // Unicode equivalent to /\d{length,}/ + tokenRe = new RegExp( "(" + regexpN.source + "){" + length + ",}" ); + } + break; + + // Quarter + case "Q": + case "q": + + // number l=1:{1}, l=2:{2}. + // lookup l=3... + oneDigitIfLengthOne() || twoDigitsIfLengthTwo() || lookup([ + "gregorian/quarters", + chr === "Q" ? "format" : "stand-alone", + widths[ length - 3 ] + ]); + break; + + // Month + case "M": + case "L": + + // number l=1:{1,2}, l=2:{2}. + // lookup l=3... + oneOrTwoDigitsIfLengthOne() || twoDigitsIfLengthTwo() || lookup([ + "gregorian/months", + chr === "M" ? "format" : "stand-alone", + widths[ length - 3 ] + ]); + break; + + // Day + case "D": + + // number {l,3}. + if ( length <= 3 ) { + + // Unicode equivalent to /\d{length,3}/ + numeric = true; + tokenRe = new RegExp( "(" + regexpN.source + "){" + length + ",3}" ); + } + break; + + case "W": + case "F": + + // number l=1:{1}. + oneDigitIfLengthOne(); + break; + + // Week day + case "e": + case "c": + + // number l=1:{1}, l=2:{2}. + // lookup for length >=3. + if ( length <= 2 ) { + oneDigitIfLengthOne() || twoDigitsIfLengthTwo(); + break; + } + + /* falls through */ + case "E": + if ( length === 6 ) { + + // Note: if short day names are not explicitly specified, abbreviated day + // names are used instead http://www.unicode.org/reports/tr35/tr35-dates.html#months_days_quarters_eras + lookup([ + "gregorian/days", + [ chr === "c" ? "stand-alone" : "format" ], + "short" + ]) || lookup([ + "gregorian/days", + [ chr === "c" ? "stand-alone" : "format" ], + "abbreviated" + ]); + } else { + lookup([ + "gregorian/days", + [ chr === "c" ? "stand-alone" : "format" ], + widths[ length < 3 ? 0 : length - 3 ] + ]); + } + break; + + // Period (AM or PM) + case "a": + lookup([ + "gregorian/dayPeriods/format/wide" + ]); + break; + + // Week, Day, Hour, Minute, or Second + case "w": + case "d": + case "h": + case "H": + case "K": + case "k": + case "j": + case "m": + case "s": + + // number l1:{1,2}, l2:{2}. + oneOrTwoDigitsIfLengthOne() || twoDigitsIfLengthTwo(); + break; + + case "S": + + // number {l}. + + // Unicode equivalent to /\d{length}/ + numeric = true; + tokenRe = new RegExp( "(" + regexpN.source + "){" + length + "}" ); + break; + + case "A": + + // number {l+5}. + + // Unicode equivalent to /\d{length+5}/ + numeric = true; + tokenRe = new RegExp( "(" + regexpN.source + "){" + ( length + 5 ) + "}" ); + break; + + // Zone + case "z": + case "O": + + // O: "{gmtFormat}+H;{gmtFormat}-H" or "{gmtZeroFormat}", eg. "GMT-8" or "GMT". + // OOOO: "{gmtFormat}{hourFormat}" or "{gmtZeroFormat}", eg. "GMT-08:00" or "GMT". + if ( value === properties[ "timeZoneNames/gmtZeroFormat" ] ) { + token.value = 0; + tokenRe = new RegExp( properties[ "timeZoneNames/gmtZeroFormat" ] ); + } else { + tokenRe = hourFormatRe( + length < 4 ? "+H;-H" : properties[ "timeZoneNames/hourFormat" ], + properties[ "timeZoneNames/gmtFormat" ], + timeSeparator + ); + if ( !hourFormatParse( tokenRe, numberParser ) ) { + return null; + } + } + break; + + case "X": + + // Same as x*, except it uses "Z" for zero offset. + if ( value === "Z" ) { + token.value = 0; + tokenRe = /Z/; + break; + } + + /* falls through */ + case "x": + + // x: hourFormat("+HH;-HH") + // xx or xxxx: hourFormat("+HHmm;-HHmm") + // xxx or xxxxx: hourFormat("+HH:mm;-HH:mm") + tokenRe = hourFormatRe( + length === 1 ? "+HH;-HH" : ( length % 2 ? "+HH:mm;-HH:mm" : "+HHmm;-HHmm" ) + ); + if ( !hourFormatParse( tokenRe ) ) { + return null; + } + break; + + case "'": + token.type = "literal"; + current = current.replace( /''/, "'" ); + if ( length > 2 ) { + current = current.slice( 1, -1 ); + } + tokenRe = new RegExp( regexpEscape( current ) ); + break; + + default: + token.type = "literal"; + tokenRe = /./; + } + + if ( !tokenRe ) { + return false; + } + + // Get lexeme and consume it. + value = value.replace( new RegExp( "^" + tokenRe.source ), function( lexeme ) { + token.lexeme = lexeme; + if ( numeric ) { + token.value = numberParser( lexeme ); + } + return ""; + }); + + if ( !token.lexeme ) { + return false; + } + + tokens.push( token ); + return true; + }); + + if ( value !== "" ) { + valid = false; + } + + return valid ? tokens : []; +}; + + + + +var dateParserFn = function( numberParser, parseProperties, tokenizerProperties ) { + return function dateParser( value ) { + var tokens; + + validateParameterPresence( value, "value" ); + validateParameterTypeString( value, "value" ); + + tokens = dateTokenizer( value, numberParser, tokenizerProperties ); + return dateParse( value, tokens, parseProperties ) || null; + }; +}; + + + + +/** + * parseProperties( cldr ) + * + * @cldr [Cldr instance]. + * + * Return parser properties. + */ +var dateParseProperties = function( cldr ) { + return { + preferredTimeData: cldr.supplemental.timeData.preferred() + }; +}; + + + + +/** + * tokenizerProperties( pattern, cldr ) + * + * @pattern [String] raw pattern. + * + * @cldr [Cldr instance]. + * + * Return Object with data that will be used by tokenizer. + */ +var dateTokenizerProperties = function( pattern, cldr ) { + var properties = { + pattern: pattern, + timeSeparator: numberSymbol( "timeSeparator", cldr ) + }, + widths = [ "abbreviated", "wide", "narrow" ]; + + function populateProperties( path, value ) { + + // The `dates` and `calendars` trim's purpose is to reduce properties' key size only. + properties[ path.replace( /^.*\/dates\//, "" ).replace( /calendars\//, "" ) ] = value; + } + + cldr.on( "get", populateProperties ); + + pattern.match( datePatternRe ).forEach(function( current ) { + var chr, length; + + chr = current.charAt( 0 ), + length = current.length; + + if ( chr === "Z" && length < 5 ) { + chr = "O"; + length = 4; + } + + switch ( chr ) { + + // Era + case "G": + cldr.main([ + "dates/calendars/gregorian/eras", + length <= 3 ? "eraAbbr" : ( length === 4 ? "eraNames" : "eraNarrow" ) + ]); + break; + + // Year + case "u": // Extended year. Need to be implemented. + case "U": // Cyclic year name. Need to be implemented. + throw createErrorUnsupportedFeature({ + feature: "year pattern `" + chr + "`" + }); + + // Quarter + case "Q": + case "q": + if ( length > 2 ) { + cldr.main([ + "dates/calendars/gregorian/quarters", + chr === "Q" ? "format" : "stand-alone", + widths[ length - 3 ] + ]); + } + break; + + // Month + case "M": + case "L": + + // number l=1:{1,2}, l=2:{2}. + // lookup l=3... + if ( length > 2 ) { + cldr.main([ + "dates/calendars/gregorian/months", + chr === "M" ? "format" : "stand-alone", + widths[ length - 3 ] + ]); + } + break; + + // Day + case "g": + + // Modified Julian day. Need to be implemented. + throw createErrorUnsupportedFeature({ + feature: "Julian day pattern `g`" + }); + + // Week day + case "e": + case "c": + + // lookup for length >=3. + if ( length <= 2 ) { + break; + } + + /* falls through */ + case "E": + if ( length === 6 ) { + + // Note: if short day names are not explicitly specified, abbreviated day + // names are used instead http://www.unicode.org/reports/tr35/tr35-dates.html#months_days_quarters_eras + cldr.main([ + "dates/calendars/gregorian/days", + [ chr === "c" ? "stand-alone" : "format" ], + "short" + ]) || cldr.main([ + "dates/calendars/gregorian/days", + [ chr === "c" ? "stand-alone" : "format" ], + "abbreviated" + ]); + } else { + cldr.main([ + "dates/calendars/gregorian/days", + [ chr === "c" ? "stand-alone" : "format" ], + widths[ length < 3 ? 0 : length - 3 ] + ]); + } + break; + + // Period (AM or PM) + case "a": + cldr.main([ + "dates/calendars/gregorian/dayPeriods/format/wide" + ]); + break; + + // Zone + case "z": + case "O": + cldr.main( "dates/timeZoneNames/gmtFormat" ); + cldr.main( "dates/timeZoneNames/gmtZeroFormat" ); + cldr.main( "dates/timeZoneNames/hourFormat" ); + break; + + case "v": + case "V": + throw createErrorUnsupportedFeature({ + feature: "timezone pattern `" + chr + "`" + }); + } + }); + + cldr.off( "get", populateProperties ); + + return properties; +}; + + + + +function validateRequiredCldr( path, value ) { + validateCldr( path, value, { + skip: [ + /dates\/calendars\/gregorian\/dateTimeFormats\/availableFormats/, + /dates\/calendars\/gregorian\/days\/.*\/short/, + /supplemental\/timeData\/(?!001)/, + /supplemental\/weekData\/(?!001)/ + ] + }); +} + +/** + * .dateFormatter( options ) + * + * @options [Object] see date/expand_pattern for more info. + * + * Return a date formatter function (of the form below) according to the given options and the + * default/instance locale. + * + * fn( value ) + * + * @value [Date] + * + * Return a function that formats a date according to the given `format` and the default/instance + * locale. + */ +Globalize.dateFormatter = +Globalize.prototype.dateFormatter = function( options ) { + var args, cldr, numberFormatters, pad, pattern, properties, returnFn; + + validateParameterTypePlainObject( options, "options" ); + + cldr = this.cldr; + options = options || { skeleton: "yMd" }; + + args = [ options ]; + + validateDefaultLocale( cldr ); + + cldr.on( "get", validateRequiredCldr ); + pattern = dateExpandPattern( options, cldr ); + properties = dateFormatProperties( pattern, cldr ); + cldr.off( "get", validateRequiredCldr ); + + // Create needed number formatters. + numberFormatters = properties.numberFormatters; + delete properties.numberFormatters; + for ( pad in numberFormatters ) { + numberFormatters[ pad ] = this.numberFormatter({ + raw: numberFormatters[ pad ] + }); + } + + returnFn = dateFormatterFn( numberFormatters, properties ); + + runtimeBind( args, cldr, returnFn, [ numberFormatters, properties ] ); + + return returnFn; +}; + +/** + * .dateParser( options ) + * + * @options [Object] see date/expand_pattern for more info. + * + * Return a function that parses a string date according to the given `formats` and the + * default/instance locale. + */ +Globalize.dateParser = +Globalize.prototype.dateParser = function( options ) { + var args, cldr, numberParser, parseProperties, pattern, tokenizerProperties, returnFn; + + validateParameterTypePlainObject( options, "options" ); + + cldr = this.cldr; + options = options || { skeleton: "yMd" }; + + args = [ options ]; + + validateDefaultLocale( cldr ); + + cldr.on( "get", validateRequiredCldr ); + pattern = dateExpandPattern( options, cldr ); + tokenizerProperties = dateTokenizerProperties( pattern, cldr ); + parseProperties = dateParseProperties( cldr ); + cldr.off( "get", validateRequiredCldr ); + + numberParser = this.numberParser({ raw: "0" }); + + returnFn = dateParserFn( numberParser, parseProperties, tokenizerProperties ); + + runtimeBind( args, cldr, returnFn, [ numberParser, parseProperties, tokenizerProperties ] ); + + return returnFn; +}; + +/** + * .formatDate( value, options ) + * + * @value [Date] + * + * @options [Object] see date/expand_pattern for more info. + * + * Formats a date or number according to the given options string and the default/instance locale. + */ +Globalize.formatDate = +Globalize.prototype.formatDate = function( value, options ) { + validateParameterPresence( value, "value" ); + validateParameterTypeDate( value, "value" ); + + return this.dateFormatter( options )( value ); +}; + +/** + * .parseDate( value, options ) + * + * @value [String] + * + * @options [Object] see date/expand_pattern for more info. + * + * Return a Date instance or null. + */ +Globalize.parseDate = +Globalize.prototype.parseDate = function( value, options ) { + validateParameterPresence( value, "value" ); + validateParameterTypeString( value, "value" ); + + return this.dateParser( options )( value ); +}; + +return Globalize; + + + + +})); diff --git a/Web/Scripts/globalize/globalize.js b/Web/Scripts/globalize/globalize.js deleted file mode 100644 index dcf83ef..0000000 --- a/Web/Scripts/globalize/globalize.js +++ /dev/null @@ -1,1585 +0,0 @@ -/*! - * Globalize - * - * http://github.com/jquery/globalize - * - * Copyright Software Freedom Conservancy, Inc. - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - */ - -(function( window, undefined ) { - -var Globalize, - // private variables - regexHex, - regexInfinity, - regexParseFloat, - regexTrim, - // private JavaScript utility functions - arrayIndexOf, - endsWith, - extend, - isArray, - isFunction, - isObject, - startsWith, - trim, - truncate, - zeroPad, - // private Globalization utility functions - appendPreOrPostMatch, - expandFormat, - formatDate, - formatNumber, - getTokenRegExp, - getEra, - getEraYear, - parseExact, - parseNegativePattern; - -// Global variable (Globalize) or CommonJS module (globalize) -Globalize = function( cultureSelector ) { - return new Globalize.prototype.init( cultureSelector ); -}; - -if ( typeof require !== "undefined" && - typeof exports !== "undefined" && - typeof module !== "undefined" ) { - // Assume CommonJS - module.exports = Globalize; -} else { - // Export as global variable - window.Globalize = Globalize; -} - -Globalize.cultures = {}; - -Globalize.prototype = { - constructor: Globalize, - init: function( cultureSelector ) { - this.cultures = Globalize.cultures; - this.cultureSelector = cultureSelector; - - return this; - } -}; -Globalize.prototype.init.prototype = Globalize.prototype; - -// 1. When defining a culture, all fields are required except the ones stated as optional. -// 2. Each culture should have a ".calendars" object with at least one calendar named "standard" -// which serves as the default calendar in use by that culture. -// 3. Each culture should have a ".calendar" object which is the current calendar being used, -// it may be dynamically changed at any time to one of the calendars in ".calendars". -Globalize.cultures[ "default" ] = { - // A unique name for the culture in the form - - name: "en", - // the name of the culture in the english language - englishName: "English", - // the name of the culture in its own language - nativeName: "English", - // whether the culture uses right-to-left text - isRTL: false, - // "language" is used for so-called "specific" cultures. - // For example, the culture "es-CL" means "Spanish, in Chili". - // It represents the Spanish-speaking culture as it is in Chili, - // which might have different formatting rules or even translations - // than Spanish in Spain. A "neutral" culture is one that is not - // specific to a region. For example, the culture "es" is the generic - // Spanish culture, which may be a more generalized version of the language - // that may or may not be what a specific culture expects. - // For a specific culture like "es-CL", the "language" field refers to the - // neutral, generic culture information for the language it is using. - // This is not always a simple matter of the string before the dash. - // For example, the "zh-Hans" culture is netural (Simplified Chinese). - // And the "zh-SG" culture is Simplified Chinese in Singapore, whose lanugage - // field is "zh-CHS", not "zh". - // This field should be used to navigate from a specific culture to it's - // more general, neutral culture. If a culture is already as general as it - // can get, the language may refer to itself. - language: "en", - // numberFormat defines general number formatting rules, like the digits in - // each grouping, the group separator, and how negative numbers are displayed. - numberFormat: { - // [negativePattern] - // Note, numberFormat.pattern has no "positivePattern" unlike percent and currency, - // but is still defined as an array for consistency with them. - // negativePattern: one of "(n)|-n|- n|n-|n -" - pattern: [ "-n" ], - // number of decimal places normally shown - decimals: 2, - // string that separates number groups, as in 1,000,000 - ",": ",", - // string that separates a number from the fractional portion, as in 1.99 - ".": ".", - // array of numbers indicating the size of each number group. - // TODO: more detailed description and example - groupSizes: [ 3 ], - // symbol used for positive numbers - "+": "+", - // symbol used for negative numbers - "-": "-", - // symbol used for NaN (Not-A-Number) - "NaN": "NaN", - // symbol used for Negative Infinity - negativeInfinity: "-Infinity", - // symbol used for Positive Infinity - positiveInfinity: "Infinity", - percent: { - // [negativePattern, positivePattern] - // negativePattern: one of "-n %|-n%|-%n|%-n|%n-|n-%|n%-|-% n|n %-|% n-|% -n|n- %" - // positivePattern: one of "n %|n%|%n|% n" - pattern: [ "-n %", "n %" ], - // number of decimal places normally shown - decimals: 2, - // array of numbers indicating the size of each number group. - // TODO: more detailed description and example - groupSizes: [ 3 ], - // string that separates number groups, as in 1,000,000 - ",": ",", - // string that separates a number from the fractional portion, as in 1.99 - ".": ".", - // symbol used to represent a percentage - symbol: "%" - }, - currency: { - // [negativePattern, positivePattern] - // negativePattern: one of "($n)|-$n|$-n|$n-|(n$)|-n$|n-$|n$-|-n $|-$ n|n $-|$ n-|$ -n|n- $|($ n)|(n $)" - // positivePattern: one of "$n|n$|$ n|n $" - pattern: [ "($n)", "$n" ], - // number of decimal places normally shown - decimals: 2, - // array of numbers indicating the size of each number group. - // TODO: more detailed description and example - groupSizes: [ 3 ], - // string that separates number groups, as in 1,000,000 - ",": ",", - // string that separates a number from the fractional portion, as in 1.99 - ".": ".", - // symbol used to represent currency - symbol: "$" - } - }, - // calendars defines all the possible calendars used by this culture. - // There should be at least one defined with name "standard", and is the default - // calendar used by the culture. - // A calendar contains information about how dates are formatted, information about - // the calendar's eras, a standard set of the date formats, - // translations for day and month names, and if the calendar is not based on the Gregorian - // calendar, conversion functions to and from the Gregorian calendar. - calendars: { - standard: { - // name that identifies the type of calendar this is - name: "Gregorian_USEnglish", - // separator of parts of a date (e.g. "/" in 11/05/1955) - "/": "/", - // separator of parts of a time (e.g. ":" in 05:44 PM) - ":": ":", - // the first day of the week (0 = Sunday, 1 = Monday, etc) - firstDay: 0, - days: { - // full day names - names: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], - // abbreviated day names - namesAbbr: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], - // shortest day names - namesShort: [ "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" ] - }, - months: { - // full month names (13 months for lunar calendards -- 13th month should be "" if not lunar) - names: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", "" ], - // abbreviated month names - namesAbbr: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "" ] - }, - // AM and PM designators in one of these forms: - // The usual view, and the upper and lower case versions - // [ standard, lowercase, uppercase ] - // The culture does not use AM or PM (likely all standard date formats use 24 hour time) - // null - AM: [ "AM", "am", "AM" ], - PM: [ "PM", "pm", "PM" ], - eras: [ - // eras in reverse chronological order. - // name: the name of the era in this culture (e.g. A.D., C.E.) - // start: when the era starts in ticks (gregorian, gmt), null if it is the earliest supported era. - // offset: offset in years from gregorian calendar - { - "name": "A.D.", - "start": null, - "offset": 0 - } - ], - // when a two digit year is given, it will never be parsed as a four digit - // year greater than this year (in the appropriate era for the culture) - // Set it as a full year (e.g. 2029) or use an offset format starting from - // the current year: "+19" would correspond to 2029 if the current year 2010. - twoDigitYearMax: 2029, - // set of predefined date and time patterns used by the culture - // these represent the format someone in this culture would expect - // to see given the portions of the date that are shown. - patterns: { - // short date pattern - d: "M/d/yyyy", - // long date pattern - D: "dddd, MMMM dd, yyyy", - // short time pattern - t: "h:mm tt", - // long time pattern - T: "h:mm:ss tt", - // long date, short time pattern - f: "dddd, MMMM dd, yyyy h:mm tt", - // long date, long time pattern - F: "dddd, MMMM dd, yyyy h:mm:ss tt", - // month/day pattern - M: "MMMM dd", - // month/year pattern - Y: "yyyy MMMM", - // S is a sortable format that does not vary by culture - S: "yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0027HH\u0027:\u0027mm\u0027:\u0027ss" - } - // optional fields for each calendar: - /* - monthsGenitive: - Same as months but used when the day preceeds the month. - Omit if the culture has no genitive distinction in month names. - For an explaination of genitive months, see http://blogs.msdn.com/michkap/archive/2004/12/25/332259.aspx - convert: - Allows for the support of non-gregorian based calendars. This convert object is used to - to convert a date to and from a gregorian calendar date to handle parsing and formatting. - The two functions: - fromGregorian( date ) - Given the date as a parameter, return an array with parts [ year, month, day ] - corresponding to the non-gregorian based year, month, and day for the calendar. - toGregorian( year, month, day ) - Given the non-gregorian year, month, and day, return a new Date() object - set to the corresponding date in the gregorian calendar. - */ - } - }, - // For localized strings - messages: {} -}; - -Globalize.cultures[ "default" ].calendar = Globalize.cultures[ "default" ].calendars.standard; - -Globalize.cultures.en = Globalize.cultures[ "default" ]; - -Globalize.cultureSelector = "en"; - -// -// private variables -// - -regexHex = /^0x[a-f0-9]+$/i; -regexInfinity = /^[+\-]?infinity$/i; -regexParseFloat = /^[+\-]?\d*\.?\d*(e[+\-]?\d+)?$/; -regexTrim = /^\s+|\s+$/g; - -// -// private JavaScript utility functions -// - -arrayIndexOf = function( array, item ) { - if ( array.indexOf ) { - return array.indexOf( item ); - } - for ( var i = 0, length = array.length; i < length; i++ ) { - if ( array[i] === item ) { - return i; - } - } - return -1; -}; - -endsWith = function( value, pattern ) { - return value.substr( value.length - pattern.length ) === pattern; -}; - -extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !isFunction(target) ) { - target = {}; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( isObject(copy) || (copyIsArray = isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && isArray(src) ? src : []; - - } else { - clone = src && isObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -isArray = Array.isArray || function( obj ) { - return Object.prototype.toString.call( obj ) === "[object Array]"; -}; - -isFunction = function( obj ) { - return Object.prototype.toString.call( obj ) === "[object Function]"; -}; - -isObject = function( obj ) { - return Object.prototype.toString.call( obj ) === "[object Object]"; -}; - -startsWith = function( value, pattern ) { - return value.indexOf( pattern ) === 0; -}; - -trim = function( value ) { - return ( value + "" ).replace( regexTrim, "" ); -}; - -truncate = function( value ) { - if ( isNaN( value ) ) { - return NaN; - } - return Math[ value < 0 ? "ceil" : "floor" ]( value ); -}; - -zeroPad = function( str, count, left ) { - var l; - for ( l = str.length; l < count; l += 1 ) { - str = ( left ? ("0" + str) : (str + "0") ); - } - return str; -}; - -// -// private Globalization utility functions -// - -appendPreOrPostMatch = function( preMatch, strings ) { - // appends pre- and post- token match strings while removing escaped characters. - // Returns a single quote count which is used to determine if the token occurs - // in a string literal. - var quoteCount = 0, - escaped = false; - for ( var i = 0, il = preMatch.length; i < il; i++ ) { - var c = preMatch.charAt( i ); - switch ( c ) { - case "\'": - if ( escaped ) { - strings.push( "\'" ); - } - else { - quoteCount++; - } - escaped = false; - break; - case "\\": - if ( escaped ) { - strings.push( "\\" ); - } - escaped = !escaped; - break; - default: - strings.push( c ); - escaped = false; - break; - } - } - return quoteCount; -}; - -expandFormat = function( cal, format ) { - // expands unspecified or single character date formats into the full pattern. - format = format || "F"; - var pattern, - patterns = cal.patterns, - len = format.length; - if ( len === 1 ) { - pattern = patterns[ format ]; - if ( !pattern ) { - throw "Invalid date format string \'" + format + "\'."; - } - format = pattern; - } - else if ( len === 2 && format.charAt(0) === "%" ) { - // %X escape format -- intended as a custom format string that is only one character, not a built-in format. - format = format.charAt( 1 ); - } - return format; -}; - -formatDate = function( value, format, culture ) { - var cal = culture.calendar, - convert = cal.convert, - ret; - - if ( !format || !format.length || format === "i" ) { - if ( culture && culture.name.length ) { - if ( convert ) { - // non-gregorian calendar, so we cannot use built-in toLocaleString() - ret = formatDate( value, cal.patterns.F, culture ); - } - else { - var eraDate = new Date( value.getTime() ), - era = getEra( value, cal.eras ); - eraDate.setFullYear( getEraYear(value, cal, era) ); - ret = eraDate.toLocaleString(); - } - } - else { - ret = value.toString(); - } - return ret; - } - - var eras = cal.eras, - sortable = format === "s"; - format = expandFormat( cal, format ); - - // Start with an empty string - ret = []; - var hour, - zeros = [ "0", "00", "000" ], - foundDay, - checkedDay, - dayPartRegExp = /([^d]|^)(d|dd)([^d]|$)/g, - quoteCount = 0, - tokenRegExp = getTokenRegExp(), - converted; - - function padZeros( num, c ) { - var r, s = num + ""; - if ( c > 1 && s.length < c ) { - r = ( zeros[c - 2] + s); - return r.substr( r.length - c, c ); - } - else { - r = s; - } - return r; - } - - function hasDay() { - if ( foundDay || checkedDay ) { - return foundDay; - } - foundDay = dayPartRegExp.test( format ); - checkedDay = true; - return foundDay; - } - - function getPart( date, part ) { - if ( converted ) { - return converted[ part ]; - } - switch ( part ) { - case 0: - return date.getFullYear(); - case 1: - return date.getMonth(); - case 2: - return date.getDate(); - default: - throw "Invalid part value " + part; - } - } - - if ( !sortable && convert ) { - converted = convert.fromGregorian( value ); - } - - for ( ; ; ) { - // Save the current index - var index = tokenRegExp.lastIndex, - // Look for the next pattern - ar = tokenRegExp.exec( format ); - - // Append the text before the pattern (or the end of the string if not found) - var preMatch = format.slice( index, ar ? ar.index : format.length ); - quoteCount += appendPreOrPostMatch( preMatch, ret ); - - if ( !ar ) { - break; - } - - // do not replace any matches that occur inside a string literal. - if ( quoteCount % 2 ) { - ret.push( ar[0] ); - continue; - } - - var current = ar[ 0 ], - clength = current.length; - - switch ( current ) { - case "ddd": - //Day of the week, as a three-letter abbreviation - case "dddd": - // Day of the week, using the full name - var names = ( clength === 3 ) ? cal.days.namesAbbr : cal.days.names; - ret.push( names[value.getDay()] ); - break; - case "d": - // Day of month, without leading zero for single-digit days - case "dd": - // Day of month, with leading zero for single-digit days - foundDay = true; - ret.push( - padZeros( getPart(value, 2), clength ) - ); - break; - case "MMM": - // Month, as a three-letter abbreviation - case "MMMM": - // Month, using the full name - var part = getPart( value, 1 ); - ret.push( - ( cal.monthsGenitive && hasDay() ) ? - ( cal.monthsGenitive[ clength === 3 ? "namesAbbr" : "names" ][ part ] ) : - ( cal.months[ clength === 3 ? "namesAbbr" : "names" ][ part ] ) - ); - break; - case "M": - // Month, as digits, with no leading zero for single-digit months - case "MM": - // Month, as digits, with leading zero for single-digit months - ret.push( - padZeros( getPart(value, 1) + 1, clength ) - ); - break; - case "y": - // Year, as two digits, but with no leading zero for years less than 10 - case "yy": - // Year, as two digits, with leading zero for years less than 10 - case "yyyy": - // Year represented by four full digits - part = converted ? converted[ 0 ] : getEraYear( value, cal, getEra(value, eras), sortable ); - if ( clength < 4 ) { - part = part % 100; - } - ret.push( - padZeros( part, clength ) - ); - break; - case "h": - // Hours with no leading zero for single-digit hours, using 12-hour clock - case "hh": - // Hours with leading zero for single-digit hours, using 12-hour clock - hour = value.getHours() % 12; - if ( hour === 0 ) hour = 12; - ret.push( - padZeros( hour, clength ) - ); - break; - case "H": - // Hours with no leading zero for single-digit hours, using 24-hour clock - case "HH": - // Hours with leading zero for single-digit hours, using 24-hour clock - ret.push( - padZeros( value.getHours(), clength ) - ); - break; - case "m": - // Minutes with no leading zero for single-digit minutes - case "mm": - // Minutes with leading zero for single-digit minutes - ret.push( - padZeros( value.getMinutes(), clength ) - ); - break; - case "s": - // Seconds with no leading zero for single-digit seconds - case "ss": - // Seconds with leading zero for single-digit seconds - ret.push( - padZeros( value.getSeconds(), clength ) - ); - break; - case "t": - // One character am/pm indicator ("a" or "p") - case "tt": - // Multicharacter am/pm indicator - part = value.getHours() < 12 ? ( cal.AM ? cal.AM[0] : " " ) : ( cal.PM ? cal.PM[0] : " " ); - ret.push( clength === 1 ? part.charAt(0) : part ); - break; - case "f": - // Deciseconds - case "ff": - // Centiseconds - case "fff": - // Milliseconds - ret.push( - padZeros( value.getMilliseconds(), 3 ).substr( 0, clength ) - ); - break; - case "z": - // Time zone offset, no leading zero - case "zz": - // Time zone offset with leading zero - hour = value.getTimezoneOffset() / 60; - ret.push( - ( hour <= 0 ? "+" : "-" ) + padZeros( Math.floor(Math.abs(hour)), clength ) - ); - break; - case "zzz": - // Time zone offset with leading zero - hour = value.getTimezoneOffset() / 60; - ret.push( - ( hour <= 0 ? "+" : "-" ) + padZeros( Math.floor(Math.abs(hour)), 2 ) + - // Hard coded ":" separator, rather than using cal.TimeSeparator - // Repeated here for consistency, plus ":" was already assumed in date parsing. - ":" + padZeros( Math.abs(value.getTimezoneOffset() % 60), 2 ) - ); - break; - case "g": - case "gg": - if ( cal.eras ) { - ret.push( - cal.eras[ getEra(value, eras) ].name - ); - } - break; - case "/": - ret.push( cal["/"] ); - break; - default: - throw "Invalid date format pattern \'" + current + "\'."; - } - } - return ret.join( "" ); -}; - -// formatNumber -(function() { - var expandNumber; - - expandNumber = function( number, precision, formatInfo ) { - var groupSizes = formatInfo.groupSizes, - curSize = groupSizes[ 0 ], - curGroupIndex = 1, - factor = Math.pow( 10, precision ), - rounded = Math.round( number * factor ) / factor; - - if ( !isFinite(rounded) ) { - rounded = number; - } - number = rounded; - - var numberString = number+"", - right = "", - split = numberString.split( /e/i ), - exponent = split.length > 1 ? parseInt( split[1], 10 ) : 0; - numberString = split[ 0 ]; - split = numberString.split( "." ); - numberString = split[ 0 ]; - right = split.length > 1 ? split[ 1 ] : ""; - - if ( exponent > 0 ) { - right = zeroPad( right, exponent, false ); - numberString += right.slice( 0, exponent ); - right = right.substr( exponent ); - } - else if ( exponent < 0 ) { - exponent = -exponent; - numberString = zeroPad( numberString, exponent + 1, true ); - right = numberString.slice( -exponent, numberString.length ) + right; - numberString = numberString.slice( 0, -exponent ); - } - - if ( precision > 0 ) { - right = formatInfo[ "." ] + - ( (right.length > precision) ? right.slice(0, precision) : zeroPad(right, precision) ); - } - else { - right = ""; - } - - var stringIndex = numberString.length - 1, - sep = formatInfo[ "," ], - ret = ""; - - while ( stringIndex >= 0 ) { - if ( curSize === 0 || curSize > stringIndex ) { - return numberString.slice( 0, stringIndex + 1 ) + ( ret.length ? (sep + ret + right) : right ); - } - ret = numberString.slice( stringIndex - curSize + 1, stringIndex + 1 ) + ( ret.length ? (sep + ret) : "" ); - - stringIndex -= curSize; - - if ( curGroupIndex < groupSizes.length ) { - curSize = groupSizes[ curGroupIndex ]; - curGroupIndex++; - } - } - - return numberString.slice( 0, stringIndex + 1 ) + sep + ret + right; - }; - - formatNumber = function( value, format, culture ) { - if ( !isFinite(value) ) { - if ( value === Infinity ) { - return culture.numberFormat.positiveInfinity; - } - if ( value === -Infinity ) { - return culture.numberFormat.negativeInfinity; - } - return culture.numberFormat.NaN; - } - if ( !format || format === "i" ) { - return culture.name.length ? value.toLocaleString() : value.toString(); - } - format = format || "D"; - - var nf = culture.numberFormat, - number = Math.abs( value ), - precision = -1, - pattern; - if ( format.length > 1 ) precision = parseInt( format.slice(1), 10 ); - - var current = format.charAt( 0 ).toUpperCase(), - formatInfo; - - switch ( current ) { - case "D": - pattern = "n"; - number = truncate( number ); - if ( precision !== -1 ) { - number = zeroPad( "" + number, precision, true ); - } - if ( value < 0 ) number = "-" + number; - break; - case "N": - formatInfo = nf; - /* falls through */ - case "C": - formatInfo = formatInfo || nf.currency; - /* falls through */ - case "P": - formatInfo = formatInfo || nf.percent; - pattern = value < 0 ? formatInfo.pattern[ 0 ] : ( formatInfo.pattern[1] || "n" ); - if ( precision === -1 ) precision = formatInfo.decimals; - number = expandNumber( number * (current === "P" ? 100 : 1), precision, formatInfo ); - break; - default: - throw "Bad number format specifier: " + current; - } - - var patternParts = /n|\$|-|%/g, - ret = ""; - for ( ; ; ) { - var index = patternParts.lastIndex, - ar = patternParts.exec( pattern ); - - ret += pattern.slice( index, ar ? ar.index : pattern.length ); - - if ( !ar ) { - break; - } - - switch ( ar[0] ) { - case "n": - ret += number; - break; - case "$": - ret += nf.currency.symbol; - break; - case "-": - // don't make 0 negative - if ( /[1-9]/.test(number) ) { - ret += nf[ "-" ]; - } - break; - case "%": - ret += nf.percent.symbol; - break; - } - } - - return ret; - }; - -}()); - -getTokenRegExp = function() { - // regular expression for matching date and time tokens in format strings. - return (/\/|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z|gg|g/g); -}; - -getEra = function( date, eras ) { - if ( !eras ) return 0; - var start, ticks = date.getTime(); - for ( var i = 0, l = eras.length; i < l; i++ ) { - start = eras[ i ].start; - if ( start === null || ticks >= start ) { - return i; - } - } - return 0; -}; - -getEraYear = function( date, cal, era, sortable ) { - var year = date.getFullYear(); - if ( !sortable && cal.eras ) { - // convert normal gregorian year to era-shifted gregorian - // year by subtracting the era offset - year -= cal.eras[ era ].offset; - } - return year; -}; - -// parseExact -(function() { - var expandYear, - getDayIndex, - getMonthIndex, - getParseRegExp, - outOfRange, - toUpper, - toUpperArray; - - expandYear = function( cal, year ) { - // expands 2-digit year into 4 digits. - if ( year < 100 ) { - var now = new Date(), - era = getEra( now ), - curr = getEraYear( now, cal, era ), - twoDigitYearMax = cal.twoDigitYearMax; - twoDigitYearMax = typeof twoDigitYearMax === "string" ? new Date().getFullYear() % 100 + parseInt( twoDigitYearMax, 10 ) : twoDigitYearMax; - year += curr - ( curr % 100 ); - if ( year > twoDigitYearMax ) { - year -= 100; - } - } - return year; - }; - - getDayIndex = function ( cal, value, abbr ) { - var ret, - days = cal.days, - upperDays = cal._upperDays; - if ( !upperDays ) { - cal._upperDays = upperDays = [ - toUpperArray( days.names ), - toUpperArray( days.namesAbbr ), - toUpperArray( days.namesShort ) - ]; - } - value = toUpper( value ); - if ( abbr ) { - ret = arrayIndexOf( upperDays[1], value ); - if ( ret === -1 ) { - ret = arrayIndexOf( upperDays[2], value ); - } - } - else { - ret = arrayIndexOf( upperDays[0], value ); - } - return ret; - }; - - getMonthIndex = function( cal, value, abbr ) { - var months = cal.months, - monthsGen = cal.monthsGenitive || cal.months, - upperMonths = cal._upperMonths, - upperMonthsGen = cal._upperMonthsGen; - if ( !upperMonths ) { - cal._upperMonths = upperMonths = [ - toUpperArray( months.names ), - toUpperArray( months.namesAbbr ) - ]; - cal._upperMonthsGen = upperMonthsGen = [ - toUpperArray( monthsGen.names ), - toUpperArray( monthsGen.namesAbbr ) - ]; - } - value = toUpper( value ); - var i = arrayIndexOf( abbr ? upperMonths[1] : upperMonths[0], value ); - if ( i < 0 ) { - i = arrayIndexOf( abbr ? upperMonthsGen[1] : upperMonthsGen[0], value ); - } - return i; - }; - - getParseRegExp = function( cal, format ) { - // converts a format string into a regular expression with groups that - // can be used to extract date fields from a date string. - // check for a cached parse regex. - var re = cal._parseRegExp; - if ( !re ) { - cal._parseRegExp = re = {}; - } - else { - var reFormat = re[ format ]; - if ( reFormat ) { - return reFormat; - } - } - - // expand single digit formats, then escape regular expression characters. - var expFormat = expandFormat( cal, format ).replace( /([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g, "\\\\$1" ), - regexp = [ "^" ], - groups = [], - index = 0, - quoteCount = 0, - tokenRegExp = getTokenRegExp(), - match; - - // iterate through each date token found. - while ( (match = tokenRegExp.exec(expFormat)) !== null ) { - var preMatch = expFormat.slice( index, match.index ); - index = tokenRegExp.lastIndex; - - // don't replace any matches that occur inside a string literal. - quoteCount += appendPreOrPostMatch( preMatch, regexp ); - if ( quoteCount % 2 ) { - regexp.push( match[0] ); - continue; - } - - // add a regex group for the token. - var m = match[ 0 ], - len = m.length, - add; - switch ( m ) { - case "dddd": case "ddd": - case "MMMM": case "MMM": - case "gg": case "g": - add = "(\\D+)"; - break; - case "tt": case "t": - add = "(\\D*)"; - break; - case "yyyy": - case "fff": - case "ff": - case "f": - add = "(\\d{" + len + "})"; - break; - case "dd": case "d": - case "MM": case "M": - case "yy": case "y": - case "HH": case "H": - case "hh": case "h": - case "mm": case "m": - case "ss": case "s": - add = "(\\d\\d?)"; - break; - case "zzz": - add = "([+-]?\\d\\d?:\\d{2})"; - break; - case "zz": case "z": - add = "([+-]?\\d\\d?)"; - break; - case "/": - add = "(\\/)"; - break; - default: - throw "Invalid date format pattern \'" + m + "\'."; - } - if ( add ) { - regexp.push( add ); - } - groups.push( match[0] ); - } - appendPreOrPostMatch( expFormat.slice(index), regexp ); - regexp.push( "$" ); - - // allow whitespace to differ when matching formats. - var regexpStr = regexp.join( "" ).replace( /\s+/g, "\\s+" ), - parseRegExp = { "regExp": regexpStr, "groups": groups }; - - // cache the regex for this format. - return re[ format ] = parseRegExp; - }; - - outOfRange = function( value, low, high ) { - return value < low || value > high; - }; - - toUpper = function( value ) { - // "he-IL" has non-breaking space in weekday names. - return value.split( "\u00A0" ).join( " " ).toUpperCase(); - }; - - toUpperArray = function( arr ) { - var results = []; - for ( var i = 0, l = arr.length; i < l; i++ ) { - results[ i ] = toUpper( arr[i] ); - } - return results; - }; - - parseExact = function( value, format, culture ) { - // try to parse the date string by matching against the format string - // while using the specified culture for date field names. - value = trim( value ); - var cal = culture.calendar, - // convert date formats into regular expressions with groupings. - // use the regexp to determine the input format and extract the date fields. - parseInfo = getParseRegExp( cal, format ), - match = new RegExp( parseInfo.regExp ).exec( value ); - if ( match === null ) { - return null; - } - // found a date format that matches the input. - var groups = parseInfo.groups, - era = null, year = null, month = null, date = null, weekDay = null, - hour = 0, hourOffset, min = 0, sec = 0, msec = 0, tzMinOffset = null, - pmHour = false; - // iterate the format groups to extract and set the date fields. - for ( var j = 0, jl = groups.length; j < jl; j++ ) { - var matchGroup = match[ j + 1 ]; - if ( matchGroup ) { - var current = groups[ j ], - clength = current.length, - matchInt = parseInt( matchGroup, 10 ); - switch ( current ) { - case "dd": case "d": - // Day of month. - date = matchInt; - // check that date is generally in valid range, also checking overflow below. - if ( outOfRange(date, 1, 31) ) return null; - break; - case "MMM": case "MMMM": - month = getMonthIndex( cal, matchGroup, clength === 3 ); - if ( outOfRange(month, 0, 11) ) return null; - break; - case "M": case "MM": - // Month. - month = matchInt - 1; - if ( outOfRange(month, 0, 11) ) return null; - break; - case "y": case "yy": - case "yyyy": - year = clength < 4 ? expandYear( cal, matchInt ) : matchInt; - if ( outOfRange(year, 0, 9999) ) return null; - break; - case "h": case "hh": - // Hours (12-hour clock). - hour = matchInt; - if ( hour === 12 ) hour = 0; - if ( outOfRange(hour, 0, 11) ) return null; - break; - case "H": case "HH": - // Hours (24-hour clock). - hour = matchInt; - if ( outOfRange(hour, 0, 23) ) return null; - break; - case "m": case "mm": - // Minutes. - min = matchInt; - if ( outOfRange(min, 0, 59) ) return null; - break; - case "s": case "ss": - // Seconds. - sec = matchInt; - if ( outOfRange(sec, 0, 59) ) return null; - break; - case "tt": case "t": - // AM/PM designator. - // see if it is standard, upper, or lower case PM. If not, ensure it is at least one of - // the AM tokens. If not, fail the parse for this format. - pmHour = cal.PM && ( matchGroup === cal.PM[0] || matchGroup === cal.PM[1] || matchGroup === cal.PM[2] ); - if ( - !pmHour && ( - !cal.AM || ( matchGroup !== cal.AM[0] && matchGroup !== cal.AM[1] && matchGroup !== cal.AM[2] ) - ) - ) return null; - break; - case "f": - // Deciseconds. - case "ff": - // Centiseconds. - case "fff": - // Milliseconds. - msec = matchInt * Math.pow( 10, 3 - clength ); - if ( outOfRange(msec, 0, 999) ) return null; - break; - case "ddd": - // Day of week. - case "dddd": - // Day of week. - weekDay = getDayIndex( cal, matchGroup, clength === 3 ); - if ( outOfRange(weekDay, 0, 6) ) return null; - break; - case "zzz": - // Time zone offset in +/- hours:min. - var offsets = matchGroup.split( /:/ ); - if ( offsets.length !== 2 ) return null; - hourOffset = parseInt( offsets[0], 10 ); - if ( outOfRange(hourOffset, -12, 13) ) return null; - var minOffset = parseInt( offsets[1], 10 ); - if ( outOfRange(minOffset, 0, 59) ) return null; - tzMinOffset = ( hourOffset * 60 ) + ( startsWith(matchGroup, "-") ? -minOffset : minOffset ); - break; - case "z": case "zz": - // Time zone offset in +/- hours. - hourOffset = matchInt; - if ( outOfRange(hourOffset, -12, 13) ) return null; - tzMinOffset = hourOffset * 60; - break; - case "g": case "gg": - var eraName = matchGroup; - if ( !eraName || !cal.eras ) return null; - eraName = trim( eraName.toLowerCase() ); - for ( var i = 0, l = cal.eras.length; i < l; i++ ) { - if ( eraName === cal.eras[i].name.toLowerCase() ) { - era = i; - break; - } - } - // could not find an era with that name - if ( era === null ) return null; - break; - } - } - } - var result = new Date(), defaultYear, convert = cal.convert; - defaultYear = convert ? convert.fromGregorian( result )[ 0 ] : result.getFullYear(); - if ( year === null ) { - year = defaultYear; - } - else if ( cal.eras ) { - // year must be shifted to normal gregorian year - // but not if year was not specified, its already normal gregorian - // per the main if clause above. - year += cal.eras[( era || 0 )].offset; - } - // set default day and month to 1 and January, so if unspecified, these are the defaults - // instead of the current day/month. - if ( month === null ) { - month = 0; - } - if ( date === null ) { - date = 1; - } - // now have year, month, and date, but in the culture's calendar. - // convert to gregorian if necessary - if ( convert ) { - result = convert.toGregorian( year, month, date ); - // conversion failed, must be an invalid match - if ( result === null ) return null; - } - else { - // have to set year, month and date together to avoid overflow based on current date. - result.setFullYear( year, month, date ); - // check to see if date overflowed for specified month (only checked 1-31 above). - if ( result.getDate() !== date ) return null; - // invalid day of week. - if ( weekDay !== null && result.getDay() !== weekDay ) { - return null; - } - } - // if pm designator token was found make sure the hours fit the 24-hour clock. - if ( pmHour && hour < 12 ) { - hour += 12; - } - result.setHours( hour, min, sec, msec ); - if ( tzMinOffset !== null ) { - // adjust timezone to utc before applying local offset. - var adjustedMin = result.getMinutes() - ( tzMinOffset + result.getTimezoneOffset() ); - // Safari limits hours and minutes to the range of -127 to 127. We need to use setHours - // to ensure both these fields will not exceed this range. adjustedMin will range - // somewhere between -1440 and 1500, so we only need to split this into hours. - result.setHours( result.getHours() + parseInt(adjustedMin / 60, 10), adjustedMin % 60 ); - } - return result; - }; -}()); - -parseNegativePattern = function( value, nf, negativePattern ) { - var neg = nf[ "-" ], - pos = nf[ "+" ], - ret; - switch ( negativePattern ) { - case "n -": - neg = " " + neg; - pos = " " + pos; - /* falls through */ - case "n-": - if ( endsWith(value, neg) ) { - ret = [ "-", value.substr(0, value.length - neg.length) ]; - } - else if ( endsWith(value, pos) ) { - ret = [ "+", value.substr(0, value.length - pos.length) ]; - } - break; - case "- n": - neg += " "; - pos += " "; - /* falls through */ - case "-n": - if ( startsWith(value, neg) ) { - ret = [ "-", value.substr(neg.length) ]; - } - else if ( startsWith(value, pos) ) { - ret = [ "+", value.substr(pos.length) ]; - } - break; - case "(n)": - if ( startsWith(value, "(") && endsWith(value, ")") ) { - ret = [ "-", value.substr(1, value.length - 2) ]; - } - break; - } - return ret || [ "", value ]; -}; - -// -// public instance functions -// - -Globalize.prototype.findClosestCulture = function( cultureSelector ) { - return Globalize.findClosestCulture.call( this, cultureSelector ); -}; - -Globalize.prototype.format = function( value, format, cultureSelector ) { - return Globalize.format.call( this, value, format, cultureSelector ); -}; - -Globalize.prototype.localize = function( key, cultureSelector ) { - return Globalize.localize.call( this, key, cultureSelector ); -}; - -Globalize.prototype.parseInt = function( value, radix, cultureSelector ) { - return Globalize.parseInt.call( this, value, radix, cultureSelector ); -}; - -Globalize.prototype.parseFloat = function( value, radix, cultureSelector ) { - return Globalize.parseFloat.call( this, value, radix, cultureSelector ); -}; - -Globalize.prototype.culture = function( cultureSelector ) { - return Globalize.culture.call( this, cultureSelector ); -}; - -// -// public singleton functions -// - -Globalize.addCultureInfo = function( cultureName, baseCultureName, info ) { - - var base = {}, - isNew = false; - - if ( typeof cultureName !== "string" ) { - // cultureName argument is optional string. If not specified, assume info is first - // and only argument. Specified info deep-extends current culture. - info = cultureName; - cultureName = this.culture().name; - base = this.cultures[ cultureName ]; - } else if ( typeof baseCultureName !== "string" ) { - // baseCultureName argument is optional string. If not specified, assume info is second - // argument. Specified info deep-extends specified culture. - // If specified culture does not exist, create by deep-extending default - info = baseCultureName; - isNew = ( this.cultures[ cultureName ] == null ); - base = this.cultures[ cultureName ] || this.cultures[ "default" ]; - } else { - // cultureName and baseCultureName specified. Assume a new culture is being created - // by deep-extending an specified base culture - isNew = true; - base = this.cultures[ baseCultureName ]; - } - - this.cultures[ cultureName ] = extend(true, {}, - base, - info - ); - // Make the standard calendar the current culture if it's a new culture - if ( isNew ) { - this.cultures[ cultureName ].calendar = this.cultures[ cultureName ].calendars.standard; - } -}; - -Globalize.findClosestCulture = function( name ) { - var match; - if ( !name ) { - return this.findClosestCulture( this.cultureSelector ) || this.cultures[ "default" ]; - } - if ( typeof name === "string" ) { - name = name.split( "," ); - } - if ( isArray(name) ) { - var lang, - cultures = this.cultures, - list = name, - i, l = list.length, - prioritized = []; - for ( i = 0; i < l; i++ ) { - name = trim( list[i] ); - var pri, parts = name.split( ";" ); - lang = trim( parts[0] ); - if ( parts.length === 1 ) { - pri = 1; - } - else { - name = trim( parts[1] ); - if ( name.indexOf("q=") === 0 ) { - name = name.substr( 2 ); - pri = parseFloat( name ); - pri = isNaN( pri ) ? 0 : pri; - } - else { - pri = 1; - } - } - prioritized.push({ lang: lang, pri: pri }); - } - prioritized.sort(function( a, b ) { - if ( a.pri < b.pri ) { - return 1; - } else if ( a.pri > b.pri ) { - return -1; - } - return 0; - }); - // exact match - for ( i = 0; i < l; i++ ) { - lang = prioritized[ i ].lang; - match = cultures[ lang ]; - if ( match ) { - return match; - } - } - - // neutral language match - for ( i = 0; i < l; i++ ) { - lang = prioritized[ i ].lang; - do { - var index = lang.lastIndexOf( "-" ); - if ( index === -1 ) { - break; - } - // strip off the last part. e.g. en-US => en - lang = lang.substr( 0, index ); - match = cultures[ lang ]; - if ( match ) { - return match; - } - } - while ( 1 ); - } - - // last resort: match first culture using that language - for ( i = 0; i < l; i++ ) { - lang = prioritized[ i ].lang; - for ( var cultureKey in cultures ) { - var culture = cultures[ cultureKey ]; - if ( culture.language === lang ) { - return culture; - } - } - } - } - else if ( typeof name === "object" ) { - return name; - } - return match || null; -}; - -Globalize.format = function( value, format, cultureSelector ) { - var culture = this.findClosestCulture( cultureSelector ); - if ( value instanceof Date ) { - value = formatDate( value, format, culture ); - } - else if ( typeof value === "number" ) { - value = formatNumber( value, format, culture ); - } - return value; -}; - -Globalize.localize = function( key, cultureSelector ) { - return this.findClosestCulture( cultureSelector ).messages[ key ] || - this.cultures[ "default" ].messages[ key ]; -}; - -Globalize.parseDate = function( value, formats, culture ) { - culture = this.findClosestCulture( culture ); - - var date, prop, patterns; - if ( formats ) { - if ( typeof formats === "string" ) { - formats = [ formats ]; - } - if ( formats.length ) { - for ( var i = 0, l = formats.length; i < l; i++ ) { - var format = formats[ i ]; - if ( format ) { - date = parseExact( value, format, culture ); - if ( date ) { - break; - } - } - } - } - } else { - patterns = culture.calendar.patterns; - for ( prop in patterns ) { - date = parseExact( value, patterns[prop], culture ); - if ( date ) { - break; - } - } - } - - return date || null; -}; - -Globalize.parseInt = function( value, radix, cultureSelector ) { - return truncate( Globalize.parseFloat(value, radix, cultureSelector) ); -}; - -Globalize.parseFloat = function( value, radix, cultureSelector ) { - // radix argument is optional - if ( typeof radix !== "number" ) { - cultureSelector = radix; - radix = 10; - } - - var culture = this.findClosestCulture( cultureSelector ); - var ret = NaN, - nf = culture.numberFormat; - - if ( value.indexOf(culture.numberFormat.currency.symbol) > -1 ) { - // remove currency symbol - value = value.replace( culture.numberFormat.currency.symbol, "" ); - // replace decimal seperator - value = value.replace( culture.numberFormat.currency["."], culture.numberFormat["."] ); - } - - //Remove percentage character from number string before parsing - if ( value.indexOf(culture.numberFormat.percent.symbol) > -1){ - value = value.replace( culture.numberFormat.percent.symbol, "" ); - } - - // remove spaces: leading, trailing and between - and number. Used for negative currency pt-BR - value = value.replace( / /g, "" ); - - // allow infinity or hexidecimal - if ( regexInfinity.test(value) ) { - ret = parseFloat( value ); - } - else if ( !radix && regexHex.test(value) ) { - ret = parseInt( value, 16 ); - } - else { - - // determine sign and number - var signInfo = parseNegativePattern( value, nf, nf.pattern[0] ), - sign = signInfo[ 0 ], - num = signInfo[ 1 ]; - - // #44 - try parsing as "(n)" - if ( sign === "" && nf.pattern[0] !== "(n)" ) { - signInfo = parseNegativePattern( value, nf, "(n)" ); - sign = signInfo[ 0 ]; - num = signInfo[ 1 ]; - } - - // try parsing as "-n" - if ( sign === "" && nf.pattern[0] !== "-n" ) { - signInfo = parseNegativePattern( value, nf, "-n" ); - sign = signInfo[ 0 ]; - num = signInfo[ 1 ]; - } - - sign = sign || "+"; - - // determine exponent and number - var exponent, - intAndFraction, - exponentPos = num.indexOf( "e" ); - if ( exponentPos < 0 ) exponentPos = num.indexOf( "E" ); - if ( exponentPos < 0 ) { - intAndFraction = num; - exponent = null; - } - else { - intAndFraction = num.substr( 0, exponentPos ); - exponent = num.substr( exponentPos + 1 ); - } - // determine decimal position - var integer, - fraction, - decSep = nf[ "." ], - decimalPos = intAndFraction.indexOf( decSep ); - if ( decimalPos < 0 ) { - integer = intAndFraction; - fraction = null; - } - else { - integer = intAndFraction.substr( 0, decimalPos ); - fraction = intAndFraction.substr( decimalPos + decSep.length ); - } - // handle groups (e.g. 1,000,000) - var groupSep = nf[ "," ]; - integer = integer.split( groupSep ).join( "" ); - var altGroupSep = groupSep.replace( /\u00A0/g, " " ); - if ( groupSep !== altGroupSep ) { - integer = integer.split( altGroupSep ).join( "" ); - } - // build a natively parsable number string - var p = sign + integer; - if ( fraction !== null ) { - p += "." + fraction; - } - if ( exponent !== null ) { - // exponent itself may have a number patternd - var expSignInfo = parseNegativePattern( exponent, nf, "-n" ); - p += "e" + ( expSignInfo[0] || "+" ) + expSignInfo[ 1 ]; - } - if ( regexParseFloat.test(p) ) { - ret = parseFloat( p ); - } - } - return ret; -}; - -Globalize.culture = function( cultureSelector ) { - // setter - if ( typeof cultureSelector !== "undefined" ) { - this.cultureSelector = cultureSelector; - } - // getter - return this.findClosestCulture( cultureSelector ) || this.cultures[ "default" ]; -}; - -}( this )); diff --git a/Web/Scripts/globalize/message.js b/Web/Scripts/globalize/message.js new file mode 100644 index 0000000..5de252b --- /dev/null +++ b/Web/Scripts/globalize/message.js @@ -0,0 +1,2076 @@ +/** + * Globalize v1.1.1 + * + * http://github.com/jquery/globalize + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-02-04T12:01Z + */ +/*! + * Globalize v1.1.1 2016-02-04T12:01Z Released under the MIT license + * http://git.io/TrdQbw + */ +(function( root, factory ) { + + // UMD returnExports + if ( typeof define === "function" && define.amd ) { + + // AMD + define([ + "cldr", + "../globalize", + "cldr/event" + ], factory ); + } else if ( typeof exports === "object" ) { + + // Node, CommonJS + module.exports = factory( require( "cldrjs" ), require( "globalize" ) ); + } else { + + // Extend global + factory( root.Cldr, root.Globalize ); + } +}(this, function( Cldr, Globalize ) { + +var alwaysArray = Globalize._alwaysArray, + createError = Globalize._createError, + isPlainObject = Globalize._isPlainObject, + runtimeBind = Globalize._runtimeBind, + validateDefaultLocale = Globalize._validateDefaultLocale, + validate = Globalize._validate, + validateParameterPresence = Globalize._validateParameterPresence, + validateParameterType = Globalize._validateParameterType, + validateParameterTypePlainObject = Globalize._validateParameterTypePlainObject; +var MessageFormat; +/* jshint ignore:start */ +MessageFormat = (function() { +MessageFormat._parse = (function() { + + /* + * Generated by PEG.js 0.8.0. + * + * http://pegjs.majda.cz/ + */ + + function peg$subclass(child, parent) { + function ctor() { this.constructor = child; } + ctor.prototype = parent.prototype; + child.prototype = new ctor(); + } + + function SyntaxError(message, expected, found, offset, line, column) { + this.message = message; + this.expected = expected; + this.found = found; + this.offset = offset; + this.line = line; + this.column = column; + + this.name = "SyntaxError"; + } + + peg$subclass(SyntaxError, Error); + + function parse(input) { + var options = arguments.length > 1 ? arguments[1] : {}, + + peg$FAILED = {}, + + peg$startRuleFunctions = { start: peg$parsestart }, + peg$startRuleFunction = peg$parsestart, + + peg$c0 = [], + peg$c1 = function(st) { + return { type: 'messageFormatPattern', statements: st }; + }, + peg$c2 = peg$FAILED, + peg$c3 = "{", + peg$c4 = { type: "literal", value: "{", description: "\"{\"" }, + peg$c5 = null, + peg$c6 = ",", + peg$c7 = { type: "literal", value: ",", description: "\",\"" }, + peg$c8 = "}", + peg$c9 = { type: "literal", value: "}", description: "\"}\"" }, + peg$c10 = function(argIdx, efmt) { + var res = { + type: "messageFormatElement", + argumentIndex: argIdx + }; + if (efmt && efmt.length) { + res.elementFormat = efmt[1]; + } else { + res.output = true; + } + return res; + }, + peg$c11 = "plural", + peg$c12 = { type: "literal", value: "plural", description: "\"plural\"" }, + peg$c13 = function(t, s) { + return { type: "elementFormat", key: t, val: s }; + }, + peg$c14 = "selectordinal", + peg$c15 = { type: "literal", value: "selectordinal", description: "\"selectordinal\"" }, + peg$c16 = "select", + peg$c17 = { type: "literal", value: "select", description: "\"select\"" }, + peg$c18 = function(t, p) { + return { type: "elementFormat", key: t, val: p }; + }, + peg$c19 = function(op, pf) { + return { type: "pluralFormatPattern", pluralForms: pf, offset: op || 0 }; + }, + peg$c20 = "offset", + peg$c21 = { type: "literal", value: "offset", description: "\"offset\"" }, + peg$c22 = ":", + peg$c23 = { type: "literal", value: ":", description: "\":\"" }, + peg$c24 = function(d) { return d; }, + peg$c25 = function(k, mfp) { + return { key: k, val: mfp }; + }, + peg$c26 = function(i) { return i; }, + peg$c27 = "=", + peg$c28 = { type: "literal", value: "=", description: "\"=\"" }, + peg$c29 = function(pf) { return { type: "selectFormatPattern", pluralForms: pf }; }, + peg$c30 = function(p) { return p; }, + peg$c31 = "#", + peg$c32 = { type: "literal", value: "#", description: "\"#\"" }, + peg$c33 = function() { return {type: 'octothorpe'}; }, + peg$c34 = function(s) { return { type: "string", val: s.join('') }; }, + peg$c35 = { type: "other", description: "identifier" }, + peg$c36 = /^[0-9a-zA-Z$_]/, + peg$c37 = { type: "class", value: "[0-9a-zA-Z$_]", description: "[0-9a-zA-Z$_]" }, + peg$c38 = /^[^ \t\n\r,.+={}]/, + peg$c39 = { type: "class", value: "[^ \\t\\n\\r,.+={}]", description: "[^ \\t\\n\\r,.+={}]" }, + peg$c40 = function(s) { return s; }, + peg$c41 = function(chars) { return chars.join(''); }, + peg$c42 = /^[^{}#\\\0-\x1F \t\n\r]/, + peg$c43 = { type: "class", value: "[^{}#\\\\\\0-\\x1F \\t\\n\\r]", description: "[^{}#\\\\\\0-\\x1F \\t\\n\\r]" }, + peg$c44 = function(x) { return x; }, + peg$c45 = "\\\\", + peg$c46 = { type: "literal", value: "\\\\", description: "\"\\\\\\\\\"" }, + peg$c47 = function() { return "\\"; }, + peg$c48 = "\\#", + peg$c49 = { type: "literal", value: "\\#", description: "\"\\\\#\"" }, + peg$c50 = function() { return "#"; }, + peg$c51 = "\\{", + peg$c52 = { type: "literal", value: "\\{", description: "\"\\\\{\"" }, + peg$c53 = function() { return "\u007B"; }, + peg$c54 = "\\}", + peg$c55 = { type: "literal", value: "\\}", description: "\"\\\\}\"" }, + peg$c56 = function() { return "\u007D"; }, + peg$c57 = "\\u", + peg$c58 = { type: "literal", value: "\\u", description: "\"\\\\u\"" }, + peg$c59 = function(h1, h2, h3, h4) { + return String.fromCharCode(parseInt("0x" + h1 + h2 + h3 + h4)); + }, + peg$c60 = /^[0-9]/, + peg$c61 = { type: "class", value: "[0-9]", description: "[0-9]" }, + peg$c62 = function(ds) { + //the number might start with 0 but must not be interpreted as an octal number + //Hence, the base is passed to parseInt explicitely + return parseInt((ds.join('')), 10); + }, + peg$c63 = /^[0-9a-fA-F]/, + peg$c64 = { type: "class", value: "[0-9a-fA-F]", description: "[0-9a-fA-F]" }, + peg$c65 = { type: "other", description: "whitespace" }, + peg$c66 = function(w) { return w.join(''); }, + peg$c67 = /^[ \t\n\r]/, + peg$c68 = { type: "class", value: "[ \\t\\n\\r]", description: "[ \\t\\n\\r]" }, + + peg$currPos = 0, + peg$reportedPos = 0, + peg$cachedPos = 0, + peg$cachedPosDetails = { line: 1, column: 1, seenCR: false }, + peg$maxFailPos = 0, + peg$maxFailExpected = [], + peg$silentFails = 0, + + peg$result; + + if ("startRule" in options) { + if (!(options.startRule in peg$startRuleFunctions)) { + throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); + } + + peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; + } + + function text() { + return input.substring(peg$reportedPos, peg$currPos); + } + + function offset() { + return peg$reportedPos; + } + + function line() { + return peg$computePosDetails(peg$reportedPos).line; + } + + function column() { + return peg$computePosDetails(peg$reportedPos).column; + } + + function expected(description) { + throw peg$buildException( + null, + [{ type: "other", description: description }], + peg$reportedPos + ); + } + + function error(message) { + throw peg$buildException(message, null, peg$reportedPos); + } + + function peg$computePosDetails(pos) { + function advance(details, startPos, endPos) { + var p, ch; + + for (p = startPos; p < endPos; p++) { + ch = input.charAt(p); + if (ch === "\n") { + if (!details.seenCR) { details.line++; } + details.column = 1; + details.seenCR = false; + } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") { + details.line++; + details.column = 1; + details.seenCR = true; + } else { + details.column++; + details.seenCR = false; + } + } + } + + if (peg$cachedPos !== pos) { + if (peg$cachedPos > pos) { + peg$cachedPos = 0; + peg$cachedPosDetails = { line: 1, column: 1, seenCR: false }; + } + advance(peg$cachedPosDetails, peg$cachedPos, pos); + peg$cachedPos = pos; + } + + return peg$cachedPosDetails; + } + + function peg$fail(expected) { + if (peg$currPos < peg$maxFailPos) { return; } + + if (peg$currPos > peg$maxFailPos) { + peg$maxFailPos = peg$currPos; + peg$maxFailExpected = []; + } + + peg$maxFailExpected.push(expected); + } + + function peg$buildException(message, expected, pos) { + function cleanupExpected(expected) { + var i = 1; + + expected.sort(function(a, b) { + if (a.description < b.description) { + return -1; + } else if (a.description > b.description) { + return 1; + } else { + return 0; + } + }); + + while (i < expected.length) { + if (expected[i - 1] === expected[i]) { + expected.splice(i, 1); + } else { + i++; + } + } + } + + function buildMessage(expected, found) { + function stringEscape(s) { + function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); } + + return s + .replace(/\\/g, '\\\\') + .replace(/"/g, '\\"') + .replace(/\x08/g, '\\b') + .replace(/\t/g, '\\t') + .replace(/\n/g, '\\n') + .replace(/\f/g, '\\f') + .replace(/\r/g, '\\r') + .replace(/[\x00-\x07\x0B\x0E\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) + .replace(/[\x10-\x1F\x80-\xFF]/g, function(ch) { return '\\x' + hex(ch); }) + .replace(/[\u0180-\u0FFF]/g, function(ch) { return '\\u0' + hex(ch); }) + .replace(/[\u1080-\uFFFF]/g, function(ch) { return '\\u' + hex(ch); }); + } + + var expectedDescs = new Array(expected.length), + expectedDesc, foundDesc, i; + + for (i = 0; i < expected.length; i++) { + expectedDescs[i] = expected[i].description; + } + + expectedDesc = expected.length > 1 + ? expectedDescs.slice(0, -1).join(", ") + + " or " + + expectedDescs[expected.length - 1] + : expectedDescs[0]; + + foundDesc = found ? "\"" + stringEscape(found) + "\"" : "end of input"; + + return "Expected " + expectedDesc + " but " + foundDesc + " found."; + } + + var posDetails = peg$computePosDetails(pos), + found = pos < input.length ? input.charAt(pos) : null; + + if (expected !== null) { + cleanupExpected(expected); + } + + return new SyntaxError( + message !== null ? message : buildMessage(expected, found), + expected, + found, + pos, + posDetails.line, + posDetails.column + ); + } + + function peg$parsestart() { + var s0; + + s0 = peg$parsemessageFormatPattern(); + + return s0; + } + + function peg$parsemessageFormatPattern() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = []; + s2 = peg$parsemessageFormatElement(); + if (s2 === peg$FAILED) { + s2 = peg$parsestring(); + if (s2 === peg$FAILED) { + s2 = peg$parseoctothorpe(); + } + } + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parsemessageFormatElement(); + if (s2 === peg$FAILED) { + s2 = peg$parsestring(); + if (s2 === peg$FAILED) { + s2 = peg$parseoctothorpe(); + } + } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c1(s1); + } + s0 = s1; + + return s0; + } + + function peg$parsemessageFormatElement() { + var s0, s1, s2, s3, s4, s5, s6; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 123) { + s1 = peg$c3; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c4); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + s3 = peg$parseid(); + if (s3 !== peg$FAILED) { + s4 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c6; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parseelementFormat(); + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$c2; + } + } else { + peg$currPos = s4; + s4 = peg$c2; + } + if (s4 === peg$FAILED) { + s4 = peg$c5; + } + if (s4 !== peg$FAILED) { + s5 = peg$parse_(); + if (s5 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s6 = peg$c8; + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + if (s6 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c10(s3, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + + return s0; + } + + function peg$parseelementFormat() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c11) { + s2 = peg$c11; + peg$currPos += 6; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c12); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s4 = peg$c6; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + if (s4 !== peg$FAILED) { + s5 = peg$parse_(); + if (s5 !== peg$FAILED) { + s6 = peg$parsepluralFormatPattern(); + if (s6 !== peg$FAILED) { + s7 = peg$parse_(); + if (s7 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c13(s2, s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + if (input.substr(peg$currPos, 13) === peg$c14) { + s2 = peg$c14; + peg$currPos += 13; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c15); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s4 = peg$c6; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + if (s4 !== peg$FAILED) { + s5 = peg$parse_(); + if (s5 !== peg$FAILED) { + s6 = peg$parsepluralFormatPattern(); + if (s6 !== peg$FAILED) { + s7 = peg$parse_(); + if (s7 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c13(s2, s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c16) { + s2 = peg$c16; + peg$currPos += 6; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c17); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s4 = peg$c6; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + if (s4 !== peg$FAILED) { + s5 = peg$parse_(); + if (s5 !== peg$FAILED) { + s6 = peg$parseselectFormatPattern(); + if (s6 !== peg$FAILED) { + s7 = peg$parse_(); + if (s7 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c13(s2, s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + s2 = peg$parseid(); + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseargStylePattern(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseargStylePattern(); + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c18(s2, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + } + } + + return s0; + } + + function peg$parsepluralFormatPattern() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$parseoffsetPattern(); + if (s1 === peg$FAILED) { + s1 = peg$c5; + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsepluralForm(); + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsepluralForm(); + } + } else { + s2 = peg$c2; + } + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c19(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + + return s0; + } + + function peg$parseoffsetPattern() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c20) { + s2 = peg$c20; + peg$currPos += 6; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c21); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 58) { + s4 = peg$c22; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + if (s4 !== peg$FAILED) { + s5 = peg$parse_(); + if (s5 !== peg$FAILED) { + s6 = peg$parsedigits(); + if (s6 !== peg$FAILED) { + s7 = peg$parse_(); + if (s7 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c24(s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + + return s0; + } + + function peg$parsepluralForm() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8; + + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + s2 = peg$parsepluralKey(); + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 123) { + s4 = peg$c3; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c4); } + } + if (s4 !== peg$FAILED) { + s5 = peg$parse_(); + if (s5 !== peg$FAILED) { + s6 = peg$parsemessageFormatPattern(); + if (s6 !== peg$FAILED) { + s7 = peg$parse_(); + if (s7 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s8 = peg$c8; + peg$currPos++; + } else { + s8 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + if (s8 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c25(s2, s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + + return s0; + } + + function peg$parsepluralKey() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = peg$parseid(); + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c26(s1); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 61) { + s1 = peg$c27; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c28); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsedigits(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c24(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + + return s0; + } + + function peg$parseselectFormatPattern() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = []; + s2 = peg$parseselectForm(); + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseselectForm(); + } + } else { + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c29(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseselectForm() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8; + + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + s2 = peg$parseid(); + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 123) { + s4 = peg$c3; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c4); } + } + if (s4 !== peg$FAILED) { + s5 = peg$parse_(); + if (s5 !== peg$FAILED) { + s6 = peg$parsemessageFormatPattern(); + if (s6 !== peg$FAILED) { + s7 = peg$parse_(); + if (s7 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s8 = peg$c8; + peg$currPos++; + } else { + s8 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + if (s8 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c25(s2, s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + + return s0; + } + + function peg$parseargStylePattern() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s2 = peg$c6; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + if (s3 !== peg$FAILED) { + s4 = peg$parseid(); + if (s4 !== peg$FAILED) { + s5 = peg$parse_(); + if (s5 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c30(s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + + return s0; + } + + function peg$parseoctothorpe() { + var s0, s1; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 35) { + s1 = peg$c31; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c32); } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c33(); + } + s0 = s1; + + return s0; + } + + function peg$parsestring() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = []; + s2 = peg$parsechars(); + if (s2 === peg$FAILED) { + s2 = peg$parsewhitespace(); + } + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parsechars(); + if (s2 === peg$FAILED) { + s2 = peg$parsewhitespace(); + } + } + } else { + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c34(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseid() { + var s0, s1, s2, s3, s4, s5, s6; + + peg$silentFails++; + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + s3 = peg$currPos; + if (peg$c36.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c37); } + } + if (s4 !== peg$FAILED) { + s5 = []; + if (peg$c38.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c39); } + } + while (s6 !== peg$FAILED) { + s5.push(s6); + if (peg$c38.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c39); } + } + } + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$c2; + } + } else { + peg$currPos = s3; + s3 = peg$c2; + } + if (s3 !== peg$FAILED) { + s3 = input.substring(s2, peg$currPos); + } + s2 = s3; + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c40(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c35); } + } + + return s0; + } + + function peg$parsechars() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = []; + s2 = peg$parsechar(); + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parsechar(); + } + } else { + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c41(s1); + } + s0 = s1; + + return s0; + } + + function peg$parsechar() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + if (peg$c42.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c43); } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c44(s1); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c45) { + s1 = peg$c45; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c46); } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c47(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c48) { + s1 = peg$c48; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c49); } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c50(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c51) { + s1 = peg$c51; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c52); } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c53(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c54) { + s1 = peg$c54; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c55); } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c56(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c57) { + s1 = peg$c57; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c58); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsehexDigit(); + if (s2 !== peg$FAILED) { + s3 = peg$parsehexDigit(); + if (s3 !== peg$FAILED) { + s4 = peg$parsehexDigit(); + if (s4 !== peg$FAILED) { + s5 = peg$parsehexDigit(); + if (s5 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c59(s2, s3, s4, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + } + } + } + } + + return s0; + } + + function peg$parsedigits() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = []; + if (peg$c60.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c61); } + } + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + if (peg$c60.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c61); } + } + } + } else { + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c62(s1); + } + s0 = s1; + + return s0; + } + + function peg$parsehexDigit() { + var s0; + + if (peg$c63.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c64); } + } + + return s0; + } + + function peg$parse_() { + var s0, s1, s2; + + peg$silentFails++; + s0 = peg$currPos; + s1 = []; + s2 = peg$parsewhitespace(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parsewhitespace(); + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c66(s1); + } + s0 = s1; + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c65); } + } + + return s0; + } + + function peg$parsewhitespace() { + var s0; + + if (peg$c67.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c68); } + } + + return s0; + } + + peg$result = peg$startRuleFunction(); + + if (peg$result !== peg$FAILED && peg$currPos === input.length) { + return peg$result; + } else { + if (peg$result !== peg$FAILED && peg$currPos < input.length) { + peg$fail({ type: "end", description: "end of input" }); + } + + throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos); + } + } + + return { + SyntaxError: SyntaxError, + parse: parse + }; +}()).parse; + + +/** @file messageformat.js - ICU PluralFormat + SelectFormat for JavaScript + * @author Alex Sexton - @SlexAxton + * @version 0.3.0-1 + * @copyright 2012-2015 Alex Sexton, Eemeli Aro, and Contributors + * @license To use or fork, MIT. To contribute back, Dojo CLA */ + + +/** Utility function for quoting an Object's key value iff required + * @private */ +function propname(key, obj) { + if (/^[A-Z_$][0-9A-Z_$]*$/i.test(key)) { + return obj ? obj + '.' + key : key; + } else { + var jkey = JSON.stringify(key); + return obj ? obj + '[' + jkey + ']' : jkey; + } +}; + + +/** Create a new message formatter + * + * @class + * @global + * @param {string|string[]} [locale="en"] - The locale to use, with fallbacks + * @param {function} [pluralFunc] - Optional custom pluralization function + * @param {function[]} [formatters] - Optional custom formatting functions */ +function MessageFormat(locale, pluralFunc, formatters) { + this.lc = [locale]; + this.runtime.pluralFuncs = {}; + this.runtime.pluralFuncs[this.lc[0]] = pluralFunc; + this.runtime.fmt = {}; + if (formatters) for (var f in formatters) { + this.runtime.fmt[f] = formatters[f]; + } +} + + + + +/** Parse an input string to its AST + * + * Precompiled from `lib/messageformat-parser.pegjs` by + * {@link http://pegjs.org/ PEG.js}. Included in MessageFormat object + * to enable testing. + * + * @private */ + + + +/** Pluralization functions from + * {@link http://github.com/eemeli/make-plural.js make-plural} + * + * @memberof MessageFormat + * @type Object. */ +MessageFormat.plurals = {}; + + +/** Default number formatting functions in the style of ICU's + * {@link http://icu-project.org/apiref/icu4j/com/ibm/icu/text/MessageFormat.html simpleArg syntax} + * implemented using the + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl Intl} + * object defined by ECMA-402. + * + * **Note**: Intl is not defined in default Node until 0.11.15 / 0.12.0, so + * earlier versions require a {@link https://www.npmjs.com/package/intl polyfill}. + * Therefore {@link MessageFormat.withIntlSupport} needs to be true for these + * functions to be available for inclusion in the output. + * + * @see MessageFormat#setIntlSupport + * + * @namespace + * @memberof MessageFormat + * @property {function} number - Represent a number as an integer, percent or currency value + * @property {function} date - Represent a date as a full/long/default/short string + * @property {function} time - Represent a time as a full/long/default/short string + * + * @example + * > var MessageFormat = require('messageformat'); + * > var mf = (new MessageFormat('en')).setIntlSupport(true); + * > mf.currency = 'EUR'; + * > var mfunc = mf.compile("The total is {V,number,currency}."); + * > mfunc({V:5.5}) + * "The total is €5.50." + * + * @example + * > var MessageFormat = require('messageformat'); + * > var mf = new MessageFormat('en', null, {number: MessageFormat.number}); + * > mf.currency = 'EUR'; + * > var mfunc = mf.compile("The total is {V,number,currency}."); + * > mfunc({V:5.5}) + * "The total is €5.50." */ +MessageFormat.formatters = {}; + +/** Enable or disable support for the default formatters, which require the + * `Intl` object. Note that this can't be autodetected, as the environment + * in which the formatted text is compiled into Javascript functions is not + * necessarily the same environment in which they will get executed. + * + * @see MessageFormat.formatters + * + * @memberof MessageFormat + * @param {boolean} [enable=true] + * @returns {Object} The MessageFormat instance, to allow for chaining + * @example + * > var Intl = require('intl'); + * > var MessageFormat = require('messageformat'); + * > var mf = (new MessageFormat('en')).setIntlSupport(true); + * > mf.currency = 'EUR'; + * > mf.compile("The total is {V,number,currency}.")({V:5.5}); + * "The total is €5.50." */ + + + +/** A set of utility functions that are called by the compiled Javascript + * functions, these are included locally in the output of {@link + * MessageFormat#compile compile()}. + * + * @namespace + * @memberof MessageFormat */ +MessageFormat.prototype.runtime = { + + /** Utility function for `#` in plural rules + * + * @param {number} value - The value to operate on + * @param {number} [offset=0] - An optional offset, set by the surrounding context */ + number: function(value, offset) { + if (isNaN(value)) throw new Error("'" + value + "' isn't a number."); + return value - (offset || 0); + }, + + /** Utility function for `{N, plural|selectordinal, ...}` + * + * @param {number} value - The key to use to find a pluralization rule + * @param {number} offset - An offset to apply to `value` + * @param {function} lcfunc - A locale function from `pluralFuncs` + * @param {Object.} data - The object from which results are looked up + * @param {?boolean} isOrdinal - If true, use ordinal rather than cardinal rules + * @returns {string} The result of the pluralization */ + plural: function(value, offset, lcfunc, data, isOrdinal) { + if ({}.hasOwnProperty.call(data, value)) return data[value](); + if (offset) value -= offset; + var key = lcfunc(value, isOrdinal); + if (key in data) return data[key](); + return data.other(); + }, + + /** Utility function for `{N, select, ...}` + * + * @param {number} value - The key to use to find a selection + * @param {Object.} data - The object from which results are looked up + * @returns {string} The result of the select statement */ + select: function(value, data) { + if ({}.hasOwnProperty.call(data, value)) return data[value](); + return data.other() + }, + + /** Pluralization functions included in compiled output + * @instance + * @type Object. */ + pluralFuncs: {}, + + /** Custom formatting functions called by `{var, fn[, args]*}` syntax + * + * For examples, see {@link MessageFormat.formatters} + * + * @instance + * @see MessageFormat.formatters + * @type Object. */ + fmt: {}, + + /** Custom stringifier to clean up browser inconsistencies + * @instance */ + toString: function () { + var _stringify = function(o, level) { + if (typeof o != 'object') { + var funcStr = o.toString().replace(/^(function )\w*/, '$1'); + var indent = /([ \t]*)\S.*$/.exec(funcStr); + return indent ? funcStr.replace(new RegExp('^' + indent[1], 'mg'), '') : funcStr; + } + var s = []; + for (var i in o) if (i != 'toString') { + if (level == 0) s.push('var ' + i + ' = ' + _stringify(o[i], level + 1) + ';\n'); + else s.push(propname(i) + ': ' + _stringify(o[i], level + 1)); + } + if (level == 0) return s.join(''); + if (s.length == 0) return '{}'; + var indent = ' '; while (--level) indent += ' '; + return '{\n' + s.join(',\n').replace(/^/gm, indent) + '\n}'; + }; + return _stringify(this, 0); + } +}; + + +/** Recursively map an AST to its resulting string + * + * @memberof MessageFormat + * + * @param ast - the Ast node for which the JS code should be generated + * + * @private */ +MessageFormat.prototype._precompile = function(ast, data) { + data = data || { keys: {}, offset: {} }; + var r = [], i, tmp, args = []; + + switch ( ast.type ) { + case 'messageFormatPattern': + for ( i = 0; i < ast.statements.length; ++i ) { + r.push(this._precompile( ast.statements[i], data )); + } + tmp = r.join(' + ') || '""'; + return data.pf_count ? tmp : 'function(d) { return ' + tmp + '; }'; + + case 'messageFormatElement': + data.pf_count = data.pf_count || 0; + if ( ast.output ) { + return propname(ast.argumentIndex, 'd'); + } + else { + data.keys[data.pf_count] = ast.argumentIndex; + return this._precompile( ast.elementFormat, data ); + } + return ''; + + case 'elementFormat': + args = [ propname(data.keys[data.pf_count], 'd') ]; + switch (ast.key) { + case 'select': + args.push(this._precompile(ast.val, data)); + return 'select(' + args.join(', ') + ')'; + case 'selectordinal': + args = args.concat([ 0, propname(this.lc[0], 'pluralFuncs'), this._precompile(ast.val, data), 1 ]); + return 'plural(' + args.join(', ') + ')'; + case 'plural': + data.offset[data.pf_count || 0] = ast.val.offset || 0; + args = args.concat([ data.offset[data.pf_count] || 0, propname(this.lc[0], 'pluralFuncs'), this._precompile(ast.val, data) ]); + return 'plural(' + args.join(', ') + ')'; + default: + if (this.withIntlSupport && !(ast.key in this.runtime.fmt) && (ast.key in MessageFormat.formatters)) { + tmp = MessageFormat.formatters[ast.key]; + this.runtime.fmt[ast.key] = (typeof tmp(this) == 'function') ? tmp(this) : tmp; + } + args.push(JSON.stringify(this.lc)); + if (ast.val && ast.val.length) args.push(JSON.stringify(ast.val.length == 1 ? ast.val[0] : ast.val)); + return 'fmt.' + ast.key + '(' + args.join(', ') + ')'; + } + + case 'pluralFormatPattern': + case 'selectFormatPattern': + data.pf_count = data.pf_count || 0; + if (ast.type == 'selectFormatPattern') data.offset[data.pf_count] = 0; + var needOther = true; + for (i = 0; i < ast.pluralForms.length; ++i) { + var key = ast.pluralForms[i].key; + if (key === 'other') needOther = false; + var data_copy = JSON.parse(JSON.stringify(data)); + data_copy.pf_count++; + r.push(propname(key) + ': function() { return ' + this._precompile(ast.pluralForms[i].val, data_copy) + ';}'); + } + if (needOther) throw new Error("No 'other' form found in " + ast.type + " " + data.pf_count); + return '{ ' + r.join(', ') + ' }'; + + case 'string': + return JSON.stringify(ast.val || ""); + + case 'octothorpe': + if (!data.pf_count) return '"#"'; + args = [ propname(data.keys[data.pf_count-1], 'd') ]; + if (data.offset[data.pf_count-1]) args.push(data.offset[data.pf_count-1]); + return 'number(' + args.join(', ') + ')'; + + default: + throw new Error( 'Bad AST type: ' + ast.type ); + } +}; + +/** Compile messages into an executable function with clean string + * representation. + * + * If `messages` is a single string including ICU MessageFormat declarations, + * `opt` is ignored and the returned function takes a single Object parameter + * `d` representing each of the input's defined variables. The returned + * function will be defined in a local scope that includes all the required + * runtime variables. + * + * If `messages` is a map of keys to strings, or a map of namespace keys to + * such key/string maps, the returned function will fill the specified global + * with javascript functions matching the structure of the input. In such use, + * the output of `compile()` is expected to be serialized using `.toString()`, + * and will include definitions of the runtime functions. If `opt.global` is + * null, calling the output function will return the object itself. + * + * Together, the input parameters should match the following patterns: + * ```js + * messages = "string" || { key0: "string0", key1: "string1", ... } || { + * ns0: { key0: "string0", key1: "string1", ... }, + * ns1: { key0: "string0", key1: "string1", ... }, + * ... + * } + * + * opt = null || { + * locale: null || { + * ns0: "lc0" || [ "lc0", ... ], + * ns1: "lc1" || [ "lc1", ... ], + * ... + * }, + * global: null || "module.exports" || "exports" || "i18n" || ... + * } + * ``` + * + * @memberof MessageFormat + * @param {string|Object} + * messages - The input message(s) to be compiled, in ICU MessageFormat + * @param {Object} [opt={}] - Options controlling output for non-simple intput + * @param {Object} [opt.locale] - The locales to use for the messages, with a + * structure matching that of `messages` + * @param {string} [opt.global=""] - The global variable that the output + * function should use, or a null string for none. "exports" and + * "module.exports" are recognised as special cases. + * @returns {function} The first match found for the given locale(s) + * + * @example + * > var MessageFormat = require('messageformat'), + * ... mf = new MessageFormat('en'), + * ... mfunc0 = mf.compile('A {TYPE} example.'); + * > mfunc0({TYPE:'simple'}) + * 'A simple example.' + * > mfunc0.toString() + * 'function (d) { return "A " + d.TYPE + " example."; }' + * + * @example + * > var msgSet = { a: 'A {TYPE} example.', + * ... b: 'This has {COUNT, plural, one{one member} other{# members}}.' }, + * ... mfuncSet = mf.compile(msgSet); + * > mfuncSet().a({TYPE:'more complex'}) + * 'A more complex example.' + * > mfuncSet().b({COUNT:2}) + * 'This has 2 members.' + * + * > console.log(mfuncSet.toString()) + * function anonymous() { + * var number = function (value, offset) { + * if (isNaN(value)) throw new Error("'" + value + "' isn't a number."); + * return value - (offset || 0); + * }; + * var plural = function (value, offset, lcfunc, data, isOrdinal) { + * if ({}.hasOwnProperty.call(data, value)) return data[value](); + * if (offset) value -= offset; + * var key = lcfunc(value, isOrdinal); + * if (key in data) return data[key](); + * return data.other(); + * }; + * var select = function (value, data) { + * if ({}.hasOwnProperty.call(data, value)) return data[value](); + * return data.other() + * }; + * var pluralFuncs = { + * en: function (n, ord) { + * var s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, + * n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2); + * if (ord) return (n10 == 1 && n100 != 11) ? 'one' + * : (n10 == 2 && n100 != 12) ? 'two' + * : (n10 == 3 && n100 != 13) ? 'few' + * : 'other'; + * return (n == 1 && v0) ? 'one' : 'other'; + * } + * }; + * var fmt = {}; + * + * return { + * a: function(d) { return "A " + d.TYPE + " example."; }, + * b: function(d) { return "This has " + plural(d.COUNT, 0, pluralFuncs.en, { one: function() { return "one member";}, other: function() { return number(d.COUNT)+" members";} }) + "."; } + * } + * } + * + * @example + * > mf.runtime.pluralFuncs.fi = MessageFormat.plurals.fi; + * > var multiSet = { en: { a: 'A {TYPE} example.', + * ... b: 'This is the {COUNT, selectordinal, one{#st} two{#nd} few{#rd} other{#th}} example.' }, + * ... fi: { a: '{TYPE} esimerkki.', + * ... b: 'Tämä on {COUNT, selectordinal, other{#.}} esimerkki.' } }, + * ... multiSetLocales = { en: 'en', fi: 'fi' }, + * ... mfuncSet = mf.compile(multiSet, { locale: multiSetLocales, global: 'i18n' }); + * > mfuncSet(this); + * > i18n.en.b({COUNT:3}) + * 'This is the 3rd example.' + * > i18n.fi.b({COUNT:3}) + * 'Tämä on 3. esimerkki.' */ +MessageFormat.prototype.compile = function ( messages, opt ) { + var r = {}, lc0 = this.lc, + compileMsg = function(self, msg) { + try { + var ast = MessageFormat._parse(msg); + return self._precompile(ast); + } catch (e) { + throw new Error((ast ? 'Precompiler' : 'Parser') + ' error: ' + e.toString()); + } + }, + stringify = function(r, level) { + if (!level) level = 0; + if (typeof r != 'object') return r; + var o = [], indent = ''; + for (var i = 0; i < level; ++i) indent += ' '; + for (var k in r) o.push('\n' + indent + ' ' + propname(k) + ': ' + stringify(r[k], level + 1)); + return '{' + o.join(',') + '\n' + indent + '}'; + }; + + if (typeof messages == 'string') { + var f = new Function( + 'number, plural, select, pluralFuncs, fmt', + 'return ' + compileMsg(this, messages)); + return f(this.runtime.number, this.runtime.plural, this.runtime.select, + this.runtime.pluralFuncs, this.runtime.fmt); + } + + opt = opt || {}; + + for (var ns in messages) { + if (opt.locale) this.lc = opt.locale[ns] && [].concat(opt.locale[ns]) || lc0; + if (typeof messages[ns] == 'string') { + try { r[ns] = compileMsg(this, messages[ns]); } + catch (e) { e.message = e.message.replace(':', ' with `' + ns + '`:'); throw e; } + } else { + r[ns] = {}; + for (var key in messages[ns]) { + try { r[ns][key] = compileMsg(this, messages[ns][key]); } + catch (e) { e.message = e.message.replace(':', ' with `' + key + '` in `' + ns + '`:'); throw e; } + } + } + } + + this.lc = lc0; + var s = this.runtime.toString() + '\n'; + switch (opt.global || '') { + case 'exports': + var o = []; + for (var k in r) o.push(propname(k, 'exports') + ' = ' + stringify(r[k])); + return new Function(s + o.join(';\n')); + case 'module.exports': + return new Function(s + 'module.exports = ' + stringify(r)); + case '': + return new Function(s + 'return ' + stringify(r)); + default: + return new Function('G', s + propname(opt.global, 'G') + ' = ' + stringify(r)); + } +}; + + +return MessageFormat; +}()); +/* jshint ignore:end */ + + +var createErrorPluralModulePresence = function() { + return createError( "E_MISSING_PLURAL_MODULE", "Plural module not loaded." ); +}; + + + + +var validateMessageBundle = function( cldr ) { + validate( + "E_MISSING_MESSAGE_BUNDLE", + "Missing message bundle for locale `{locale}`.", + cldr.attributes.bundle && cldr.get( "globalize-messages/{bundle}" ) !== undefined, + { + locale: cldr.locale + } + ); +}; + + + + +var validateMessagePresence = function( path, value ) { + path = path.join( "/" ); + validate( "E_MISSING_MESSAGE", "Missing required message content `{path}`.", + value !== undefined, { path: path } ); +}; + + + + +var validateMessageType = function( path, value ) { + path = path.join( "/" ); + validate( + "E_INVALID_MESSAGE", + "Invalid message content `{path}`. {expected} expected.", + typeof value === "string", + { + expected: "a string", + path: path + } + ); +}; + + + + +var validateParameterTypeMessageVariables = function( value, name ) { + validateParameterType( + value, + name, + value === undefined || isPlainObject( value ) || Array.isArray( value ), + "Array or Plain Object" + ); +}; + + + + +var messageFormatterFn = function( formatter ) { + return function messageFormatter( variables ) { + if ( typeof variables === "number" || typeof variables === "string" ) { + variables = [].slice.call( arguments, 0 ); + } + validateParameterTypeMessageVariables( variables, "variables" ); + return formatter( variables ); + }; +}; + + + + +var messageFormatterRuntimeBind = function( cldr, messageformatter ) { + var locale = cldr.locale, + origToString = messageformatter.toString; + + messageformatter.toString = function() { + var argNames, argValues, output, + args = {}; + + // Properly adjust SlexAxton/messageformat.js compiled variables with Globalize variables: + output = origToString.call( messageformatter ); + + if ( /number\(/.test( output ) ) { + args.number = "messageFormat.number"; + } + + if ( /plural\(/.test( output ) ) { + args.plural = "messageFormat.plural"; + } + + if ( /select\(/.test( output ) ) { + args.select = "messageFormat.select"; + } + + output.replace( /pluralFuncs(\[([^\]]+)\]|\.([a-zA-Z]+))/, function( match ) { + args.pluralFuncs = "{" + + "\"" + locale + "\": Globalize(\"" + locale + "\").pluralGenerator()" + + "}"; + return match; + }); + + argNames = Object.keys( args ).join( ", " ); + argValues = Object.keys( args ).map(function( key ) { + return args[ key ]; + }).join( ", " ); + + return "(function( " + argNames + " ) {\n" + + " return " + output + "\n" + + "})(" + argValues + ")"; + }; + + return messageformatter; +}; + + + + +var slice = [].slice; + +/** + * .loadMessages( json ) + * + * @json [JSON] + * + * Load translation data. + */ +Globalize.loadMessages = function( json ) { + var locale, + customData = { + "globalize-messages": json, + "main": {} + }; + + validateParameterPresence( json, "json" ); + validateParameterTypePlainObject( json, "json" ); + + // Set available bundles by populating customData main dataset. + for ( locale in json ) { + if ( json.hasOwnProperty( locale ) ) { + customData.main[ locale ] = {}; + } + } + + Cldr.load( customData ); +}; + +/** + * .messageFormatter( path ) + * + * @path [String or Array] + * + * Format a message given its path. + */ +Globalize.messageFormatter = +Globalize.prototype.messageFormatter = function( path ) { + var cldr, formatter, message, pluralGenerator, returnFn, + args = slice.call( arguments, 0 ); + + validateParameterPresence( path, "path" ); + validateParameterType( path, "path", typeof path === "string" || Array.isArray( path ), + "a String nor an Array" ); + + path = alwaysArray( path ); + cldr = this.cldr; + + validateDefaultLocale( cldr ); + validateMessageBundle( cldr ); + + message = cldr.get( [ "globalize-messages/{bundle}" ].concat( path ) ); + validateMessagePresence( path, message ); + + // If message is an Array, concatenate it. + if ( Array.isArray( message ) ) { + message = message.join( " " ); + } + validateMessageType( path, message ); + + // Is plural module present? Yes, use its generator. Nope, use an error generator. + pluralGenerator = this.plural !== undefined ? + this.pluralGenerator() : + createErrorPluralModulePresence; + + formatter = new MessageFormat( cldr.locale, pluralGenerator ).compile( message ); + + returnFn = messageFormatterFn( formatter ); + + runtimeBind( args, cldr, returnFn, + [ messageFormatterRuntimeBind( cldr, formatter ), pluralGenerator ] ); + + return returnFn; +}; + +/** + * .formatMessage( path [, variables] ) + * + * @path [String or Array] + * + * @variables [Number, String, Array or Object] + * + * Format a message given its path. + */ +Globalize.formatMessage = +Globalize.prototype.formatMessage = function( path /* , variables */ ) { + return this.messageFormatter( path ).apply( {}, slice.call( arguments, 1 ) ); +}; + +return Globalize; + + + + +})); diff --git a/Web/Scripts/globalize/number.js b/Web/Scripts/globalize/number.js new file mode 100644 index 0000000..c2a859c --- /dev/null +++ b/Web/Scripts/globalize/number.js @@ -0,0 +1,1311 @@ +/** + * Globalize v1.1.1 + * + * http://github.com/jquery/globalize + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-02-04T12:01Z + */ +/*! + * Globalize v1.1.1 2016-02-04T12:01Z Released under the MIT license + * http://git.io/TrdQbw + */ +(function( root, factory ) { + + // UMD returnExports + if ( typeof define === "function" && define.amd ) { + + // AMD + define([ + "cldr", + "../globalize", + "cldr/event", + "cldr/supplemental" + ], factory ); + } else if ( typeof exports === "object" ) { + + // Node, CommonJS + module.exports = factory( require( "cldrjs" ), require( "globalize" ) ); + } else { + + // Global + factory( root.Cldr, root.Globalize ); + } +}(this, function( Cldr, Globalize ) { + +var createError = Globalize._createError, + objectExtend = Globalize._objectExtend, + regexpEscape = Globalize._regexpEscape, + runtimeBind = Globalize._runtimeBind, + stringPad = Globalize._stringPad, + validateCldr = Globalize._validateCldr, + validateDefaultLocale = Globalize._validateDefaultLocale, + validateParameterPresence = Globalize._validateParameterPresence, + validateParameterRange = Globalize._validateParameterRange, + validateParameterType = Globalize._validateParameterType, + validateParameterTypePlainObject = Globalize._validateParameterTypePlainObject; + + +var createErrorUnsupportedFeature = function( feature ) { + return createError( "E_UNSUPPORTED", "Unsupported {feature}.", { + feature: feature + }); +}; + + + + +var validateParameterTypeNumber = function( value, name ) { + validateParameterType( + value, + name, + value === undefined || typeof value === "number", + "Number" + ); +}; + + + + +var validateParameterTypeString = function( value, name ) { + validateParameterType( + value, + name, + value === undefined || typeof value === "string", + "a string" + ); +}; + + + + +/** + * goupingSeparator( number, primaryGroupingSize, secondaryGroupingSize ) + * + * @number [Number]. + * + * @primaryGroupingSize [Number] + * + * @secondaryGroupingSize [Number] + * + * Return the formatted number with group separator. + */ +var numberFormatGroupingSeparator = function( number, primaryGroupingSize, secondaryGroupingSize ) { + var index, + currentGroupingSize = primaryGroupingSize, + ret = "", + sep = ",", + switchToSecondary = secondaryGroupingSize ? true : false; + + number = String( number ).split( "." ); + index = number[ 0 ].length; + + while ( index > currentGroupingSize ) { + ret = number[ 0 ].slice( index - currentGroupingSize, index ) + + ( ret.length ? sep : "" ) + ret; + index -= currentGroupingSize; + if ( switchToSecondary ) { + currentGroupingSize = secondaryGroupingSize; + switchToSecondary = false; + } + } + + number[ 0 ] = number[ 0 ].slice( 0, index ) + ( ret.length ? sep : "" ) + ret; + return number.join( "." ); +}; + + + + +/** + * integerFractionDigits( number, minimumIntegerDigits, minimumFractionDigits, + * maximumFractionDigits, round, roundIncrement ) + * + * @number [Number] + * + * @minimumIntegerDigits [Number] + * + * @minimumFractionDigits [Number] + * + * @maximumFractionDigits [Number] + * + * @round [Function] + * + * @roundIncrement [Function] + * + * Return the formatted integer and fraction digits. + */ +var numberFormatIntegerFractionDigits = function( number, minimumIntegerDigits, minimumFractionDigits, maximumFractionDigits, round, + roundIncrement ) { + + // Fraction + if ( maximumFractionDigits ) { + + // Rounding + if ( roundIncrement ) { + number = round( number, roundIncrement ); + + // Maximum fraction digits + } else { + number = round( number, { exponent: -maximumFractionDigits } ); + } + + // Minimum fraction digits + if ( minimumFractionDigits ) { + number = String( number ).split( "." ); + number[ 1 ] = stringPad( number[ 1 ] || "", minimumFractionDigits, true ); + number = number.join( "." ); + } + } else { + number = round( number ); + } + + number = String( number ); + + // Minimum integer digits + if ( minimumIntegerDigits ) { + number = number.split( "." ); + number[ 0 ] = stringPad( number[ 0 ], minimumIntegerDigits ); + number = number.join( "." ); + } + + return number; +}; + + + + +/** + * toPrecision( number, precision, round ) + * + * @number (Number) + * + * @precision (Number) significant figures precision (not decimal precision). + * + * @round (Function) + * + * Return number.toPrecision( precision ) using the given round function. + */ +var numberToPrecision = function( number, precision, round ) { + var roundOrder; + + // Get number at two extra significant figure precision. + number = number.toPrecision( precision + 2 ); + + // Then, round it to the required significant figure precision. + roundOrder = Math.ceil( Math.log( Math.abs( number ) ) / Math.log( 10 ) ); + roundOrder -= precision; + + return round( number, { exponent: roundOrder } ); +}; + + + + +/** + * toPrecision( number, minimumSignificantDigits, maximumSignificantDigits, round ) + * + * @number [Number] + * + * @minimumSignificantDigits [Number] + * + * @maximumSignificantDigits [Number] + * + * @round [Function] + * + * Return the formatted significant digits number. + */ +var numberFormatSignificantDigits = function( number, minimumSignificantDigits, maximumSignificantDigits, round ) { + var atMinimum, atMaximum; + + // Sanity check. + if ( minimumSignificantDigits > maximumSignificantDigits ) { + maximumSignificantDigits = minimumSignificantDigits; + } + + atMinimum = numberToPrecision( number, minimumSignificantDigits, round ); + atMaximum = numberToPrecision( number, maximumSignificantDigits, round ); + + // Use atMaximum only if it has more significant digits than atMinimum. + number = +atMinimum === +atMaximum ? atMinimum : atMaximum; + + // Expand integer numbers, eg. 123e5 to 12300. + number = ( +number ).toString( 10 ); + + if ( ( /e/ ).test( number ) ) { + throw createErrorUnsupportedFeature({ + feature: "integers out of (1e21, 1e-7)" + }); + } + + // Add trailing zeros if necessary. + if ( minimumSignificantDigits - number.replace( /^0+|\./g, "" ).length > 0 ) { + number = number.split( "." ); + number[ 1 ] = stringPad( number[ 1 ] || "", minimumSignificantDigits - number[ 0 ].replace( /^0+/, "" ).length, true ); + number = number.join( "." ); + } + + return number; +}; + + + + +/** + * format( number, properties ) + * + * @number [Number]. + * + * @properties [Object] Output of number/format-properties. + * + * Return the formatted number. + * ref: http://www.unicode.org/reports/tr35/tr35-numbers.html + */ +var numberFormat = function( number, properties ) { + var infinitySymbol, maximumFractionDigits, maximumSignificantDigits, minimumFractionDigits, + minimumIntegerDigits, minimumSignificantDigits, nanSymbol, nuDigitsMap, padding, prefix, + primaryGroupingSize, pattern, ret, round, roundIncrement, secondaryGroupingSize, suffix, + symbolMap; + + padding = properties[ 1 ]; + minimumIntegerDigits = properties[ 2 ]; + minimumFractionDigits = properties[ 3 ]; + maximumFractionDigits = properties[ 4 ]; + minimumSignificantDigits = properties[ 5 ]; + maximumSignificantDigits = properties[ 6 ]; + roundIncrement = properties[ 7 ]; + primaryGroupingSize = properties[ 8 ]; + secondaryGroupingSize = properties[ 9 ]; + round = properties[ 15 ]; + infinitySymbol = properties[ 16 ]; + nanSymbol = properties[ 17 ]; + symbolMap = properties[ 18 ]; + nuDigitsMap = properties[ 19 ]; + + // NaN + if ( isNaN( number ) ) { + return nanSymbol; + } + + if ( number < 0 ) { + pattern = properties[ 12 ]; + prefix = properties[ 13 ]; + suffix = properties[ 14 ]; + } else { + pattern = properties[ 11 ]; + prefix = properties[ 0 ]; + suffix = properties[ 10 ]; + } + + // Infinity + if ( !isFinite( number ) ) { + return prefix + infinitySymbol + suffix; + } + + ret = prefix; + + // Percent + if ( pattern.indexOf( "%" ) !== -1 ) { + number *= 100; + + // Per mille + } else if ( pattern.indexOf( "\u2030" ) !== -1 ) { + number *= 1000; + } + + // Significant digit format + if ( !isNaN( minimumSignificantDigits * maximumSignificantDigits ) ) { + number = numberFormatSignificantDigits( number, minimumSignificantDigits, + maximumSignificantDigits, round ); + + // Integer and fractional format + } else { + number = numberFormatIntegerFractionDigits( number, minimumIntegerDigits, + minimumFractionDigits, maximumFractionDigits, round, roundIncrement ); + } + + // Remove the possible number minus sign + number = number.replace( /^-/, "" ); + + // Grouping separators + if ( primaryGroupingSize ) { + number = numberFormatGroupingSeparator( number, primaryGroupingSize, + secondaryGroupingSize ); + } + + ret += number; + + // Scientific notation + // TODO implement here + + // Padding/'([^']|'')+'|''|[.,\-+E%\u2030]/g + // TODO implement here + + ret += suffix; + + return ret.replace( /('([^']|'')+'|'')|./g, function( character, literal ) { + + // Literals + if ( literal ) { + literal = literal.replace( /''/, "'" ); + if ( literal.length > 2 ) { + literal = literal.slice( 1, -1 ); + } + return literal; + } + + // Symbols + character = character.replace( /[.,\-+E%\u2030]/, function( symbol ) { + return symbolMap[ symbol ]; + }); + + // Numbering system + if ( nuDigitsMap ) { + character = character.replace( /[0-9]/, function( digit ) { + return nuDigitsMap[ +digit ]; + }); + } + + return character; + }); +}; + + + + +var numberFormatterFn = function( properties ) { + return function numberFormatter( value ) { + validateParameterPresence( value, "value" ); + validateParameterTypeNumber( value, "value" ); + + return numberFormat( value, properties ); + }; +}; + + + + +/** + * NumberingSystem( cldr ) + * + * - http://www.unicode.org/reports/tr35/tr35-numbers.html#otherNumberingSystems + * - http://cldr.unicode.org/index/bcp47-extension + * - http://www.unicode.org/reports/tr35/#u_Extension + */ +var numberNumberingSystem = function( cldr ) { + var nu = cldr.attributes[ "u-nu" ]; + + if ( nu ) { + if ( nu === "traditio" ) { + nu = "traditional"; + } + if ( [ "native", "traditional", "finance" ].indexOf( nu ) !== -1 ) { + + // Unicode locale extension `u-nu` is set using either (native, traditional or + // finance). So, lookup the respective locale's numberingSystem and return it. + return cldr.main([ "numbers/otherNumberingSystems", nu ]); + } + + // Unicode locale extension `u-nu` is set with an explicit numberingSystem. Return it. + return nu; + } + + // Return the default numberingSystem. + return cldr.main( "numbers/defaultNumberingSystem" ); +}; + + + + +/** + * nuMap( cldr ) + * + * @cldr [Cldr instance]. + * + * Return digits map if numbering system is different than `latn`. + */ +var numberNumberingSystemDigitsMap = function( cldr ) { + var aux, + nu = numberNumberingSystem( cldr ); + + if ( nu === "latn" ) { + return; + } + + aux = cldr.supplemental([ "numberingSystems", nu ]); + + if ( aux._type !== "numeric" ) { + throw createErrorUnsupportedFeature( "`" + aux._type + "` numbering system" ); + } + + return aux._digits; +}; + + + + +/** + * EBNF representation: + * + * number_pattern_re = prefix? + * padding? + * (integer_fraction_pattern | significant_pattern) + * scientific_notation? + * suffix? + * + * prefix = non_number_stuff + * + * padding = "*" regexp(.) + * + * integer_fraction_pattern = integer_pattern + * fraction_pattern? + * + * integer_pattern = regexp([#,]*[0,]*0+) + * + * fraction_pattern = "." regexp(0*[0-9]*#*) + * + * significant_pattern = regexp([#,]*@+#*) + * + * scientific_notation = regexp(E\+?0+) + * + * suffix = non_number_stuff + * + * non_number_stuff = regexp(('[^']+'|''|[^*#@0,.E])*) + * + * + * Regexp groups: + * + * 0: number_pattern_re + * 1: prefix + * 2: - + * 3: padding + * 4: (integer_fraction_pattern | significant_pattern) + * 5: integer_fraction_pattern + * 6: integer_pattern + * 7: fraction_pattern + * 8: significant_pattern + * 9: scientific_notation + * 10: suffix + * 11: - + */ +var numberPatternRe = ( /^(('[^']+'|''|[^*#@0,.E])*)(\*.)?((([#,]*[0,]*0+)(\.0*[0-9]*#*)?)|([#,]*@+#*))(E\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/ ); + + + + +/** + * format( number, pattern ) + * + * @number [Number]. + * + * @pattern [String] raw pattern for numbers. + * + * Return the formatted number. + * ref: http://www.unicode.org/reports/tr35/tr35-numbers.html + */ +var numberPatternProperties = function( pattern ) { + var aux1, aux2, fractionPattern, integerFractionOrSignificantPattern, integerPattern, + maximumFractionDigits, maximumSignificantDigits, minimumFractionDigits, + minimumIntegerDigits, minimumSignificantDigits, padding, prefix, primaryGroupingSize, + roundIncrement, scientificNotation, secondaryGroupingSize, significantPattern, suffix; + + pattern = pattern.match( numberPatternRe ); + if ( !pattern ) { + throw new Error( "Invalid pattern: " + pattern ); + } + + prefix = pattern[ 1 ]; + padding = pattern[ 3 ]; + integerFractionOrSignificantPattern = pattern[ 4 ]; + significantPattern = pattern[ 8 ]; + scientificNotation = pattern[ 9 ]; + suffix = pattern[ 10 ]; + + // Significant digit format + if ( significantPattern ) { + significantPattern.replace( /(@+)(#*)/, function( match, minimumSignificantDigitsMatch, maximumSignificantDigitsMatch ) { + minimumSignificantDigits = minimumSignificantDigitsMatch.length; + maximumSignificantDigits = minimumSignificantDigits + + maximumSignificantDigitsMatch.length; + }); + + // Integer and fractional format + } else { + fractionPattern = pattern[ 7 ]; + integerPattern = pattern[ 6 ]; + + if ( fractionPattern ) { + + // Minimum fraction digits, and rounding. + fractionPattern.replace( /[0-9]+/, function( match ) { + minimumFractionDigits = match; + }); + if ( minimumFractionDigits ) { + roundIncrement = +( "0." + minimumFractionDigits ); + minimumFractionDigits = minimumFractionDigits.length; + } else { + minimumFractionDigits = 0; + } + + // Maximum fraction digits + // 1: ignore decimal character + maximumFractionDigits = fractionPattern.length - 1 /* 1 */; + } + + // Minimum integer digits + integerPattern.replace( /0+$/, function( match ) { + minimumIntegerDigits = match.length; + }); + } + + // Scientific notation + if ( scientificNotation ) { + throw createErrorUnsupportedFeature({ + feature: "scientific notation (not implemented)" + }); + } + + // Padding + if ( padding ) { + throw createErrorUnsupportedFeature({ + feature: "padding (not implemented)" + }); + } + + // Grouping + if ( ( aux1 = integerFractionOrSignificantPattern.lastIndexOf( "," ) ) !== -1 ) { + + // Primary grouping size is the interval between the last group separator and the end of + // the integer (or the end of the significant pattern). + aux2 = integerFractionOrSignificantPattern.split( "." )[ 0 ]; + primaryGroupingSize = aux2.length - aux1 - 1; + + // Secondary grouping size is the interval between the last two group separators. + if ( ( aux2 = integerFractionOrSignificantPattern.lastIndexOf( ",", aux1 - 1 ) ) !== -1 ) { + secondaryGroupingSize = aux1 - 1 - aux2; + } + } + + // Return: + // 0: @prefix String + // 1: @padding Array [ , ] TODO + // 2: @minimumIntegerDigits non-negative integer Number value indicating the minimum integer + // digits to be used. Numbers will be padded with leading zeroes if necessary. + // 3: @minimumFractionDigits and + // 4: @maximumFractionDigits are non-negative integer Number values indicating the minimum and + // maximum fraction digits to be used. Numbers will be rounded or padded with trailing + // zeroes if necessary. + // 5: @minimumSignificantDigits and + // 6: @maximumSignificantDigits are positive integer Number values indicating the minimum and + // maximum fraction digits to be shown. Either none or both of these properties are + // present; if they are, they override minimum and maximum integer and fraction digits + // – the formatter uses however many integer and fraction digits are required to display + // the specified number of significant digits. + // 7: @roundIncrement Decimal round increment or null + // 8: @primaryGroupingSize + // 9: @secondaryGroupingSize + // 10: @suffix String + return [ + prefix, + padding, + minimumIntegerDigits, + minimumFractionDigits, + maximumFractionDigits, + minimumSignificantDigits, + maximumSignificantDigits, + roundIncrement, + primaryGroupingSize, + secondaryGroupingSize, + suffix + ]; +}; + + + + +/** + * Symbol( name, cldr ) + * + * @name [String] Symbol name. + * + * @cldr [Cldr instance]. + * + * Return the localized symbol given its name. + */ +var numberSymbol = function( name, cldr ) { + return cldr.main([ + "numbers/symbols-numberSystem-" + numberNumberingSystem( cldr ), + name + ]); +}; + + + + +var numberSymbolName = { + ".": "decimal", + ",": "group", + "%": "percentSign", + "+": "plusSign", + "-": "minusSign", + "E": "exponential", + "\u2030": "perMille" +}; + + + + +/** + * symbolMap( cldr ) + * + * @cldr [Cldr instance]. + * + * Return the (localized symbol, pattern symbol) key value pair, eg. { + * ".": "٫", + * ",": "٬", + * "%": "٪", + * ... + * }; + */ +var numberSymbolMap = function( cldr ) { + var symbol, + symbolMap = {}; + + for ( symbol in numberSymbolName ) { + symbolMap[ symbol ] = numberSymbol( numberSymbolName[ symbol ], cldr ); + } + + return symbolMap; +}; + + + + +var numberTruncate = function( value ) { + if ( isNaN( value ) ) { + return NaN; + } + return Math[ value < 0 ? "ceil" : "floor" ]( value ); +}; + + + + +/** + * round( method ) + * + * @method [String] with either "round", "ceil", "floor", or "truncate". + * + * Return function( value, incrementOrExp ): + * + * @value [Number] eg. 123.45. + * + * @incrementOrExp [Number] optional, eg. 0.1; or + * [Object] Either { increment: } or { exponent: } + * + * Return the rounded number, eg: + * - round( "round" )( 123.45 ): 123; + * - round( "ceil" )( 123.45 ): 124; + * - round( "floor" )( 123.45 ): 123; + * - round( "truncate" )( 123.45 ): 123; + * - round( "round" )( 123.45, 0.1 ): 123.5; + * - round( "round" )( 123.45, 10 ): 120; + * + * Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round + * Ref: #376 + */ +var numberRound = function( method ) { + method = method || "round"; + method = method === "truncate" ? numberTruncate : Math[ method ]; + + return function( value, incrementOrExp ) { + var exp, increment; + + value = +value; + + // If the value is not a number, return NaN. + if ( isNaN( value ) ) { + return NaN; + } + + // Exponent given. + if ( typeof incrementOrExp === "object" && incrementOrExp.exponent ) { + exp = +incrementOrExp.exponent; + increment = 1; + + if ( exp === 0 ) { + return method( value ); + } + + // If the exp is not an integer, return NaN. + if ( !( typeof exp === "number" && exp % 1 === 0 ) ) { + return NaN; + } + + // Increment given. + } else { + increment = +incrementOrExp || 1; + + if ( increment === 1 ) { + return method( value ); + } + + // If the increment is not a number, return NaN. + if ( isNaN( increment ) ) { + return NaN; + } + + increment = increment.toExponential().split( "e" ); + exp = +increment[ 1 ]; + increment = +increment[ 0 ]; + } + + // Shift & Round + value = value.toString().split( "e" ); + value[ 0 ] = +value[ 0 ] / increment; + value[ 1 ] = value[ 1 ] ? ( +value[ 1 ] - exp ) : -exp; + value = method( +( value[ 0 ] + "e" + value[ 1 ] ) ); + + // Shift back + value = value.toString().split( "e" ); + value[ 0 ] = +value[ 0 ] * increment; + value[ 1 ] = value[ 1 ] ? ( +value[ 1 ] + exp ) : exp; + return +( value[ 0 ] + "e" + value[ 1 ] ); + }; +}; + + + + +/** + * formatProperties( pattern, cldr [, options] ) + * + * @pattern [String] raw pattern for numbers. + * + * @cldr [Cldr instance]. + * + * @options [Object]: + * - minimumIntegerDigits [Number] + * - minimumFractionDigits, maximumFractionDigits [Number] + * - minimumSignificantDigits, maximumSignificantDigits [Number] + * - round [String] "ceil", "floor", "round" (default), or "truncate". + * - useGrouping [Boolean] default true. + * + * Return the processed properties that will be used in number/format. + * ref: http://www.unicode.org/reports/tr35/tr35-numbers.html + */ +var numberFormatProperties = function( pattern, cldr, options ) { + var negativePattern, negativePrefix, negativeProperties, negativeSuffix, positivePattern, + roundFn, properties; + + function getOptions( attribute, propertyIndex ) { + if ( attribute in options ) { + properties[ propertyIndex ] = options[ attribute ]; + } + } + + options = options || {}; + pattern = pattern.split( ";" ); + + positivePattern = pattern[ 0 ]; + + negativePattern = pattern[ 1 ] || "-" + positivePattern; + negativeProperties = numberPatternProperties( negativePattern ); + negativePrefix = negativeProperties[ 0 ]; + negativeSuffix = negativeProperties[ 10 ]; + + // Have runtime code to refer to numberRound() instead of including it explicitly. + roundFn = numberRound( options.round ); + roundFn.generatorString = function() { + return "numberRound(" + ( options.round ? "\"" + options.round + "\"" : "" ) + ")"; + }; + + properties = numberPatternProperties( positivePattern ).concat([ + positivePattern, + negativePrefix + positivePattern + negativeSuffix, + negativePrefix, + negativeSuffix, + roundFn, + numberSymbol( "infinity", cldr ), + numberSymbol( "nan", cldr ), + numberSymbolMap( cldr ), + numberNumberingSystemDigitsMap( cldr ) + ]); + + getOptions( "minimumIntegerDigits", 2 ); + getOptions( "minimumFractionDigits", 3 ); + getOptions( "maximumFractionDigits", 4 ); + getOptions( "minimumSignificantDigits", 5 ); + getOptions( "maximumSignificantDigits", 6 ); + + // Grouping separators + if ( options.useGrouping === false ) { + properties[ 8 ] = null; + } + + // Normalize number of digits if only one of either minimumFractionDigits or + // maximumFractionDigits is passed in as an option + if ( "minimumFractionDigits" in options && !( "maximumFractionDigits" in options ) ) { + + // maximumFractionDigits = Math.max( minimumFractionDigits, maximumFractionDigits ); + properties[ 4 ] = Math.max( properties[ 3 ], properties[ 4 ] ); + } else if ( !( "minimumFractionDigits" in options ) && + "maximumFractionDigits" in options ) { + + // minimumFractionDigits = Math.min( minimumFractionDigits, maximumFractionDigits ); + properties[ 3 ] = Math.min( properties[ 3 ], properties[ 4 ] ); + } + + // Return: + // 0-10: see number/pattern-properties. + // 11: @positivePattern [String] Positive pattern. + // 12: @negativePattern [String] Negative pattern. + // 13: @negativePrefix [String] Negative prefix. + // 14: @negativeSuffix [String] Negative suffix. + // 15: @round [Function] Round function. + // 16: @infinitySymbol [String] Infinity symbol. + // 17: @nanSymbol [String] NaN symbol. + // 18: @symbolMap [Object] A bunch of other symbols. + // 19: @nuDigitsMap [Array] Digits map if numbering system is different than `latn`. + return properties; +}; + + + + +/** + * EBNF representation: + * + * number_pattern_re = prefix_including_padding? + * number + * scientific_notation? + * suffix? + * + * number = integer_including_group_separator fraction_including_decimal_separator + * + * integer_including_group_separator = + * regexp([0-9,]*[0-9]+) + * + * fraction_including_decimal_separator = + * regexp((\.[0-9]+)?) + + * prefix_including_padding = non_number_stuff + * + * scientific_notation = regexp(E[+-]?[0-9]+) + * + * suffix = non_number_stuff + * + * non_number_stuff = regexp([^0-9]*) + * + * + * Regexp groups: + * + * 0: number_pattern_re + * 1: prefix + * 2: integer_including_group_separator fraction_including_decimal_separator + * 3: integer_including_group_separator + * 4: fraction_including_decimal_separator + * 5: scientific_notation + * 6: suffix + */ +var numberNumberRe = ( /^([^0-9]*)(([0-9,]*[0-9]+)(\.[0-9]+)?)(E[+-]?[0-9]+)?([^0-9]*)$/ ); + + + + +/** + * parse( value, properties ) + * + * @value [String]. + * + * @properties [Object] Parser properties is a reduced pre-processed cldr + * data set returned by numberParserProperties(). + * + * Return the parsed Number (including Infinity) or NaN when value is invalid. + * ref: http://www.unicode.org/reports/tr35/tr35-numbers.html + */ +var numberParse = function( value, properties ) { + var aux, infinitySymbol, invertedNuDigitsMap, invertedSymbolMap, localizedDigitRe, + localizedSymbolsRe, negativePrefix, negativeSuffix, number, prefix, suffix; + + infinitySymbol = properties[ 0 ]; + invertedSymbolMap = properties[ 1 ]; + negativePrefix = properties[ 2 ]; + negativeSuffix = properties[ 3 ]; + invertedNuDigitsMap = properties[ 4 ]; + + // Infinite number. + if ( aux = value.match( infinitySymbol ) ) { + + number = Infinity; + prefix = value.slice( 0, aux.length ); + suffix = value.slice( aux.length + 1 ); + + // Finite number. + } else { + + // TODO: Create it during setup, i.e., make it a property. + localizedSymbolsRe = new RegExp( + Object.keys( invertedSymbolMap ).map(function( localizedSymbol ) { + return regexpEscape( localizedSymbol ); + }).join( "|" ), + "g" + ); + + // Reverse localized symbols. + value = value.replace( localizedSymbolsRe, function( localizedSymbol ) { + return invertedSymbolMap[ localizedSymbol ]; + }); + + // Reverse localized numbering system. + if ( invertedNuDigitsMap ) { + + // TODO: Create it during setup, i.e., make it a property. + localizedDigitRe = new RegExp( + Object.keys( invertedNuDigitsMap ).map(function( localizedDigit ) { + return regexpEscape( localizedDigit ); + }).join( "|" ), + "g" + ); + value = value.replace( localizedDigitRe, function( localizedDigit ) { + return invertedNuDigitsMap[ localizedDigit ]; + }); + } + + // Add padding zero to leading decimal. + if ( value.charAt( 0 ) === "." ) { + value = "0" + value; + } + + // Is it a valid number? + value = value.match( numberNumberRe ); + if ( !value ) { + + // Invalid number. + return NaN; + } + + prefix = value[ 1 ]; + suffix = value[ 6 ]; + + // Remove grouping separators. + number = value[ 2 ].replace( /,/g, "" ); + + // Scientific notation + if ( value[ 5 ] ) { + number += value[ 5 ]; + } + + number = +number; + + // Is it a valid number? + if ( isNaN( number ) ) { + + // Invalid number. + return NaN; + } + + // Percent + if ( value[ 0 ].indexOf( "%" ) !== -1 ) { + number /= 100; + suffix = suffix.replace( "%", "" ); + + // Per mille + } else if ( value[ 0 ].indexOf( "\u2030" ) !== -1 ) { + number /= 1000; + suffix = suffix.replace( "\u2030", "" ); + } + } + + // Negative number + // "If there is an explicit negative subpattern, it serves only to specify the negative prefix + // and suffix. If there is no explicit negative subpattern, the negative subpattern is the + // localized minus sign prefixed to the positive subpattern" UTS#35 + if ( prefix === negativePrefix && suffix === negativeSuffix ) { + number *= -1; + } + + return number; +}; + + + + +var numberParserFn = function( properties ) { + return function numberParser( value ) { + validateParameterPresence( value, "value" ); + validateParameterTypeString( value, "value" ); + + return numberParse( value, properties ); + }; + +}; + + + + +/** + * symbolMap( cldr ) + * + * @cldr [Cldr instance]. + * + * Return the (localized symbol, pattern symbol) key value pair, eg. { + * "٫": ".", + * "٬": ",", + * "٪": "%", + * ... + * }; + */ +var numberSymbolInvertedMap = function( cldr ) { + var symbol, + symbolMap = {}; + + for ( symbol in numberSymbolName ) { + symbolMap[ numberSymbol( numberSymbolName[ symbol ], cldr ) ] = symbol; + } + + return symbolMap; +}; + + + + +/** + * parseProperties( pattern, cldr ) + * + * @pattern [String] raw pattern for numbers. + * + * @cldr [Cldr instance]. + * + * Return parser properties, used to feed parser function. + */ +var numberParseProperties = function( pattern, cldr ) { + var invertedNuDigitsMap, invertedNuDigitsMapSanityCheck, negativePattern, negativeProperties, + nuDigitsMap = numberNumberingSystemDigitsMap( cldr ); + + pattern = pattern.split( ";" ); + negativePattern = pattern[ 1 ] || "-" + pattern[ 0 ]; + negativeProperties = numberPatternProperties( negativePattern ); + if ( nuDigitsMap ) { + invertedNuDigitsMap = nuDigitsMap.split( "" ).reduce(function( object, localizedDigit, i ) { + object[ localizedDigit ] = String( i ); + return object; + }, {} ); + invertedNuDigitsMapSanityCheck = "0123456789".split( "" ).reduce(function( object, digit ) { + object[ digit ] = "invalid"; + return object; + }, {} ); + invertedNuDigitsMap = objectExtend( + invertedNuDigitsMapSanityCheck, + invertedNuDigitsMap + ); + } + + // 0: @infinitySymbol [String] Infinity symbol. + // 1: @invertedSymbolMap [Object] Inverted symbol map augmented with sanity check. + // The sanity check prevents permissive parsing, i.e., it prevents symbols that doesn't + // belong to the localized set to pass through. This is obtained with the result of the + // inverted map object overloading symbol name map object (the remaining symbol name + // mappings will invalidate parsing, working as the sanity check). + // 2: @negativePrefix [String] Negative prefix. + // 3: @negativeSuffix [String] Negative suffix with percent or per mille stripped out. + // 4: @invertedNuDigitsMap [Object] Inverted digits map if numbering system is different than + // `latn` augmented with sanity check (similar to invertedSymbolMap). + return [ + numberSymbol( "infinity", cldr ), + objectExtend( {}, numberSymbolName, numberSymbolInvertedMap( cldr ) ), + negativeProperties[ 0 ], + negativeProperties[ 10 ].replace( "%", "" ).replace( "\u2030", "" ), + invertedNuDigitsMap + ]; +}; + + + + +/** + * Pattern( style ) + * + * @style [String] "decimal" (default) or "percent". + * + * @cldr [Cldr instance]. + */ +var numberPattern = function( style, cldr ) { + if ( style !== "decimal" && style !== "percent" ) { + throw new Error( "Invalid style" ); + } + + return cldr.main([ + "numbers", + style + "Formats-numberSystem-" + numberNumberingSystem( cldr ), + "standard" + ]); +}; + + + + +function validateDigits( properties ) { + var minimumIntegerDigits = properties[ 2 ], + minimumFractionDigits = properties[ 3 ], + maximumFractionDigits = properties[ 4 ], + minimumSignificantDigits = properties[ 5 ], + maximumSignificantDigits = properties[ 6 ]; + + // Validate significant digit format properties + if ( !isNaN( minimumSignificantDigits * maximumSignificantDigits ) ) { + validateParameterRange( minimumSignificantDigits, "minimumSignificantDigits", 1, 21 ); + validateParameterRange( maximumSignificantDigits, "maximumSignificantDigits", + minimumSignificantDigits, 21 ); + + } else if ( !isNaN( minimumSignificantDigits ) || !isNaN( maximumSignificantDigits ) ) { + throw new Error( "Neither or both the minimum and maximum significant digits must be " + + "present" ); + + // Validate integer and fractional format + } else { + validateParameterRange( minimumIntegerDigits, "minimumIntegerDigits", 1, 21 ); + validateParameterRange( minimumFractionDigits, "minimumFractionDigits", 0, 20 ); + validateParameterRange( maximumFractionDigits, "maximumFractionDigits", + minimumFractionDigits, 20 ); + } +} + +/** + * .numberFormatter( [options] ) + * + * @options [Object]: + * - style: [String] "decimal" (default) or "percent". + * - see also number/format options. + * + * Return a function that formats a number according to the given options and default/instance + * locale. + */ +Globalize.numberFormatter = +Globalize.prototype.numberFormatter = function( options ) { + var args, cldr, pattern, properties, returnFn; + + validateParameterTypePlainObject( options, "options" ); + + options = options || {}; + cldr = this.cldr; + + args = [ options ]; + + validateDefaultLocale( cldr ); + + cldr.on( "get", validateCldr ); + + if ( options.raw ) { + pattern = options.raw; + } else { + pattern = numberPattern( options.style || "decimal", cldr ); + } + + properties = numberFormatProperties( pattern, cldr, options ); + + cldr.off( "get", validateCldr ); + + validateDigits( properties ); + + returnFn = numberFormatterFn( properties ); + + runtimeBind( args, cldr, returnFn, [ properties ] ); + + return returnFn; +}; + +/** + * .numberParser( [options] ) + * + * @options [Object]: + * - style: [String] "decimal" (default) or "percent". + * + * Return the number parser according to the default/instance locale. + */ +Globalize.numberParser = +Globalize.prototype.numberParser = function( options ) { + var args, cldr, pattern, properties, returnFn; + + validateParameterTypePlainObject( options, "options" ); + + options = options || {}; + cldr = this.cldr; + + args = [ options ]; + + validateDefaultLocale( cldr ); + + cldr.on( "get", validateCldr ); + + if ( options.raw ) { + pattern = options.raw; + } else { + pattern = numberPattern( options.style || "decimal", cldr ); + } + + properties = numberParseProperties( pattern, cldr ); + + cldr.off( "get", validateCldr ); + + returnFn = numberParserFn( properties ); + + runtimeBind( args, cldr, returnFn, [ properties ] ); + + return returnFn; +}; + +/** + * .formatNumber( value [, options] ) + * + * @value [Number] number to be formatted. + * + * @options [Object]: see number/format-properties. + * + * Format a number according to the given options and default/instance locale. + */ +Globalize.formatNumber = +Globalize.prototype.formatNumber = function( value, options ) { + validateParameterPresence( value, "value" ); + validateParameterTypeNumber( value, "value" ); + + return this.numberFormatter( options )( value ); +}; + +/** + * .parseNumber( value [, options] ) + * + * @value [String] + * + * @options [Object]: See numberParser(). + * + * Return the parsed Number (including Infinity) or NaN when value is invalid. + */ +Globalize.parseNumber = +Globalize.prototype.parseNumber = function( value, options ) { + validateParameterPresence( value, "value" ); + validateParameterTypeString( value, "value" ); + + return this.numberParser( options )( value ); +}; + +/** + * Optimization to avoid duplicating some internal functions across modules. + */ +Globalize._createErrorUnsupportedFeature = createErrorUnsupportedFeature; +Globalize._numberNumberingSystem = numberNumberingSystem; +Globalize._numberPattern = numberPattern; +Globalize._numberSymbol = numberSymbol; +Globalize._stringPad = stringPad; +Globalize._validateParameterTypeNumber = validateParameterTypeNumber; +Globalize._validateParameterTypeString = validateParameterTypeString; + +return Globalize; + + + + +})); diff --git a/Web/Scripts/globalize/plural.js b/Web/Scripts/globalize/plural.js new file mode 100644 index 0000000..1fe38f2 --- /dev/null +++ b/Web/Scripts/globalize/plural.js @@ -0,0 +1,373 @@ +/** + * Globalize v1.1.1 + * + * http://github.com/jquery/globalize + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-02-04T12:01Z + */ +/*! + * Globalize v1.1.1 2016-02-04T12:01Z Released under the MIT license + * http://git.io/TrdQbw + */ +(function( root, factory ) { + + // UMD returnExports + if ( typeof define === "function" && define.amd ) { + + // AMD + define([ + "cldr", + "../globalize", + "cldr/event", + "cldr/supplemental" + ], factory ); + } else if ( typeof exports === "object" ) { + + // Node, CommonJS + module.exports = factory( require( "cldrjs" ), require( "globalize" ) ); + } else { + + // Global + factory( root.Cldr, root.Globalize ); + } +}(this, function( Cldr, Globalize ) { + +var runtimeBind = Globalize._runtimeBind, + validateCldr = Globalize._validateCldr, + validateDefaultLocale = Globalize._validateDefaultLocale, + validateParameterPresence = Globalize._validateParameterPresence, + validateParameterType = Globalize._validateParameterType, + validateParameterTypePlainObject = Globalize._validateParameterTypePlainObject; +var MakePlural; +/* jshint ignore:start */ +MakePlural = (function() { +'use strict'; + +var _toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; + +var _toConsumableArray = function (arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }; + +var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + +/** + * make-plural.js -- https://github.com/eemeli/make-plural.js/ + * Copyright (c) 2014-2015 by Eemeli Aro + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * The software is provided "as is" and the author disclaims all warranties + * with regard to this software including all implied warranties of + * merchantability and fitness. In no event shall the author be liable for + * any special, direct, indirect, or consequential damages or any damages + * whatsoever resulting from loss of use, data or profits, whether in an + * action of contract, negligence or other tortious action, arising out of + * or in connection with the use or performance of this software. + */ + +var Parser = (function () { + function Parser() { + _classCallCheck(this, Parser); + } + + _createClass(Parser, [{ + key: 'parse', + value: function parse(cond) { + var _this = this; + + if (cond === 'i = 0 or n = 1') { + return 'n >= 0 && n <= 1'; + }if (cond === 'i = 0,1') { + return 'n >= 0 && n < 2'; + }if (cond === 'i = 1 and v = 0') { + this.v0 = 1; + return 'n == 1 && v0'; + } + return cond.replace(/([tv]) (!?)= 0/g, function (m, sym, noteq) { + var sn = sym + '0'; + _this[sn] = 1; + return noteq ? '!' + sn : sn; + }).replace(/\b[fintv]\b/g, function (m) { + _this[m] = 1; + return m; + }).replace(/([fin]) % (10+)/g, function (m, sym, num) { + var sn = sym + num; + _this[sn] = 1; + return sn; + }).replace(/n10+ = 0/g, 't0 && $&').replace(/(\w+ (!?)= )([0-9.]+,[0-9.,]+)/g, function (m, se, noteq, x) { + if (m === 'n = 0,1') return '(n == 0 || n == 1)'; + if (noteq) return se + x.split(',').join(' && ' + se); + return '(' + se + x.split(',').join(' || ' + se) + ')'; + }).replace(/(\w+) (!?)= ([0-9]+)\.\.([0-9]+)/g, function (m, sym, noteq, x0, x1) { + if (Number(x0) + 1 === Number(x1)) { + if (noteq) return '' + sym + ' != ' + x0 + ' && ' + sym + ' != ' + x1; + return '(' + sym + ' == ' + x0 + ' || ' + sym + ' == ' + x1 + ')'; + } + if (noteq) return '(' + sym + ' < ' + x0 + ' || ' + sym + ' > ' + x1 + ')'; + if (sym === 'n') { + _this.t0 = 1;return '(t0 && n >= ' + x0 + ' && n <= ' + x1 + ')'; + } + return '(' + sym + ' >= ' + x0 + ' && ' + sym + ' <= ' + x1 + ')'; + }).replace(/ and /g, ' && ').replace(/ or /g, ' || ').replace(/ = /g, ' == '); + } + }, { + key: 'vars', + value: (function (_vars) { + function vars() { + return _vars.apply(this, arguments); + } + + vars.toString = function () { + return _vars.toString(); + }; + + return vars; + })(function () { + var vars = []; + if (this.i) vars.push('i = s[0]'); + if (this.f || this.v) vars.push('f = s[1] || \'\''); + if (this.t) vars.push('t = (s[1] || \'\').replace(/0+$/, \'\')'); + if (this.v) vars.push('v = f.length'); + if (this.v0) vars.push('v0 = !s[1]'); + if (this.t0 || this.n10 || this.n100) vars.push('t0 = Number(s[0]) == n'); + for (var k in this) { + if (/^.10+$/.test(k)) { + var k0 = k[0] === 'n' ? 't0 && s[0]' : k[0]; + vars.push('' + k + ' = ' + k0 + '.slice(-' + k.substr(2).length + ')'); + } + }if (!vars.length) return ''; + return 'var ' + ['s = String(n).split(\'.\')'].concat(vars).join(', '); + }) + }]); + + return Parser; +})(); + + + +var MakePlural = (function () { + function MakePlural(lc) { + var _ref = arguments[1] === undefined ? MakePlural : arguments[1]; + + var cardinals = _ref.cardinals; + var ordinals = _ref.ordinals; + + _classCallCheck(this, MakePlural); + + if (!cardinals && !ordinals) throw new Error('At least one type of plural is required'); + this.lc = lc; + this.categories = { cardinal: [], ordinal: [] }; + this.parser = new Parser(); + + this.fn = this.buildFunction(cardinals, ordinals); + this.fn._obj = this; + this.fn.categories = this.categories; + + this.fn.toString = this.fnToString.bind(this); + return this.fn; + } + + _createClass(MakePlural, [{ + key: 'compile', + value: function compile(type, req) { + var cases = []; + var rules = MakePlural.rules[type][this.lc]; + if (!rules) { + if (req) throw new Error('Locale "' + this.lc + '" ' + type + ' rules not found'); + this.categories[type] = ['other']; + return '\'other\''; + } + for (var r in rules) { + var _rules$r$trim$split = rules[r].trim().split(/\s*@\w*/); + + var _rules$r$trim$split2 = _toArray(_rules$r$trim$split); + + var cond = _rules$r$trim$split2[0]; + var examples = _rules$r$trim$split2.slice(1); + var cat = r.replace('pluralRule-count-', ''); + if (cond) cases.push([this.parser.parse(cond), cat]); + + } + this.categories[type] = cases.map(function (c) { + return c[1]; + }).concat('other'); + if (cases.length === 1) { + return '(' + cases[0][0] + ') ? \'' + cases[0][1] + '\' : \'other\''; + } else { + return [].concat(_toConsumableArray(cases.map(function (c) { + return '(' + c[0] + ') ? \'' + c[1] + '\''; + })), ['\'other\'']).join('\n : '); + } + } + }, { + key: 'buildFunction', + value: function buildFunction(cardinals, ordinals) { + var _this3 = this; + + var compile = function compile(c) { + return c ? (c[1] ? 'return ' : 'if (ord) return ') + _this3.compile.apply(_this3, _toConsumableArray(c)) : ''; + }, + fold = { vars: function vars(str) { + return (' ' + str + ';').replace(/(.{1,78})(,|$) ?/g, '$1$2\n '); + }, + cond: function cond(str) { + return (' ' + str + ';').replace(/(.{1,78}) (\|\| |$) ?/gm, '$1\n $2'); + } }, + cond = [ordinals && ['ordinal', !cardinals], cardinals && ['cardinal', true]].map(compile).map(fold.cond), + body = [fold.vars(this.parser.vars())].concat(_toConsumableArray(cond)).join('\n').replace(/\s+$/gm, '').replace(/^[\s;]*[\r\n]+/gm, ''), + args = ordinals && cardinals ? 'n, ord' : 'n'; + return new Function(args, body); + } + }, { + key: 'fnToString', + value: function fnToString(name) { + return Function.prototype.toString.call(this.fn).replace(/^function( \w+)?/, name ? 'function ' + name : 'function').replace('\n/**/', ''); + } + }], [{ + key: 'load', + value: function load() { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + args.forEach(function (cldr) { + var data = cldr && cldr.supplemental || null; + if (!data) throw new Error('Data does not appear to be CLDR data'); + MakePlural.rules = { + cardinal: data['plurals-type-cardinal'] || MakePlural.rules.cardinal, + ordinal: data['plurals-type-ordinal'] || MakePlural.rules.ordinal + }; + }); + return MakePlural; + } + }]); + + return MakePlural; +})(); + + + +MakePlural.cardinals = true; +MakePlural.ordinals = false; +MakePlural.rules = { cardinal: {}, ordinal: {} }; + + +return MakePlural; +}()); +/* jshint ignore:end */ + + +var validateParameterTypeNumber = function( value, name ) { + validateParameterType( + value, + name, + value === undefined || typeof value === "number", + "Number" + ); +}; + + + + +var validateParameterTypePluralType = function( value, name ) { + validateParameterType( + value, + name, + value === undefined || value === "cardinal" || value === "ordinal", + "String \"cardinal\" or \"ordinal\"" + ); +}; + + + + +var pluralGeneratorFn = function( plural ) { + return function pluralGenerator( value ) { + validateParameterPresence( value, "value" ); + validateParameterTypeNumber( value, "value" ); + + return plural( value ); + }; +}; + + + + +/** + * .plural( value ) + * + * @value [Number] + * + * Return the corresponding form (zero | one | two | few | many | other) of a + * value given locale. + */ +Globalize.plural = +Globalize.prototype.plural = function( value, options ) { + validateParameterPresence( value, "value" ); + validateParameterTypeNumber( value, "value" ); + return this.pluralGenerator( options )( value ); +}; + +/** + * .pluralGenerator( [options] ) + * + * Return a plural function (of the form below). + * + * fn( value ) + * + * @value [Number] + * + * Return the corresponding form (zero | one | two | few | many | other) of a value given the + * default/instance locale. + */ +Globalize.pluralGenerator = +Globalize.prototype.pluralGenerator = function( options ) { + var args, cldr, isOrdinal, plural, returnFn, type; + + validateParameterTypePlainObject( options, "options" ); + + options = options || {}; + cldr = this.cldr; + + args = [ options ]; + type = options.type || "cardinal"; + + validateParameterTypePluralType( options.type, "options.type" ); + + validateDefaultLocale( cldr ); + + isOrdinal = type === "ordinal"; + + cldr.on( "get", validateCldr ); + cldr.supplemental([ "plurals-type-" + type, "{language}" ]); + cldr.off( "get", validateCldr ); + + MakePlural.rules = {}; + MakePlural.rules[ type ] = cldr.supplemental( "plurals-type-" + type ); + + plural = new MakePlural( cldr.attributes.language, { + "ordinals": isOrdinal, + "cardinals": !isOrdinal + }); + + returnFn = pluralGeneratorFn( plural ); + + runtimeBind( args, cldr, returnFn, [ plural ] ); + + return returnFn; +}; + +return Globalize; + + + + +})); diff --git a/Web/Scripts/globalize/relative-time.js b/Web/Scripts/globalize/relative-time.js new file mode 100644 index 0000000..e179a80 --- /dev/null +++ b/Web/Scripts/globalize/relative-time.js @@ -0,0 +1,201 @@ +/** + * Globalize v1.1.1 + * + * http://github.com/jquery/globalize + * + * Copyright 2010, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-02-04T12:01Z + */ +/*! + * Globalize v1.1.1 2016-02-04T12:01Z Released under the MIT license + * http://git.io/TrdQbw + */ +(function( root, factory ) { + + // UMD returnExports + if ( typeof define === "function" && define.amd ) { + + // AMD + define([ + "cldr", + "../globalize", + "./number", + "./plural", + "cldr/event", + "cldr/supplemental" + ], factory ); + } else if ( typeof exports === "object" ) { + + // Node, CommonJS + module.exports = factory( require( "cldrjs" ), require( "globalize" ) ); + } else { + + // Extend global + factory( root.Cldr, root.Globalize ); + } +}(this, function( Cldr, Globalize ) { + +var formatMessage = Globalize._formatMessage, + runtimeBind = Globalize._runtimeBind, + validateCldr = Globalize._validateCldr, + validateDefaultLocale = Globalize._validateDefaultLocale, + validateParameterPresence = Globalize._validateParameterPresence, + validateParameterTypeString = Globalize._validateParameterTypeString, + validateParameterTypeNumber = Globalize._validateParameterTypeNumber; + + +/** + * format( value, numberFormatter, pluralGenerator, properties ) + * + * @value [Number] The number to format + * + * @numberFormatter [String] A numberFormatter from Globalize.numberFormatter + * + * @pluralGenerator [String] A pluralGenerator from Globalize.pluralGenerator + * + * @properties [Object] containing relative time plural message. + * + * Format relative time. + */ +var relativeTimeFormat = function( value, numberFormatter, pluralGenerator, properties ) { + + var relativeTime, + message = properties[ "relative-type-" + value ]; + + if ( message ) { + return message; + } + + relativeTime = value <= 0 ? properties[ "relativeTime-type-past" ] + : properties[ "relativeTime-type-future" ]; + + value = Math.abs( value ); + + message = relativeTime[ "relativeTimePattern-count-" + pluralGenerator( value ) ]; + return formatMessage( message, [ numberFormatter( value ) ] ); +}; + + + + +var relativeTimeFormatterFn = function( numberFormatter, pluralGenerator, properties ) { + return function relativeTimeFormatter( value ) { + validateParameterPresence( value, "value" ); + validateParameterTypeNumber( value, "value" ); + + return relativeTimeFormat( value, numberFormatter, pluralGenerator, properties ); + }; + +}; + + + + +/** + * properties( unit, cldr, options ) + * + * @unit [String] eg. "day", "week", "month", etc. + * + * @cldr [Cldr instance]. + * + * @options [Object] + * - form: [String] eg. "short" or "narrow". Or falsy for default long form. + * + * Return relative time properties. + */ +var relativeTimeProperties = function( unit, cldr, options ) { + + var form = options.form, + raw, properties, key, match; + + if ( form ) { + unit = unit + "-" + form; + } + + raw = cldr.main( [ "dates", "fields", unit ] ); + properties = { + "relativeTime-type-future": raw[ "relativeTime-type-future" ], + "relativeTime-type-past": raw[ "relativeTime-type-past" ] + }; + for ( key in raw ) { + if ( raw.hasOwnProperty( key ) ) { + match = /relative-type-(-?[0-9]+)/.exec( key ); + if ( match ) { + properties[ key ] = raw[ key ]; + } + } + } + + return properties; +}; + + + + +/** + * .formatRelativeTime( value, unit [, options] ) + * + * @value [Number] The number of unit to format. + * + * @unit [String] see .relativeTimeFormatter() for details. + * + * @options [Object] see .relativeTimeFormatter() for details. + * + * Formats a relative time according to the given unit, options, and the default/instance locale. + */ +Globalize.formatRelativeTime = +Globalize.prototype.formatRelativeTime = function( value, unit, options ) { + validateParameterPresence( value, "value" ); + validateParameterTypeNumber( value, "value" ); + + return this.relativeTimeFormatter( unit, options )( value ); +}; + +/** + * .relativeTimeFormatter( unit [, options ]) + * + * @unit [String] String value indicating the unit to be formatted. eg. "day", "week", "month", etc. + * + * @options [Object] + * - form: [String] eg. "short" or "narrow". Or falsy for default long form. + * + * Returns a function that formats a relative time according to the given unit, options, and the + * default/instance locale. + */ +Globalize.relativeTimeFormatter = +Globalize.prototype.relativeTimeFormatter = function( unit, options ) { + var args, cldr, numberFormatter, pluralGenerator, properties, returnFn; + + validateParameterPresence( unit, "unit" ); + validateParameterTypeString( unit, "unit" ); + + cldr = this.cldr; + options = options || {}; + + args = [ unit, options ]; + + validateDefaultLocale( cldr ); + + cldr.on( "get", validateCldr ); + properties = relativeTimeProperties( unit, cldr, options ); + cldr.off( "get", validateCldr ); + + numberFormatter = this.numberFormatter( options ); + pluralGenerator = this.pluralGenerator(); + + returnFn = relativeTimeFormatterFn( numberFormatter, pluralGenerator, properties ); + + runtimeBind( args, cldr, returnFn, [ numberFormatter, pluralGenerator, properties ] ); + + return returnFn; +}; + +return Globalize; + + + + +})); diff --git a/Web/Scripts/globalize/unit.js b/Web/Scripts/globalize/unit.js new file mode 100644 index 0000000..a847a7d --- /dev/null +++ b/Web/Scripts/globalize/unit.js @@ -0,0 +1,300 @@ +/** + * Globalize v1.1.1 + * + * http://github.com/jquery/globalize + * + * Copyright 2010, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-02-04T12:01Z + */ +/*! + * Globalize v1.1.1 2016-02-04T12:01Z Released under the MIT license + * http://git.io/TrdQbw + */ +(function( root, factory ) { + + // UMD returnExports + if ( typeof define === "function" && define.amd ) { + + // AMD + define([ + "cldr", + "../globalize", + "./number", + "./plural" + ], factory ); + } else if ( typeof exports === "object" ) { + + // Node, CommonJS + module.exports = factory( require( "cldrjs" ), require( "globalize" ) ); + } else { + + // Extend global + factory( root.Cldr, root.Globalize ); + } +}(this, function( Cldr, Globalize ) { + +var formatMessage = Globalize._formatMessage, + runtimeBind = Globalize._runtimeBind, + validateParameterPresence = Globalize._validateParameterPresence, + validateParameterTypePlainObject = Globalize._validateParameterTypePlainObject, + validateParameterTypeNumber = Globalize._validateParameterTypeNumber, + validateParameterTypeString = Globalize._validateParameterTypeString; + + +/** + * format( value, numberFormatter, pluralGenerator, unitProperies ) + * + * @value [Number] + * + * @numberFormatter [Object]: A numberFormatter from Globalize.numberFormatter. + * + * @pluralGenerator [Object]: A pluralGenerator from Globalize.pluralGenerator. + * + * @unitProperies [Object]: localized unit data from cldr. + * + * Format units such as seconds, minutes, days, weeks, etc. + * + * OBS: + * + * Unit Sequences are not implemented. + * http://www.unicode.org/reports/tr35/tr35-35/tr35-general.html#Unit_Sequences + * + * Duration Unit (for composed time unit durations) is not implemented. + * http://www.unicode.org/reports/tr35/tr35-35/tr35-general.html#durationUnit + */ +var unitFormat = function( value, numberFormatter, pluralGenerator, unitProperties ) { + var compoundUnitPattern = unitProperties.compoundUnitPattern, dividend, dividendProperties, + formattedValue, divisor, divisorProperties, message, pluralValue; + + unitProperties = unitProperties.unitProperties; + formattedValue = numberFormatter( value ); + pluralValue = pluralGenerator( value ); + + // computed compound unit, eg. "megabyte-per-second". + if ( unitProperties instanceof Array ) { + dividendProperties = unitProperties[ 0 ]; + divisorProperties = unitProperties[ 1 ]; + + dividend = formatMessage( dividendProperties[ pluralValue ], [ value ] ); + divisor = formatMessage( divisorProperties.one, [ "" ] ).trim(); + + return formatMessage( compoundUnitPattern, [ dividend, divisor ] ); + } + + message = unitProperties[ pluralValue ]; + + return formatMessage( message, [ formattedValue ] ); +}; + + + + +var unitFormatterFn = function( numberFormatter, pluralGenerator, unitProperties ) { + return function unitFormatter( value ) { + validateParameterPresence( value, "value" ); + validateParameterTypeNumber( value, "value" ); + + return unitFormat( value, numberFormatter, pluralGenerator, unitProperties ); + }; + +}; + + + + +/** + * categories() + * + * Return all unit categories. + */ +var unitCategories = [ "acceleration", "angle", "area", "digital", "duration", "length", "mass", "power", +"pressure", "speed", "temperature", "volume" ]; + + + + +function stripPluralGarbage( data ) { + var aux, pluralCount; + + if ( data ) { + aux = {}; + for ( pluralCount in data ) { + aux[ pluralCount.replace( /unitPattern-count-/, "" ) ] = data[ pluralCount ]; + } + } + + return aux; +} + +/** + * get( unit, form, cldr ) + * + * @unit [String] The full type-unit name (eg. duration-second), or the short unit name + * (eg. second). + * + * @form [String] A string describing the form of the unit representation (eg. long, + * short, narrow). + * + * @cldr [Cldr instance]. + * + * Return the plural map of a unit, eg: "second" + * { "one": "{0} second", + * "other": "{0} seconds" } + * } + * + * Or the Array of plural maps of a compound-unit, eg: "foot-per-second" + * [ { "one": "{0} foot", + * "other": "{0} feet" }, + * { "one": "{0} second", + * "other": "{0} seconds" } ] + * + * Uses the precomputed form of a compound-unit if available, eg: "mile-per-hour" + * { "displayName": "miles per hour", + * "unitPattern-count-one": "{0} mile per hour", + * "unitPattern-count-other": "{0} miles per hour" + * }, + * + * Also supports "/" instead of "-per-", eg. "foot/second", using the precomputed form if + * available. + * + * Or the Array of plural maps of a compound-unit, eg: "foot-per-second" + * [ { "one": "{0} foot", + * "other": "{0} feet" }, + * { "one": "{0} second", + * "other": "{0} seconds" } ] + * + * Or undefined in case the unit (or a unit of the compound-unit) doesn't exist. + */ +var get = function( unit, form, cldr ) { + var ret; + + // Ensure that we get the 'precomputed' form, if present. + unit = unit.replace( /\//, "-per-" ); + + // Get unit or -unit (eg. "duration-second"). + [ "" ].concat( unitCategories ).some(function( category ) { + return ret = cldr.main([ + "units", + form, + category.length ? category + "-" + unit : unit + ]); + }); + + // Rename keys s/unitPattern-count-//g. + ret = stripPluralGarbage( ret ); + + // Compound Unit, eg. "foot-per-second" or "foot/second". + if ( !ret && ( /-per-/ ).test( unit ) ) { + + // "Some units already have 'precomputed' forms, such as kilometer-per-hour; + // where such units exist, they should be used in preference" UTS#35. + // Note that precomputed form has already been handled above (!ret). + + // Get both recursively. + unit = unit.split( "-per-" ); + ret = unit.map(function( unit ) { + return get( unit, form, cldr ); + }); + if ( !ret[ 0 ] || !ret[ 1 ] ) { + return; + } + } + + return ret; +}; + +var unitGet = get; + + + + +/** + * properties( unit, form, cldr ) + * + * @unit [String] The full type-unit name (eg. duration-second), or the short unit name + * (eg. second). + * + * @form [String] A string describing the form of the unit representation (eg. long, + * short, narrow). + * + * @cldr [Cldr instance]. + */ +var unitProperties = function( unit, form, cldr ) { + var compoundUnitPattern, unitProperties; + + compoundUnitPattern = cldr.main( [ "units", form, "per/compoundUnitPattern" ] ); + unitProperties = unitGet( unit, form, cldr ); + + return { + compoundUnitPattern: compoundUnitPattern, + unitProperties: unitProperties + }; +}; + + + + +/** + * Globalize.formatUnit( value, unit, options ) + * + * @value [Number] + * + * @unit [String]: The unit (e.g "second", "day", "year") + * + * @options [Object] + * - form: [String] "long", "short" (default), or "narrow". + * + * Format units such as seconds, minutes, days, weeks, etc. + */ +Globalize.formatUnit = +Globalize.prototype.formatUnit = function( value, unit, options ) { + validateParameterPresence( value, "value" ); + validateParameterTypeNumber( value, "value" ); + + return this.unitFormatter( unit, options )( value ); +}; + +/** + * Globalize.unitFormatter( unit, options ) + * + * @unit [String]: The unit (e.g "second", "day", "year") + * + * @options [Object] + * - form: [String] "long", "short" (default), or "narrow". + * + * - numberFormatter: [Function] a number formatter function. Defaults to Globalize + * `.numberFormatter()` for the current locale using the default options. + */ +Globalize.unitFormatter = +Globalize.prototype.unitFormatter = function( unit, options ) { + var args, form, numberFormatter, pluralGenerator, returnFn, properties; + + validateParameterPresence( unit, "unit" ); + validateParameterTypeString( unit, "unit" ); + + validateParameterTypePlainObject( options, "options" ); + + options = options || {}; + + args = [ unit, options ]; + form = options.form || "long"; + properties = unitProperties( unit, form, this.cldr ); + + numberFormatter = options.numberFormatter || this.numberFormatter(); + pluralGenerator = this.pluralGenerator(); + returnFn = unitFormatterFn( numberFormatter, pluralGenerator, properties ); + + runtimeBind( args, this.cldr, returnFn, [ numberFormatter, pluralGenerator, properties ] ); + + return returnFn; +}; + +return Globalize; + + + + +})); diff --git a/Web/Scripts/jquery.validate-vsdoc.js b/Web/Scripts/jquery.validate-vsdoc.js index b829538..57684e1 100644 --- a/Web/Scripts/jquery.validate-vsdoc.js +++ b/Web/Scripts/jquery.validate-vsdoc.js @@ -4,7 +4,7 @@ * intended to be used only for design-time IntelliSense. Please use the * standard jQuery library for all production use. * -* Comment version: 1.14.0 +* Comment version: 1.15.0 */ /* @@ -15,7 +15,7 @@ * for informational purposes only and are not the license terms under * which Microsoft distributed this file. * -* jQuery Validation Plugin - v1.14.0 - 2/4/2013 +* jQuery Validation Plugin - v1.15.0 - 2/4/2013 * https://github.com/jzaefferer/jquery-validation * Copyright (c) 2013 Jörn Zaefferer; Licensed MIT * diff --git a/Web/Scripts/jquery.validate.js b/Web/Scripts/jquery.validate.js index 4e979bc..2f179ea 100644 --- a/Web/Scripts/jquery.validate.js +++ b/Web/Scripts/jquery.validate.js @@ -1,24 +1,27 @@ /*! - * jQuery Validation Plugin v1.14.0 + * jQuery Validation Plugin v1.15.0 * * http://jqueryvalidation.org/ * - * Copyright (c) 2015 Jörn Zaefferer + * Copyright (c) 2016 Jörn Zaefferer * Released under the MIT license */ (function( factory ) { if ( typeof define === "function" && define.amd ) { define( ["jquery"], factory ); + } else if (typeof module === "object" && module.exports) { + module.exports = factory( require( "jquery" ) ); } else { factory( jQuery ); } }(function( $ ) { -$.extend($.fn, { +$.extend( $.fn, { + // http://jqueryvalidation.org/validate/ validate: function( options ) { - // if nothing is selected, return nothing; can't chain anyway + // If nothing is selected, return nothing; can't chain anyway if ( !this.length ) { if ( options && options.debug && window.console ) { console.warn( "Nothing selected, can't validate, returning nothing." ); @@ -26,7 +29,7 @@ $.extend($.fn, { return; } - // check if a validator for this form was already created + // Check if a validator for this form was already created var validator = $.data( this[ 0 ], "validator" ); if ( validator ) { return validator; @@ -45,28 +48,30 @@ $.extend($.fn, { validator.submitButton = event.target; } - // allow suppressing validation by adding a cancel class to the submit button + // Allow suppressing validation by adding a cancel class to the submit button if ( $( this ).hasClass( "cancel" ) ) { validator.cancelSubmit = true; } - // allow suppressing validation by adding the html5 formnovalidate attribute to the submit button + // Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button if ( $( this ).attr( "formnovalidate" ) !== undefined ) { validator.cancelSubmit = true; } - }); + } ); - // validate the form on submit + // Validate the form on submit this.on( "submit.validate", function( event ) { if ( validator.settings.debug ) { - // prevent form submit to be able to see console output + + // Prevent form submit to be able to see console output event.preventDefault(); } function handle() { var hidden, result; if ( validator.settings.submitHandler ) { if ( validator.submitButton ) { - // insert a hidden input as a replacement for the missing submit button + + // Insert a hidden input as a replacement for the missing submit button hidden = $( "" ) .attr( "name", validator.submitButton.name ) .val( $( validator.submitButton ).val() ) @@ -74,7 +79,8 @@ $.extend($.fn, { } result = validator.settings.submitHandler.call( validator, validator.currentForm, event ); if ( validator.submitButton ) { - // and clean up afterwards; thanks to no-block-scope, hidden can be referenced + + // And clean up afterwards; thanks to no-block-scope, hidden can be referenced hidden.remove(); } if ( result !== undefined ) { @@ -85,7 +91,7 @@ $.extend($.fn, { return true; } - // prevent submit for invalid forms or custom submit handlers + // Prevent submit for invalid forms or custom submit handlers if ( validator.cancelSubmit ) { validator.cancelSubmit = false; return handle(); @@ -100,11 +106,12 @@ $.extend($.fn, { validator.focusInvalid(); return false; } - }); + } ); } return validator; }, + // http://jqueryvalidation.org/valid/ valid: function() { var valid, validator, errorList; @@ -117,8 +124,10 @@ $.extend($.fn, { validator = $( this[ 0 ].form ).validate(); this.each( function() { valid = validator.element( this ) && valid; - errorList = errorList.concat( validator.errorList ); - }); + if ( !valid ) { + errorList = errorList.concat( validator.errorList ); + } + } ); validator.errorList = errorList; } return valid; @@ -126,6 +135,12 @@ $.extend($.fn, { // http://jqueryvalidation.org/rules/ rules: function( command, argument ) { + + // If nothing is selected, return nothing; can't chain anyway + if ( !this.length ) { + return; + } + var element = this[ 0 ], settings, staticRules, existingRules, data, param, filtered; @@ -136,7 +151,8 @@ $.extend($.fn, { switch ( command ) { case "add": $.extend( existingRules, $.validator.normalizeRule( argument ) ); - // remove messages from rules, but allow them to be set separately + + // Remove messages from rules, but allow them to be set separately delete existingRules.messages; staticRules[ element.name ] = existingRules; if ( argument.messages ) { @@ -155,7 +171,7 @@ $.extend($.fn, { if ( method === "required" ) { $( element ).removeAttr( "aria-required" ); } - }); + } ); return filtered; } } @@ -169,7 +185,7 @@ $.extend($.fn, { $.validator.staticRules( element ) ), element ); - // make sure required is at front + // Make sure required is at front if ( data.required ) { param = data.required; delete data.required; @@ -177,34 +193,38 @@ $.extend($.fn, { $( element ).attr( "aria-required", "true" ); } - // make sure remote is at back + // Make sure remote is at back if ( data.remote ) { param = data.remote; delete data.remote; - data = $.extend( data, { remote: param }); + data = $.extend( data, { remote: param } ); } return data; } -}); +} ); // Custom selectors $.extend( $.expr[ ":" ], { + // http://jqueryvalidation.org/blank-selector/ blank: function( a ) { return !$.trim( "" + $( a ).val() ); }, + // http://jqueryvalidation.org/filled-selector/ filled: function( a ) { - return !!$.trim( "" + $( a ).val() ); + var val = $( a ).val(); + return val !== null && !!$.trim( "" + val ); }, + // http://jqueryvalidation.org/unchecked-selector/ unchecked: function( a ) { return !$( a ).prop( "checked" ); } -}); +} ); -// constructor for validator +// Constructor for validator $.validator = function( options, form ) { this.settings = $.extend( true, {}, $.validator.defaults, options ); this.currentForm = form; @@ -220,6 +240,9 @@ $.validator.format = function( source, params ) { return $.validator.format.apply( this, args ); }; } + if ( params === undefined ) { + return source; + } if ( arguments.length > 2 && params.constructor !== Array ) { params = $.makeArray( arguments ).slice( 1 ); } @@ -229,8 +252,8 @@ $.validator.format = function( source, params ) { $.each( params, function( i, n ) { source = source.replace( new RegExp( "\\{" + i + "\\}", "g" ), function() { return n; - }); - }); + } ); + } ); return source; }; @@ -241,6 +264,7 @@ $.extend( $.validator, { groups: {}, rules: {}, errorClass: "error", + pendingClass: "pending", validClass: "valid", errorElement: "label", focusCleanup: false, @@ -267,6 +291,7 @@ $.extend( $.validator, { } }, onkeyup: function( element, event ) { + // Avoid revalidate the field when pressing one of the following keys // Shift => 16 // Ctrl => 17 @@ -288,16 +313,17 @@ $.extend( $.validator, { if ( event.which === 9 && this.elementValue( element ) === "" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) { return; - } else if ( element.name in this.submitted || element === this.lastElement ) { + } else if ( element.name in this.submitted || element.name in this.invalid ) { this.element( element ); } }, onclick: function( element ) { - // click on selects, radiobuttons and checkboxes + + // Click on selects, radiobuttons and checkboxes if ( element.name in this.submitted ) { this.element( element ); - // or option elements, check parent select in that case + // Or option elements, check parent select in that case } else if ( element.parentNode.name in this.submitted ) { this.element( element.parentNode ); } @@ -332,14 +358,14 @@ $.extend( $.validator, { dateISO: "Please enter a valid date ( ISO ).", number: "Please enter a valid number.", digits: "Please enter only digits.", - creditcard: "Please enter a valid credit card number.", equalTo: "Please enter the same value again.", maxlength: $.validator.format( "Please enter no more than {0} characters." ), minlength: $.validator.format( "Please enter at least {0} characters." ), rangelength: $.validator.format( "Please enter a value between {0} and {1} characters long." ), range: $.validator.format( "Please enter a value between {0} and {1}." ), max: $.validator.format( "Please enter a value less than or equal to {0}." ), - min: $.validator.format( "Please enter a value greater than or equal to {0}." ) + min: $.validator.format( "Please enter a value greater than or equal to {0}." ), + step: $.validator.format( "Please enter a multiple of {0}." ) }, autoCreateRanges: false, @@ -365,12 +391,12 @@ $.extend( $.validator, { } $.each( value, function( index, name ) { groups[ name ] = key; - }); - }); + } ); + } ); rules = this.settings.rules; $.each( rules, function( key, value ) { rules[ key ] = $.validator.normalizeRule( value ); - }); + } ); function delegate( event ) { var validator = $.data( this.form, "validator" ), @@ -386,10 +412,11 @@ $.extend( $.validator, { ":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], " + "[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], " + "[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], " + - "[type='radio'], [type='checkbox']", delegate) + "[type='radio'], [type='checkbox'], [contenteditable]", delegate ) + // Support: Chrome, oldIE // "select" is provided as event.target when clicking a option - .on("click.validate", "select, option, [type='radio'], [type='checkbox']", delegate); + .on( "click.validate", "select, option, [type='radio'], [type='checkbox']", delegate ); if ( this.settings.invalidHandler ) { $( this.currentForm ).on( "invalid-form.validate", this.settings.invalidHandler ); @@ -404,9 +431,9 @@ $.extend( $.validator, { form: function() { this.checkForm(); $.extend( this.submitted, this.errorMap ); - this.invalid = $.extend({}, this.errorMap ); + this.invalid = $.extend( {}, this.errorMap ); if ( !this.valid() ) { - $( this.currentForm ).triggerHandler( "invalid-form", [ this ]); + $( this.currentForm ).triggerHandler( "invalid-form", [ this ] ); } this.showErrors(); return this.valid(); @@ -424,9 +451,9 @@ $.extend( $.validator, { element: function( element ) { var cleanElement = this.clean( element ), checkElement = this.validationTargetFor( cleanElement ), - result = true; - - this.lastElement = checkElement; + v = this, + result = true, + rs, group; if ( checkElement === undefined ) { delete this.invalid[ cleanElement.name ]; @@ -434,40 +461,61 @@ $.extend( $.validator, { this.prepareElement( checkElement ); this.currentElements = $( checkElement ); - result = this.check( checkElement ) !== false; - if ( result ) { - delete this.invalid[ checkElement.name ]; + // If this element is grouped, then validate all group elements already + // containing a value + group = this.groups[ checkElement.name ]; + if ( group ) { + $.each( this.groups, function( name, testgroup ) { + if ( testgroup === group && name !== checkElement.name ) { + cleanElement = v.validationTargetFor( v.clean( v.findByName( name ) ) ); + if ( cleanElement && cleanElement.name in v.invalid ) { + v.currentElements.push( cleanElement ); + result = result && v.check( cleanElement ); + } + } + } ); + } + + rs = this.check( checkElement ) !== false; + result = result && rs; + if ( rs ) { + this.invalid[ checkElement.name ] = false; } else { this.invalid[ checkElement.name ] = true; } - } - // Add aria-invalid status for screen readers - $( element ).attr( "aria-invalid", !result ); - if ( !this.numberOfInvalids() ) { - // Hide error containers on last error - this.toHide = this.toHide.add( this.containers ); + if ( !this.numberOfInvalids() ) { + + // Hide error containers on last error + this.toHide = this.toHide.add( this.containers ); + } + this.showErrors(); + + // Add aria-invalid status for screen readers + $( element ).attr( "aria-invalid", !rs ); } - this.showErrors(); + return result; }, // http://jqueryvalidation.org/Validator.showErrors/ showErrors: function( errors ) { if ( errors ) { - // add items to error list and map + var validator = this; + + // Add items to error list and map $.extend( this.errorMap, errors ); - this.errorList = []; - for ( var name in errors ) { - this.errorList.push({ - message: errors[ name ], - element: this.findByName( name )[ 0 ] - }); - } - // remove items from success list + this.errorList = $.map( this.errorMap, function( message, name ) { + return { + message: message, + element: validator.findByName( name )[ 0 ] + }; + } ); + + // Remove items from success list this.successList = $.grep( this.successList, function( element ) { return !( element.name in errors ); - }); + } ); } if ( this.settings.showErrors ) { this.settings.showErrors.call( this, this.errorMap, this.errorList ); @@ -481,21 +529,30 @@ $.extend( $.validator, { if ( $.fn.resetForm ) { $( this.currentForm ).resetForm(); } + this.invalid = {}; this.submitted = {}; - this.lastElement = null; this.prepareForm(); this.hideErrors(); - var i, elements = this.elements() + var elements = this.elements() .removeData( "previousValue" ) .removeAttr( "aria-invalid" ); + this.resetElements( elements ); + }, + + resetElements: function( elements ) { + var i; + if ( this.settings.unhighlight ) { for ( i = 0; elements[ i ]; i++ ) { this.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, "" ); + this.findByName( elements[ i ].name ).removeClass( this.settings.validClass ); } } else { - elements.removeClass( this.settings.errorClass ); + elements + .removeClass( this.settings.errorClass ) + .removeClass( this.settings.validClass ); } }, @@ -508,7 +565,9 @@ $.extend( $.validator, { var count = 0, i; for ( i in obj ) { - count++; + if ( obj[ i ] ) { + count++; + } } return count; }, @@ -533,13 +592,15 @@ $.extend( $.validator, { focusInvalid: function() { if ( this.settings.focusInvalid ) { try { - $( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || []) + $( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] ) .filter( ":visible" ) .focus() - // manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find + + // Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find .trigger( "focusin" ); } catch ( e ) { - // ignore IE throwing errors when focusing hidden elements + + // Ignore IE throwing errors when focusing hidden elements } } }, @@ -548,31 +609,37 @@ $.extend( $.validator, { var lastActive = this.lastActive; return lastActive && $.grep( this.errorList, function( n ) { return n.element.name === lastActive.name; - }).length === 1 && lastActive; + } ).length === 1 && lastActive; }, elements: function() { var validator = this, rulesCache = {}; - // select all valid inputs inside the form (no submit or reset buttons) + // Select all valid inputs inside the form (no submit or reset buttons) return $( this.currentForm ) - .find( "input, select, textarea" ) + .find( "input, select, textarea, [contenteditable]" ) .not( ":submit, :reset, :image, :disabled" ) .not( this.settings.ignore ) .filter( function() { - if ( !this.name && validator.settings.debug && window.console ) { + var name = this.name || $( this ).attr( "name" ); // For contenteditable + if ( !name && validator.settings.debug && window.console ) { console.error( "%o has no name assigned", this ); } - // select only the first element for each name, and only those with rules specified - if ( this.name in rulesCache || !validator.objectLength( $( this ).rules() ) ) { + // Set form expando on contenteditable + if ( this.hasAttribute( "contenteditable" ) ) { + this.form = $( this ).closest( "form" )[ 0 ]; + } + + // Select only the first element for each name, and only those with rules specified + if ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) { return false; } - rulesCache[ this.name ] = true; + rulesCache[ name ] = true; return true; - }); + } ); }, clean: function( selector ) { @@ -584,12 +651,16 @@ $.extend( $.validator, { return $( this.settings.errorElement + "." + errorClass, this.errorContext ); }, - reset: function() { + resetInternals: function() { this.successList = []; this.errorList = []; this.errorMap = {}; this.toShow = $( [] ); this.toHide = $( [] ); + }, + + reset: function() { + this.resetInternals(); this.currentElements = $( [] ); }, @@ -604,19 +675,48 @@ $.extend( $.validator, { }, elementValue: function( element ) { - var val, - $element = $( element ), - type = element.type; + var $element = $( element ), + type = element.type, + val, idx; if ( type === "radio" || type === "checkbox" ) { - return this.findByName( element.name ).filter(":checked").val(); + return this.findByName( element.name ).filter( ":checked" ).val(); } else if ( type === "number" && typeof element.validity !== "undefined" ) { - return element.validity.badInput ? false : $element.val(); + return element.validity.badInput ? "NaN" : $element.val(); + } + + if ( element.hasAttribute( "contenteditable" ) ) { + val = $element.text(); + } else { + val = $element.val(); + } + + if ( type === "file" ) { + + // Modern browser (chrome & safari) + if ( val.substr( 0, 12 ) === "C:\\fakepath\\" ) { + return val.substr( 12 ); + } + + // Legacy browsers + // Unix-based path + idx = val.lastIndexOf( "/" ); + if ( idx >= 0 ) { + return val.substr( idx + 1 ); + } + + // Windows-based path + idx = val.lastIndexOf( "\\" ); + if ( idx >= 0 ) { + return val.substr( idx + 1 ); + } + + // Just the file name + return val; } - val = $element.val(); if ( typeof val === "string" ) { - return val.replace(/\r/g, "" ); + return val.replace( /\r/g, "" ); } return val; }, @@ -627,18 +727,33 @@ $.extend( $.validator, { var rules = $( element ).rules(), rulesCount = $.map( rules, function( n, i ) { return i; - }).length, + } ).length, dependencyMismatch = false, val = this.elementValue( element ), result, method, rule; + // If a normalizer is defined for this element, then + // call it to retreive the changed value instead + // of using the real one. + // Note that `this` in the normalizer is `element`. + if ( typeof rules.normalizer === "function" ) { + val = rules.normalizer.call( element, val ); + + if ( typeof val !== "string" ) { + throw new TypeError( "The normalizer should return a string value." ); + } + + // Delete the normalizer from rules to avoid treating + // it as a pre-defined method. + delete rules.normalizer; + } + for ( method in rules ) { rule = { method: method, parameters: rules[ method ] }; try { - result = $.validator.methods[ method ].call( this, val, element, rule.parameters ); - // if a method indicates that the field is optional and therefore valid, + // If a method indicates that the field is optional and therefore valid, // don't mark it as valid when there are no other rules if ( result === "dependency-mismatch" && rulesCount === 1 ) { dependencyMismatch = true; @@ -675,7 +790,7 @@ $.extend( $.validator, { return true; }, - // return the custom message for the given element and validation method + // Return the custom message for the given element and validation method // specified in the element's HTML5 data attribute // return the generic message if present and no method specific message is present customDataMessage: function( element, method ) { @@ -683,15 +798,15 @@ $.extend( $.validator, { method.substring( 1 ).toLowerCase() ) || $( element ).data( "msg" ); }, - // return the custom message for the given element name and validation method + // Return the custom message for the given element name and validation method customMessage: function( name, method ) { var m = this.settings.messages[ name ]; - return m && ( m.constructor === String ? m : m[ method ]); + return m && ( m.constructor === String ? m : m[ method ] ); }, - // return the first defined argument, allowing empty strings + // Return the first defined argument, allowing empty strings findDefined: function() { - for ( var i = 0; i < arguments.length; i++) { + for ( var i = 0; i < arguments.length; i++ ) { if ( arguments[ i ] !== undefined ) { return arguments[ i ]; } @@ -699,30 +814,34 @@ $.extend( $.validator, { return undefined; }, - defaultMessage: function( element, method ) { - return this.findDefined( - this.customMessage( element.name, method ), - this.customDataMessage( element, method ), - // title is never undefined, so handle empty string as undefined - !this.settings.ignoreTitle && element.title || undefined, - $.validator.messages[ method ], - "Warning: No message defined for " + element.name + "" - ); - }, + defaultMessage: function( element, rule ) { + var message = this.findDefined( + this.customMessage( element.name, rule.method ), + this.customDataMessage( element, rule.method ), - formatAndAdd: function( element, rule ) { - var message = this.defaultMessage( element, rule.method ), + // 'title' is never undefined, so handle empty string as undefined + !this.settings.ignoreTitle && element.title || undefined, + $.validator.messages[ rule.method ], + "Warning: No message defined for " + element.name + "" + ), theregex = /\$?\{(\d+)\}/g; if ( typeof message === "function" ) { message = message.call( this, rule.parameters, element ); } else if ( theregex.test( message ) ) { message = $.validator.format( message.replace( theregex, "{$1}" ), rule.parameters ); } - this.errorList.push({ + + return message; + }, + + formatAndAdd: function( element, rule ) { + var message = this.defaultMessage( element, rule ); + + this.errorList.push( { message: message, element: element, method: rule.method - }); + } ); this.errorMap[ element.name ] = message; this.submitted[ element.name ] = message; @@ -767,23 +886,27 @@ $.extend( $.validator, { }, invalidElements: function() { - return $( this.errorList ).map(function() { + return $( this.errorList ).map( function() { return this.element; - }); + } ); }, showLabel: function( element, message ) { - var place, group, errorID, + var place, group, errorID, v, error = this.errorsFor( element ), elementID = this.idOrName( element ), describedBy = $( element ).attr( "aria-describedby" ); + if ( error.length ) { - // refresh error/success class + + // Refresh error/success class error.removeClass( this.settings.validClass ).addClass( this.settings.errorClass ); - // replace message on existing label + + // Replace message on existing label error.html( message ); } else { - // create error element + + // Create error element error = $( "<" + this.settings.errorElement + ">" ) .attr( "id", elementID + "-error" ) .addClass( this.settings.errorClass ) @@ -792,7 +915,8 @@ $.extend( $.validator, { // Maintain reference to the element to be placed into the DOM place = error; if ( this.settings.wrapper ) { - // make sure the element is visible, even in IE + + // Make sure the element is visible, even in IE // actually showing the wrapped element is handled elsewhere place = error.hide().show().wrap( "<" + this.settings.wrapper + "/>" ).parent(); } @@ -806,17 +930,20 @@ $.extend( $.validator, { // Link error back to the element if ( error.is( "label" ) ) { + // If the error is a label, then associate using 'for' error.attr( "for", elementID ); - } else if ( error.parents( "label[for='" + elementID + "']" ).length === 0 ) { + // If the element is not a child of an associated label, then it's necessary // to explicitly apply aria-describedby + } else if ( error.parents( "label[for='" + this.escapeCssMeta( elementID ) + "']" ).length === 0 ) { + errorID = error.attr( "id" ); - errorID = error.attr( "id" ).replace( /(:|\.|\[|\]|\$)/g, "\\$1"); // Respect existing non-error aria-describedby if ( !describedBy ) { describedBy = errorID; - } else if ( !describedBy.match( new RegExp( "\\b" + errorID + "\\b" ) ) ) { + } else if ( !describedBy.match( new RegExp( "\\b" + this.escapeCssMeta( errorID ) + "\\b" ) ) ) { + // Add to end of list if not already present describedBy += " " + errorID; } @@ -825,12 +952,13 @@ $.extend( $.validator, { // If this element is grouped, then assign to all elements in the same group group = this.groups[ element.name ]; if ( group ) { - $.each( this.groups, function( name, testgroup ) { + v = this; + $.each( v.groups, function( name, testgroup ) { if ( testgroup === group ) { - $( "[name='" + name + "']", this.currentForm ) + $( "[name='" + v.escapeCssMeta( name ) + "']", v.currentForm ) .attr( "aria-describedby", error.attr( "id" ) ); } - }); + } ); } } } @@ -846,19 +974,28 @@ $.extend( $.validator, { }, errorsFor: function( element ) { - var name = this.idOrName( element ), + var name = this.escapeCssMeta( this.idOrName( element ) ), describer = $( element ).attr( "aria-describedby" ), selector = "label[for='" + name + "'], label[for='" + name + "'] *"; - // aria-describedby should directly reference the error element + // 'aria-describedby' should directly reference the error element if ( describer ) { - selector = selector + ", #" + describer.replace( /\s+/g, ", #" ); + selector = selector + ", #" + this.escapeCssMeta( describer ) + .replace( /\s+/g, ", #" ); } + return this .errors() .filter( selector ); }, + // See https://api.jquery.com/category/selectors/, for CSS + // meta-characters that should be escaped in order to be used with JQuery + // as a literal part of a name/id or any selector. + escapeCssMeta: function( string ) { + return string.replace( /([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g, "\\$1" ); + }, + idOrName: function( element ) { return this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name ); }, @@ -879,7 +1016,7 @@ $.extend( $.validator, { }, findByName: function( name ) { - return $( this.currentForm ).find( "[name='" + name + "']" ); + return $( this.currentForm ).find( "[name='" + this.escapeCssMeta( name ) + "']" ); }, getLength: function( value, element ) { @@ -895,7 +1032,7 @@ $.extend( $.validator, { }, depend: function( param, element ) { - return this.dependTypes[typeof param] ? this.dependTypes[typeof param]( param, element ) : true; + return this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ]( param, element ) : true; }, dependTypes: { @@ -918,41 +1055,47 @@ $.extend( $.validator, { startRequest: function( element ) { if ( !this.pending[ element.name ] ) { this.pendingRequest++; + $( element ).addClass( this.settings.pendingClass ); this.pending[ element.name ] = true; } }, stopRequest: function( element, valid ) { this.pendingRequest--; - // sometimes synchronization fails, make sure pendingRequest is never < 0 + + // Sometimes synchronization fails, make sure pendingRequest is never < 0 if ( this.pendingRequest < 0 ) { this.pendingRequest = 0; } delete this.pending[ element.name ]; + $( element ).removeClass( this.settings.pendingClass ); if ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) { $( this.currentForm ).submit(); this.formSubmitted = false; - } else if (!valid && this.pendingRequest === 0 && this.formSubmitted ) { - $( this.currentForm ).triggerHandler( "invalid-form", [ this ]); + } else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) { + $( this.currentForm ).triggerHandler( "invalid-form", [ this ] ); this.formSubmitted = false; } }, - previousValue: function( element ) { + previousValue: function( element, method ) { return $.data( element, "previousValue" ) || $.data( element, "previousValue", { old: null, valid: true, - message: this.defaultMessage( element, "remote" ) - }); + message: this.defaultMessage( element, { method: method } ) + } ); }, - // cleans up all forms and elements, removes validator-specific events + // Cleans up all forms and elements, removes validator-specific events destroy: function() { this.resetForm(); $( this.currentForm ) .off( ".validate" ) - .removeData( "validator" ); + .removeData( "validator" ) + .find( ".validate-equalTo-blur" ) + .off( ".validate-equalTo" ) + .removeClass( "validate-equalTo-blur" ); } }, @@ -983,18 +1126,18 @@ $.extend( $.validator, { if ( classes ) { $.each( classes.split( " " ), function() { if ( this in $.validator.classRuleSettings ) { - $.extend( rules, $.validator.classRuleSettings[ this ]); + $.extend( rules, $.validator.classRuleSettings[ this ] ); } - }); + } ); } return rules; }, normalizeAttributeRule: function( rules, type, method, value ) { - // convert the value to a number for number inputs, and for text for backwards compability + // Convert the value to a number for number inputs, and for text for backwards compability // allows type="date" and others to be compared as strings - if ( /min|max/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) { + if ( /min|max|step/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) { value = Number( value ); // Support Opera Mini, which returns NaN for undefined minlength @@ -1007,7 +1150,7 @@ $.extend( $.validator, { rules[ method ] = value; } else if ( type === method && type !== "range" ) { - // exception: the jquery validate 'range' method + // Exception: the jquery validate 'range' method // does not test for the html5 'range' type rules[ method ] = true; } @@ -1021,7 +1164,7 @@ $.extend( $.validator, { for ( method in $.validator.methods ) { - // support for in both html5 and older browsers + // Support for in both html5 and older browsers if ( method === "required" ) { value = element.getAttribute( method ); @@ -1031,7 +1174,7 @@ $.extend( $.validator, { value = true; } - // force non-HTML5 browsers to return bool + // Force non-HTML5 browsers to return bool value = !!value; } else { value = $element.attr( method ); @@ -1040,7 +1183,7 @@ $.extend( $.validator, { this.normalizeAttributeRule( rules, type, method, value ); } - // maxlength may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs + // 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs if ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) { delete rules.maxlength; } @@ -1072,9 +1215,11 @@ $.extend( $.validator, { }, normalizeRules: function( rules, element ) { - // handle dependency check + + // Handle dependency check $.each( rules, function( prop, val ) { - // ignore rule when param is explicitly false, eg. required:false + + // Ignore rule when param is explicitly false, eg. required:false if ( val === false ) { delete rules[ prop ]; return; @@ -1092,36 +1237,38 @@ $.extend( $.validator, { if ( keepRule ) { rules[ prop ] = val.param !== undefined ? val.param : true; } else { + $.data( element.form, "validator" ).resetElements( $( element ) ); delete rules[ prop ]; } } - }); + } ); - // evaluate parameters + // Evaluate parameters $.each( rules, function( rule, parameter ) { - rules[ rule ] = $.isFunction( parameter ) ? parameter( element ) : parameter; - }); + rules[ rule ] = $.isFunction( parameter ) && rule !== "normalizer" ? parameter( element ) : parameter; + } ); - // clean number parameters - $.each([ "minlength", "maxlength" ], function() { + // Clean number parameters + $.each( [ "minlength", "maxlength" ], function() { if ( rules[ this ] ) { rules[ this ] = Number( rules[ this ] ); } - }); - $.each([ "rangelength", "range" ], function() { + } ); + $.each( [ "rangelength", "range" ], function() { var parts; if ( rules[ this ] ) { if ( $.isArray( rules[ this ] ) ) { - rules[ this ] = [ Number( rules[ this ][ 0 ]), Number( rules[ this ][ 1 ] ) ]; + rules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ]; } else if ( typeof rules[ this ] === "string" ) { - parts = rules[ this ].replace(/[\[\]]/g, "" ).split( /[\s,]+/ ); - rules[ this ] = [ Number( parts[ 0 ]), Number( parts[ 1 ] ) ]; + parts = rules[ this ].replace( /[\[\]]/g, "" ).split( /[\s,]+/ ); + rules[ this ] = [ Number( parts[ 0 ] ), Number( parts[ 1 ] ) ]; } } - }); + } ); if ( $.validator.autoCreateRanges ) { - // auto-create ranges + + // Auto-create ranges if ( rules.min != null && rules.max != null ) { rules.range = [ rules.min, rules.max ]; delete rules.min; @@ -1143,7 +1290,7 @@ $.extend( $.validator, { var transformed = {}; $.each( data.split( /\s/ ), function() { transformed[ this ] = true; - }); + } ); data = transformed; } return data; @@ -1158,16 +1305,19 @@ $.extend( $.validator, { } }, + // http://jqueryvalidation.org/jQuery.validator.methods/ methods: { // http://jqueryvalidation.org/required-method/ required: function( value, element, param ) { - // check if dependency is met + + // Check if dependency is met if ( !this.depend( param, element ) ) { return "dependency-mismatch"; } if ( element.nodeName.toLowerCase() === "select" ) { - // could be an array for select-multiple or a string, both are fine this way + + // Could be an array for select-multiple or a string, both are fine this way var val = $( element ).val(); return val && val.length > 0; } @@ -1179,6 +1329,7 @@ $.extend( $.validator, { // http://jqueryvalidation.org/email-method/ email: function( value, element ) { + // From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address // Retrieved 2014-01-14 // If you have a problem with this implementation, report a bug against the above spec @@ -1216,44 +1367,6 @@ $.extend( $.validator, { return this.optional( element ) || /^\d+$/.test( value ); }, - // http://jqueryvalidation.org/creditcard-method/ - // based on http://en.wikipedia.org/wiki/Luhn_algorithm - creditcard: function( value, element ) { - if ( this.optional( element ) ) { - return "dependency-mismatch"; - } - // accept only spaces, digits and dashes - if ( /[^0-9 \-]+/.test( value ) ) { - return false; - } - var nCheck = 0, - nDigit = 0, - bEven = false, - n, cDigit; - - value = value.replace( /\D/g, "" ); - - // Basing min and max length on - // http://developer.ean.com/general_info/Valid_Credit_Card_Types - if ( value.length < 13 || value.length > 19 ) { - return false; - } - - for ( n = value.length - 1; n >= 0; n--) { - cDigit = value.charAt( n ); - nDigit = parseInt( cDigit, 10 ); - if ( bEven ) { - if ( ( nDigit *= 2 ) > 9 ) { - nDigit -= 9; - } - } - nCheck += nDigit; - bEven = !bEven; - } - - return ( nCheck % 10 ) === 0; - }, - // http://jqueryvalidation.org/minlength-method/ minlength: function( value, element, param ) { var length = $.isArray( value ) ? value.length : this.getLength( value, element ); @@ -1287,41 +1400,59 @@ $.extend( $.validator, { return this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] ); }, + // http://jqueryvalidation.org/step-method/ + step: function( value, element, param ) { + var type = $( element ).attr( "type" ), + errorMessage = "Step attribute on input type " + type + " is not supported.", + supportedTypes = [ "text", "number", "range" ], + re = new RegExp( "\\b" + type + "\\b" ), + notSupported = type && !re.test( supportedTypes.join() ); + + // Works only for text, number and range input types + // TODO find a way to support input types date, datetime, datetime-local, month, time and week + if ( notSupported ) { + throw new Error( errorMessage ); + } + return this.optional( element ) || ( value % param === 0 ); + }, + // http://jqueryvalidation.org/equalTo-method/ equalTo: function( value, element, param ) { - // bind to the blur event of the target in order to revalidate whenever the target field is updated - // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead + + // Bind to the blur event of the target in order to revalidate whenever the target field is updated var target = $( param ); - if ( this.settings.onfocusout ) { - target.off( ".validate-equalTo" ).on( "blur.validate-equalTo", function() { + if ( this.settings.onfocusout && target.not( ".validate-equalTo-blur" ).length ) { + target.addClass( "validate-equalTo-blur" ).on( "blur.validate-equalTo", function() { $( element ).valid(); - }); + } ); } return value === target.val(); }, // http://jqueryvalidation.org/remote-method/ - remote: function( value, element, param ) { + remote: function( value, element, param, method ) { if ( this.optional( element ) ) { return "dependency-mismatch"; } - var previous = this.previousValue( element ), - validator, data; + method = typeof method === "string" && method || "remote"; - if (!this.settings.messages[ element.name ] ) { + var previous = this.previousValue( element, method ), + validator, data, optionDataString; + + if ( !this.settings.messages[ element.name ] ) { this.settings.messages[ element.name ] = {}; } - previous.originalMessage = this.settings.messages[ element.name ].remote; - this.settings.messages[ element.name ].remote = previous.message; + previous.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ]; + this.settings.messages[ element.name ][ method ] = previous.message; param = typeof param === "string" && { url: param } || param; - - if ( previous.old === value ) { + optionDataString = $.param( $.extend( { data: value }, param.data ) ); + if ( previous.old === optionDataString ) { return previous.valid; } - previous.old = value; + previous.old = optionDataString; validator = this; this.startRequest( element ); data = {}; @@ -1336,18 +1467,19 @@ $.extend( $.validator, { var valid = response === true || response === "true", errors, message, submitted; - validator.settings.messages[ element.name ].remote = previous.originalMessage; + validator.settings.messages[ element.name ][ method ] = previous.originalMessage; if ( valid ) { submitted = validator.formSubmitted; - validator.prepareElement( element ); + validator.resetInternals(); + validator.toHide = validator.errorsFor( element ); validator.formSubmitted = submitted; validator.successList.push( element ); - delete validator.invalid[ element.name ]; + validator.invalid[ element.name ] = false; validator.showErrors(); } else { errors = {}; - message = response || validator.defaultMessage( element, "remote" ); - errors[ element.name ] = previous.message = $.isFunction( message ) ? message( value ) : message; + message = response || validator.defaultMessage( element, { method: method, parameters: value } ); + errors[ element.name ] = previous.message = message; validator.invalid[ element.name ] = true; validator.showErrors( errors ); } @@ -1359,39 +1491,41 @@ $.extend( $.validator, { } } -}); +} ); -// ajax mode: abort +// Ajax mode: abort // usage: $.ajax({ mode: "abort"[, port: "uniqueport"]}); // if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() var pendingRequests = {}, ajax; + // Use a prefilter if available (1.5+) if ( $.ajaxPrefilter ) { - $.ajaxPrefilter(function( settings, _, xhr ) { + $.ajaxPrefilter( function( settings, _, xhr ) { var port = settings.port; if ( settings.mode === "abort" ) { - if ( pendingRequests[port] ) { - pendingRequests[port].abort(); + if ( pendingRequests[ port ] ) { + pendingRequests[ port ].abort(); } - pendingRequests[port] = xhr; + pendingRequests[ port ] = xhr; } - }); + } ); } else { + // Proxy ajax ajax = $.ajax; $.ajax = function( settings ) { var mode = ( "mode" in settings ? settings : $.ajaxSettings ).mode, port = ( "port" in settings ? settings : $.ajaxSettings ).port; if ( mode === "abort" ) { - if ( pendingRequests[port] ) { - pendingRequests[port].abort(); + if ( pendingRequests[ port ] ) { + pendingRequests[ port ].abort(); } - pendingRequests[port] = ajax.apply(this, arguments); - return pendingRequests[port]; + pendingRequests[ port ] = ajax.apply( this, arguments ); + return pendingRequests[ port ]; } - return ajax.apply(this, arguments); + return ajax.apply( this, arguments ); }; } diff --git a/Web/Scripts/jquery.validate.min.js b/Web/Scripts/jquery.validate.min.js index 643837b..2a3c1e8 100644 --- a/Web/Scripts/jquery.validate.min.js +++ b/Web/Scripts/jquery.validate.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.14.0 - 6/30/2015 +/*! jQuery Validation Plugin - v1.15.0 - 2/24/2016 * http://jqueryvalidation.org/ - * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */ -!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.settings.submitHandler?(c.submitButton&&(d=a("").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),e=c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),void 0!==e?e:!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,d=d.concat(c.errorList)}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){return!!a.trim(""+a(b).val())},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||-1!==a.inArray(c.keyCode,d)||(b.name in this.submitted||b===this.lastElement)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c=this.clean(b),d=this.validationTargetFor(c),e=!0;return this.lastElement=d,void 0===d?delete this.invalid[c.name]:(this.prepareElement(d),this.currentElements=a(d),e=this.check(d)!==!1,e?delete this.invalid[d.name]:this.invalid[d.name]=!0),a(b).attr("aria-invalid",!e),this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),e},showErrors:function(b){if(b){a.extend(this.errorMap,b),this.errorList=[];for(var c in b)this.errorList.push({message:b[c],element:this.findByName(c)[0]});this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors();var b,c=this.elements().removeData("previousValue").removeAttr("aria-invalid");if(this.settings.unhighlight)for(b=0;c[b];b++)this.settings.unhighlight.call(this,c[b],this.settings.errorClass,"");else c.removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){return!this.name&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in c||!b.objectLength(a(this).rules())?!1:(c[this.name]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([]),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d=a(b),e=b.type;return"radio"===e||"checkbox"===e?this.findByName(b.name).filter(":checked").val():"number"===e&&"undefined"!=typeof b.validity?b.validity.badInput?!1:d.val():(c=d.val(),"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j instanceof TypeError&&(j.message+=". Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;aWarning: No message defined for "+b.name+"")},formatAndAdd:function(b,c){var d=this.defaultMessage(b,c.method),e=/\$?\{(\d+)\}/g;"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),this.errorList.push({message:d,element:b,method:c.method}),this.errorMap[b.name]=d,this.submitted[b.name]=d},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g=this.errorsFor(b),h=this.idOrName(b),i=a(b).attr("aria-describedby");g.length?(g.removeClass(this.settings.validClass).addClass(this.settings.errorClass),g.html(c)):(g=a("<"+this.settings.errorElement+">").attr("id",h+"-error").addClass(this.settings.errorClass).html(c||""),d=g,this.settings.wrapper&&(d=g.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),g.is("label")?g.attr("for",h):0===g.parents("label[for='"+h+"']").length&&(f=g.attr("id").replace(/(:|\.|\[|\]|\$)/g,"\\$1"),i?i.match(new RegExp("\\b"+f+"\\b"))||(i+=" "+f):i=f,a(b).attr("aria-describedby",i),e=this.groups[b.name],e&&a.each(this.groups,function(b,c){c===e&&a("[name='"+b+"']",this.currentForm).attr("aria-describedby",g.attr("id"))}))),!c&&this.settings.success&&(g.text(""),"string"==typeof this.settings.success?g.addClass(this.settings.success):this.settings.success(g,b)),this.toShow=this.toShow.add(g)},errorsFor:function(b){var c=this.idOrName(b),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+d.replace(/\s+/g,", #")),this.errors().filter(e)},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+b+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(a){this.pending[a.name]||(this.pendingRequest++,this.pending[a.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,"remote")})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:delete b[d]}}),a.each(b,function(d,e){b[d]=a.isFunction(e)?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.off(".validate-equalTo").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d){if(this.optional(c))return"dependency-mismatch";var e,f,g=this.previousValue(c);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),g.originalMessage=this.settings.messages[c.name].remote,this.settings.messages[c.name].remote=g.message,d="string"==typeof d&&{url:d}||d,g.old===b?g.valid:(g.old=b,e=this,this.startRequest(c),f={},f[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:f,context:e.currentForm,success:function(d){var f,h,i,j=d===!0||"true"===d;e.settings.messages[c.name].remote=g.originalMessage,j?(i=e.formSubmitted,e.prepareElement(c),e.formSubmitted=i,e.successList.push(c),delete e.invalid[c.name],e.showErrors()):(f={},h=d||e.defaultMessage(c,"remote"),f[c.name]=g.message=a.isFunction(h)?h(b):h,e.invalid[c.name]=!0,e.showErrors(f)),g.valid=j,e.stopRequest(c,j)}},d)),"pending")}}});var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})}); \ No newline at end of file + * Copyright (c) 2016 Jörn Zaefferer; Licensed MIT */ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.settings.submitHandler?(c.submitButton&&(d=a("").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),e=c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),void 0!==e?e:!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){if(this.length){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){var c=a(b).val();return null!==c&&!!a.trim(""+c)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||-1!==a.inArray(c.keyCode,d)||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable]",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=h&&g.check(e)))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)a[b]&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.hasAttribute("contenteditable")&&(this.form=a(this).closest("form")[0]),d in c||!b.objectLength(a(this).rules())?!1:(c[d]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type;return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=b.hasAttribute("contenteditable")?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);if("function"==typeof f.normalizer){if(i=f.normalizer.call(b,i),"string"!=typeof i)throw new TypeError("The normalizer should return a string value.");delete f.normalizer}for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j instanceof TypeError&&(j.message+=". Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;aWarning: No message defined for "+b.name+""),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),h.html(c)):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass).html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return a.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b,c){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(d,e){b[d]=a.isFunction(e)&&"normalizer"!==d?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e=a(c).attr("type"),f="Step attribute on input type "+e+" is not supported.",g=["text","number","range"],h=new RegExp("\\b"+e+"\\b"),i=e&&!h.test(g.join());if(i)throw new Error(f);return this.optional(c)||b%d===0},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.resetInternals(),f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})}); \ No newline at end of file diff --git a/Web/Web.config b/Web/Web.config index 6ba5e22..87591e4 100644 --- a/Web/Web.config +++ b/Web/Web.config @@ -5,15 +5,15 @@ --> + + + -
- -
- + -->
+
@@ -35,9 +35,9 @@ - - - + + + @@ -62,30 +62,34 @@ + + + + - - + + - - - - - - - - + + + - + + + + + + - \ No newline at end of file + \ No newline at end of file diff --git a/Web/Web.csproj b/Web/Web.csproj index 6cc8730..7d59510 100644 --- a/Web/Web.csproj +++ b/Web/Web.csproj @@ -41,20 +41,20 @@ 4 - - ..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll + + ..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll True - - ..\packages\AutoMapper.4.2.0\lib\net45\AutoMapper.dll + + ..\packages\AutoMapper.4.2.1\lib\net45\AutoMapper.dll True - - ..\packages\Backload.Core.2.1.5.4\lib\net45\Backload.dll + + ..\packages\Backload.Core.2.2.2.0\lib\net45\Backload.dll True - - ..\packages\Backload.Core.2.1.5.4\lib\net45\Backload.Contracts.dll + + ..\packages\Backload.Core.2.2.2.0\lib\net45\Backload.Contracts.dll True @@ -65,12 +65,12 @@ ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll True - - ..\packages\Hangfire.Core.1.5.3\lib\net45\Hangfire.Core.dll + + ..\packages\Hangfire.Core.1.5.6\lib\net45\Hangfire.Core.dll True - - ..\packages\Hangfire.SqlServer.1.5.3\lib\net45\Hangfire.SqlServer.dll + + ..\packages\Hangfire.SqlServer.1.5.6\lib\net45\Hangfire.SqlServer.dll True @@ -78,12 +78,12 @@ True - - ..\packages\Microsoft.Owin.3.0.0\lib\net45\Microsoft.Owin.dll + + ..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll True - - ..\packages\Microsoft.Owin.Host.SystemWeb.3.0.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll + + ..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll True @@ -99,11 +99,11 @@ True - ..\packages\Newtonsoft.Json.8.0.2\lib\net45\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll True - ..\packages\NLog.4.2.3\lib\net45\NLog.dll + ..\packages\NLog.4.3.3\lib\net45\NLog.dll True @@ -453,9 +453,6 @@ - - - @@ -563,373 +560,34 @@ - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - + diff --git a/Web/packages.config b/Web/packages.config index 6a9341f..2e458f3 100644 --- a/Web/packages.config +++ b/Web/packages.config @@ -1,22 +1,23 @@  - - - - - + + + + + + - - - + + + - - + + @@ -26,13 +27,13 @@ - - + + - - - - + + + +