Agent Wranglers

LOC-38Recommended

Translate the store listing for every language the app ships

Each language the app ships has a store listing in that language, with name, short description, full description, keywords and screenshots. The listing never claims a language the app does not have.

How to do it

The App Store shows the listing that matches the person's language setting, and the next closest when none does. Google Play does the same for the translations you add in Play Console. Keep the listing text in the repository, one folder per language, and upload it from CI with a tool such as fastlane. Take screenshots in each language from the UI tests. Keep it in step with the app's own languages from Support the system's per-app language setting.

Examples

JavaScript example

import { existsSync, readdirSync } from 'node:fs';
const FIELDS = ['name.txt', 'subtitle.txt', 'description.txt', 'keywords.txt'];
for (const language of SHIPPED_LANGUAGES)
  for (const field of FIELDS)
    if (!existsSync(`metadata/${language}/${field}`)) throw new Error(`${language} is missing ${field}`);
const extra = readdirSync('metadata').filter(folder => !SHIPPED_LANGUAGES.includes(folder));
if (extra.length) throw new Error(`Listings for languages the app lacks: ${extra}`);

Python example

from pathlib import Path

FIELDS = ["name.txt", "subtitle.txt", "description.txt", "keywords.txt"]
for language in SHIPPED_LANGUAGES:
    missing = [field for field in FIELDS if not Path("metadata", language, field).exists()]
    assert not missing, f"{language} is missing {missing}"
extra = {p.name for p in Path("metadata").iterdir()} - set(SHIPPED_LANGUAGES)
assert not extra, f"Listings for languages the app lacks: {extra}"

How to check

A CI test compares the listing folders with the app's shipped languages. Each language has every listing field and at least one screenshot, and no folder exists for a language the app lacks.

Sources

For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/localization/apps-and-command-line-tools/localized-store-listings">Agent Wranglers localization playbook</a>. In code you write, add a comment next to it with the same link.