资讯动态

让用户看到本地语言的宝可梦:PokeAPI 多语言数据怎么用

发布时间:2026/10/16 6:30:19 来源:尧图企业网站定制
让用户看到本地语言的宝可梦PokeAPI 多语言数据怎么用【免费下载链接】pokeapiThe Pokémon API项目地址: https://gitcode.com/GitHub_Trending/po/pokeapiPokeAPIpokeapi.co 背后的开源项目是一套 Pokémon RESTful API 服务端除统计、特性、招式等结构化数据外还内置了 14 种语言的名称与描述数据。本文讲清楚这些多语言数据存在哪里、接口和 GraphQL 各怎么用以及仓库里新增一种语言的实际流程。支持的 14 种语言从哪里查语言清单维护在 data/v2/csv/languages.csv共 14 行数据列结构为id,iso639,iso3166,identifier,official,order。几个关键点identifier说明ja-hrkt/ja-roma/ja日语拆成三种假名、罗马音、平假名/片假名单独一条id 1、2、11zh-hant/zh-hans繁体中文id 4与简体中文id 12分开en英语id 9es/es-419欧洲西班牙语id 7与拉美西班牙语id 14分开其余ko、fr、de、it、cs、pt-br每种语言还有用其他语言称它自己的条目存在 data/v2/csv/language_names.csv约 120 行。例如 id 为 1 的日语条目里同时给出了日文、韩文、法文、德文的写法。名称类数据一张表一个实体所有名字都是独立 CSV按实体id local_language_id定位语言 id 与上面languages.csv的 id 对应宝可梦名data/v2/csv/pokemon_species_names.csv约 1.2 万行还带分类genus列如 id 1 的妙蛙种子在ja-hrkt下是「フシギダネ」、繁体下是「妙蛙種子」特性名data/v2/csv/ability_names.csv约 3500 行招式名data/v2/csv/move_names.csv约 1 万行道具名data/v2/csv/item_names.csv约 2.3 万行是名称表里最大的一张描述类文本则按版本 × 语言两个维度存放。以 data/v2/csv/pokemon_species_flavor_text.csv 为例列是species_id,version_id,language_id,flavor_text——同一只宝可梦在不同游戏版本、不同语言下各有一条描述因此取描述时除语言外通常还要指定版本如 red/blue、sword/shield。REST 接口里如何取语言数据CSV 只是源头运行时数据由 data/v2/build.py 灌入数据库。该脚本头部注释写明了流程进入uv run manage.py shell后执行from data.v2.build import build_all; build_all()它会遍历各表、清空后按data/v2/csv逐行重写。对外接口层面语言本身就是一个可查询资源pokemon_v2/urls.py 中注册了language路由pokemon_v2/api.py 里对应的LanguageResource提供语言列表与详情。名称、描述等实体species、ability、item 等的序列化器也都内嵌language字段见 pokemon_v2/serializers.py客户端拿到 JSON 后按language的id或name筛出目标语言即可未翻译的条目则回退到英语id 9。GraphQL 场景按德语名模糊搜宝可梦REST 之外的另一条路径是 GraphQL。graphql/v1beta2/examples/searchForPokemonInGerman.gql 演示了一个实用技巧跨表条件匹配——先按language.name de过滤出德语名称再对name做_regex: Ento.*模糊匹配即可按德语拼写搜出 Psyduck 和 Golduck。同目录还有 Go 与 Node 的完整客户端示例graphql/v1beta2/examples/go/pokemon.go说明查询可以直接放进生产代码。给仓库新增一种语言怎么做拉美西班牙语es-419id 14的引入过程留有完整工具可作模板写一份 JSON 配置如 Resources/scripts/data/new_language/es_419.json指定source_language_id: 7从欧洲西语复制译文作为初稿和目标语言行运行apply_new_language.py --config es_419.json做 dry run确认无误后加--write真正写入各 CSV用validate_new_language.py --config es_419.json校验--check-copied-values可强制核对复制行的值步骤说明见 Resources/scripts/data/new_language/README.md。核心思路是新语言先整体复制一个现有语言的行再逐条修正避免漏项。常见问题某个语言缺某条译文怎么办名称表里不是所有实体×语言组合都有行前端应准备回退链目标语言 → 英语 id 9。描述文本为什么对不上flavor text 绑定具体version_id换版本描述就可能不同取数时把版本一并带上。日语为什么有三条ja-hrkt、ja-roma、ja面向不同显示需求按需选择不要混用。数据源更新时重新跑一遍 data/v2/build.py 的build_all()即可让 CSV 变更落到数据库。【免费下载链接】pokeapiThe Pokémon API项目地址: https://gitcode.com/GitHub_Trending/po/pokeapi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑