# Module CamomileLibrary.Type.Locale

    module Locale: sig .. end

Camomile has a locale system similar to Java. A locale is a string with a form as "<LANG>_<COUNTRY>_<MODIFIER>..." where <LANG> is a 2-letter ISO 639 language code, <COUNTRY> is a 2-letter ISO 3166 country code. Some field may not present.

    type t = string

Type of locales.

    val read : string -> string -> (Pervasives.in_channel -> 'a) -> string -> 'a

`read root suffix reader locale` reads locale information using `reader`. Locale data is supposed to reside in `root` directory with the name `locale`.`suffix`. `reader` takes `in_channel` as an argument and read data from in_channel. If data is not found, then `reader` should raise Not_found. If the file is not found or `reader` raises Not_found, then more generic locales are tried. For example, if fr_CA.`suffix` is not found, then `read` tries fr.`suffix`. If fr.`suffix` is also not found, then the file `root`.`suffix` is tried. Still the data is not found, then `Not_found` is raised.

    val contain : string -> string -> bool

`contain loc1 loc2` : If `loc1` is contained in `loc2` then true otherwise false. For example, "fr" is contained in "fr_CA" while "en_CA" does not contain "fr"