是否可以解析editor
中的所有textfields
属性以使用{name_en}
切换语言?
即使我们从{name_fr}
添加/删除图层,目标也是编写一个有效的代码。
修改
例如,在Mapbox Studio中,我们可以使用属性编辑器快速将所有textfield
的值从find ./components -iname \"*.html\" -exec rsync -R '{}' ./build/ \\;
更改为find ./components -iname \"*.html\" -exec rsync -R ./build/;
。
example显示了如何为一个图层执行此操作。
但是如何解析所有图层以查找所有find ./components -iname \"*.html\" -exec rsync -R '{}' ./build/;
以全局更改语言?
答案 0 :(得分:0)
好的,如果我理解正确,你想更新每一层的每个文本字段,以便在用户更改语言时引用一组新的属性({foo_fr} vs {foo_en}或其他)。
没有办法自动做到这一点。但你可以:
第2步中的列表很短,可能只是['text-field']
。所以它基本上是:
var newLanguageCode = 'ru';
map.getStyle().layers.forEach(layer => {
if (layer.type === 'symbol' && layer.layout && layer.layout['text-field'] !== undefined) {
map
.setLayoutProperty(layer.id, 'text-field', layer.layout['text-field']
.replace(/\{([^_]+)_..\}/, '{$1_' + newLanguageCode + '}');
}
})