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 ( """"))