Module GettextPo

author
Sylvain Le Gall
val empty_po : GettextTypes.po_content

empty_po : value representing an empty PO

val add_po_translation_no_domain : GettextTypes.po_content -> GettextTypes.po_commented_translation -> GettextTypes.po_content

add_po_translation_no_domain po (comment_lst,location_lst,translation) : add a translation to a corpus of already defined translation with no domain defined. If the translation already exist, they are merged concerning location, and follow these rules for the translation itself :

  • singular and singular : if there is an empty string ( "" ) in one of the translation, use the other translation,
  • plural and plural : if there is an empty string list ( "" ; "" ) in one of the translaiton, use the other translation,
  • singular and plural : merge into a plural form. There is checks during the merge that can raise PoInconsistentMerge :
  • for one singular string if the two plural strings differs
  • if there is some elements that differs (considering the special case of the empty string ) in the translation
val add_po_translation_domain : GettextTypes.MapTextdomain.key -> GettextTypes.po_content -> GettextTypes.po_commented_translation -> GettextTypes.po_content

add_po_translation_domain po domain (comment_lst,location_lst,translation): add a translation to the already defined translation with the domain defined. See add_translation_no_domain for details.

val merge_po : GettextTypes.po_content -> GettextTypes.po_content -> GettextTypes.po_content

merge_po po1 po2 : merge two PO. The rule for merging are the same as defined in add_po_translation_no_domain. Can raise PoInconsistentMerge

val merge_pot : GettextTypes.po_content -> GettextTypes.po_content -> GettextTypes.po_content

merge_pot po pot : merge a PO with a POT. Only consider strings that exists in the pot. Always use location as defined in the POT. If a string is not found, use the translation provided in the POT. If a plural is found and a singular should be used, downgrade the plural to singular. If a singular is found and a plural should be used, upgrade singular to plural, using the strings provided in the POT for ending the translation.

val input_po : Stdlib.in_channel -> GettextTypes.po_content
val output_po : Stdlib.out_channel -> GettextTypes.po_content -> unit
val translation_of_po_translation : GettextTypes.po_translation -> GettextTypes.translation