Separate language identification into its own service.