本文搬运自ZingLix大佬,已获得作者得同意转载。
项目地址为:https://github.com/ZingLix/immich-geodata-cn
作用:
为 Immich 提供中文反向地理编码支持,将照片拍摄地点转换为熟悉的中文名称,并支持通过中文地名搜索照片。
对比:
如上图所示,ZingLix大佬已对国内的地点进行了完整的汉化,国外的地点汉化也进行了实验性支持(目前仅尝试了日本)
实现原理:
1.利用高德/LocationIQ API 重新将结果标准化为 国家、省份、城市 三个等级,避免 Immich 原本数据中不常用的称呼
2.定期拉取最新数据并自动更新发布
如何使用:
1.在 Release 中下载 geodata.zip 和 i18n-iso-countries.zip 两个文件并解压。
如果不方便上github下载,我已下载了文件并上传到了123网盘,可按需下载(如果链接被吞了,在评论区找找),进入《2025.2为 Immich 提供中文反向地理编码支持》文件夹即可找到。下载链接:
https://www.123pan.com/s/WXqA-EGL6d.html
文件说明:
1.分为 自动更新发布(如Auto Release 2025-02-21) 和 手动发布(如Release 2025-02-10)。前者数据一般较新推荐使用,但可能遇到数据源变动等原因导致生成出的数据不可用,此时建议切换至后者并提 issue 告诉ZingLix大佬。
BETA Release 中 geodata_full.zip 是数据量更大的版本,会在边界的情况下表现更好,但可能会导致识别位置时较慢以及含有过时数据,建议在遇到边界场景识别错误时使用。
我的immich是在飞牛OS上部署的,其他平台类似,一定要注意映射目录,docker-compose文件如下
如上图,修改你的 docker-compose.yaml文件,volumes 中增加如下两行(或者根据不同部署方式任意方式替换掉这两个文件夹)
volumes:
- /vol1/1000/docker/immich(前面这段改为你实际的目录)/geodata:/build/geodata
- /vol1/1000/docker/immich/i18n-iso-countries/langs(前面这段改为你实际的目录):/usr/src/app/node_modules/i18n-iso-countries/langs
-
运行
docker compose down && docker compose up
-
重启 Immich
启动后,检查一下日志,出现 10000 geodata records imported 类似的日志,这表明 geodata 更新了。如果没有更新,可以尝试修改 geodata/geodata-date.txt,修改成一个新的时间(比如当前时间),如果旧于 Immich 曾经加载过的时间 Immich 就不会更新。
启动immich后,登录你的 Immich 管理后台,在 系统管理—任务—提取元数据 点击 全部,以触发所有照片的元数据刷新,等待任务完成后,所有照片的位置信息就都会显示成中文,后续新增的图片则无需任何额外操作,并且可以用中文进行搜索了
如何更新版本
方式一:重新下载最新的 Release 中的文件,替换掉原有的文件,然后重启 Immich 即可。
方式二:为了方便快速更新,可以通过如下脚本自动更新
# cd 到geodata 目录下进行操作
cd /vol1/1000/docker/immich(前面这段改为你实际的目录)/geodata
# 下载脚本
curl -o update.sh https://raw.githubusercontent.com/ZingLix/immich-geodata-cn/refs/heads/main/geodata/update.sh
# 运行
bash update.sh
-
运行完成后需要重启 Immich 重新加载数据。如果希望自动重启,可以在脚本最后增加类似 docker restart immich_server 的命令进行重启,或者通过类似如下定时任务的方式一起运行重启。
5 5 * * 6 bash /immich_data/geodata/update.sh && docker restart immich_server
Enjoy it!
最后,再次感谢ZingLix大佬的付出!