let input_mo_translation failsafe chn mo_header number =
  let untranslated = 
    input_mo_untranslated failsafe chn mo_header number
  in
  let translated = 
    input_mo_translated failsafe chn mo_header number
  in
    match untranslated with
      | [id] -> 
          Singular (id, String.concat "\000" translated)
      | id :: id_plural :: [] -> 
          Plural (id, id_plural, translated)
      | id :: id_plural :: tl ->
          fail_or_continue failsafe 
            (MoJunk (id, tl)) 
            (Plural (id, id_plural, translated))
      | [] ->
          fail_or_continue failsafe
            MoEmptyEntry
            (Singular (""""))