In this paper we design, implement and evaluate a practical flow-based routing architecture for WMNs, called TALB, which exploits traffic measurements to balance traffic load over available mesh paths and gateways. To achieve throughput enhancements while mitigating inter-flow interference, TALB implements a Constrained Maximal Bottleneck Path computation algorithm to maximize the bottleneck capacity of the paths used to reach the Internet, while preserving a given degree of traffic locality. The distinctive aspect of our proposed scheme is that it relies on a traffic-aware definition of residual link capacities to properly take into account the heterogeneity of Internet applications (e.g., inelastic vs. elastic traffic) and their service requirements (e.g., fixed vs. adaptive demands). Then, each mesh node monitors the main features of long-lived traffic flows, and reports such information to a network manager, which decides upon the sub-optimal paths to allocate to each new session. Tests performed in a 10-node wireless mesh testbed show that TALB provides remarkably throughput gains over nearest gateway strategies in case of mixed TCP and UDP traffic scenarios, or low to moderate load conditions.