OSM的多语言名称使用 name:code=*
tag,但是 code 的使用限制在 ISO 639-1/2,对于中文,就只有 zh
这个编码,无法区分简体中文、正体中文,更无法区分不同地区(大陆、香港、台湾等)的命名区别了(例如“珠穆朗玛峰”,“圣母峰”)。
这造成目前中文地名的标准相当混乱,有些地名使用 name=*
这个tag里面同时放进去简体中文、正体中文和英文,有些地名被某些 mapper 根据自己喜好在简体中文、正体中文之间来回更换。
实际上,对于具体一个地图用户而言,他只关心地名在他惯常使用的语言中是什么。本来技术上完全可以解决这个问题,Android、iOS、web 都有技术规范去根据用户设定的 locale(包括语言和地区)去显示。但由于 OSM 的数据标注没有支持中文语言的细分,大家没有共同遵守的标准去编辑。
有 mapper 提出改进的提案,但似乎后来没有进一步行动了。
统计了一下目前中文的 name tag 语言代码使用情况(排除了拼音):
| key | count | user |
| -------------------- | ------ | ---- |
| name:zh | 259513 | 6116 |
| name:zh-yue | 1145 | 240 |
| name:zh-hant | 1061 | 62 |
| name:zh-min-nan | 815 | 165 |
| name:zh-classical | 522 | 129 |
| name:zh-traditional | 377 | 72 |
| name:zh-simplified | 183 | 55 |
| name:zh-CN | 101 | 17 |
| name:zh-hans | 87 | 26 |
| name:zh-Hant-CN | 75 | 9 |
| name:zh-Hans | 69 | 20 |
| name:zh-Hant | 69 | 21 |
| name:zh-cn | 65 | 8 |
| name:zh_trad | 59 | 8 |
| name:zh_cn | 28 | 8 |
| name:zh-hant-CN | 17 | 1 |
| name:zh-TW | 13 | 12 |
| name:zh-tw | 10 | 6 |
| name:zh-sg | 8 | 4 |
| name:zh-hk | 8 | 4 |
| name:zh-mo | 8 | 3 |
| name:zh_1 | 5 | 3 |
| name:zh_tw | 5 | 3 |
| name:zh_hant | 3 | 3 |
| name:zh2 | 3 | 3 |
| name:zh_TW | 3 | 3 |
| name:zh-pinyin | 2 | 2 |
| name:zh_tradition | 2 | 2 |
| name:zh-Hans-cn | 2 | 2 |
| name:zh-Hant-tw | 2 | 2 |
| name:zh_arab | 2 | 2 |
| name:zh-Hans-CN | 1 | 1 |
| name:zh-Hant-TW | 1 | 1 |
| name:zh-Hant-hk | 1 | 1 |
| name:zh3 | 1 | 1 |
| name:zh_hk | 1 | 1 |
| name:zh:note | 1 | 1 |
| name:zh_jyutping | 1 | 1 |
| name:zh-simpified | 1 | 1 |
| name:zh_hans | 1 | 1 |
| name:zh_2 | 1 | 1 |
| name:zh-min | 1 | 1 |