Leaflet Routing Machine语言无法切换为法语问题求助
解决Leaflet Routing Machine法语语言设置无效的问题
我之前也碰到过类似的问题,你只设置Formatter的language是不够的,得从语言包加载和路由服务语言配置两个方面入手,具体方案如下:
1. 必须加载LRM的法语语言包
Leaflet Routing Machine的界面文本(比如按钮、提示信息)是通过单独的语言包实现本地化的,默认只包含英文。你需要在LRM主脚本之后引入法语语言包:
如果用CDN加载,添加这行代码:
<script src="https://unpkg.com/leaflet-routing-machine@latest/dist/lrm-fr.js"></script>
如果是npm安装的项目,可以导入语言模块:
import 'leaflet-routing-machine/dist/lrm-fr';
2. 配置路由服务返回法语文本
默认的OSRM路由服务会返回英文的路线提示,你需要在服务初始化时明确指定语言参数,让服务端返回法语内容:
修改你的代码,添加service配置项:
L.Routing.control({ waypoints: [ L.latLng(48.8534, 2.3488), L.latLng(44.837789, -0.57918) ], routeWhileDragging: true, show: true, formatter: new L.Routing.Formatter({ units: 'metric', language: 'fr' }), autoRoute: true, // 配置OSRM服务使用法语 service: new L.Routing.OSRMv1({ language: 'fr' }) }).addTo(this.mapInstance);
为什么之前的代码无效?
你只设置了Formatter的语言,它负责格式化距离、时间等数值,但界面元素的文本需要语言包来替换,路线的指令文本则由路由服务端决定,这两个环节都配置好才能完全显示法语。
内容的提问来源于stack exchange,提问作者Soukaina EL HAYOUNI
相关产品推荐
相关产品推荐

