Overview
The multilingual system provides:- Custom display names for city and country in any language
- Automatic font downloading from Google Fonts catalog
- Local font caching to avoid repeated downloads
- Script detection for proper typography (Latin vs. non-Latin)
- Fallback handling for missing fonts
Basic Usage
Display Names
Use--display-city and --display-country to override the displayed text:
The
-c and -C flags are still required for geocoding (finding the city location). The display flags only change what appears on the poster.Custom Fonts
Specify any font from Google Fonts using--font-family:
- Downloaded from Google Fonts API
- Cached in
fonts/cache/ - Loaded for text rendering
Language Examples
- Japanese
- Korean
- Arabic
- Chinese
- Thai
- Khmer
- Greek
- Hebrew
- Russian
- Noto Sans JP (modern, clean)
- Noto Serif JP (traditional, elegant)
- M PLUS Rounded 1c (rounded, friendly)
- Zen Kaku Gothic New (contemporary)
Typography Behavior
Script Detection
The tool automatically detects whether text is Latin or non-Latin: Latin Scripts (English, French, Spanish, etc.):- Letter spacing applied for elegant aesthetics
- Example: “P A R I S” (spaces between letters)
- Natural spacing preserved
- Example: “東京” (no artificial gaps)
Text Positioning
All text is positioned using normalized coordinates:Font Management
Automatic Caching
Fonts are cached infonts/cache/ after first download:
Manual Font Installation
You can also manually place fonts infonts/cache/:
- Download
.ttffile from Google Fonts - Place in
fonts/cache/directory - Use the font family name with
--font-family
Finding Google Fonts
Browse available fonts at fonts.google.com:- Filter by language/script
- Copy the font family name
- Use exact name with
--font-family
Complete Examples
Japanese with Custom Theme
Arabic with Multiple Flags
Korean with All Themes
Chinese with Custom Coordinates
Troubleshooting
Font not found on Google Fonts
Font not found on Google Fonts
Ensure the font name matches exactly as shown on fonts.google.com. Font names are case-sensitive.
Characters not displaying correctly
Characters not displaying correctly
Make sure the font you selected supports the script you’re using. Check the font’s supported languages on Google Fonts.For example:
- Use “Noto Sans JP” for Japanese (not “Roboto”)
- Use “Cairo” for Arabic (not “Open Sans”)
- Use “Noto Sans KR” for Korean
Text appears too spaced out
Text appears too spaced out
This is normal for Latin scripts. The tool applies letter spacing for aesthetics (“P A R I S”).For non-Latin scripts, spacing is not applied. If you see unwanted spacing in Japanese/Arabic/etc., the tool may be incorrectly detecting the script. File a bug report.
Font download fails
Font download fails
If font downloads fail:
- Check your internet connection
- Verify the font exists on Google Fonts
- Try downloading manually and placing in
fonts/cache/ - Check the font file name matches the pattern:
Font_Name-Regular.ttf
Using system fonts instead of Google Fonts
Using system fonts instead of Google Fonts
The tool is designed for Google Fonts integration. To use system fonts:
- Copy the
.ttffile tofonts/cache/ - Use the font family name with
--font-family
.ttf format).Font Recommendations by Script
| Script | Language Examples | Recommended Fonts |
|---|---|---|
| Japanese | 日本語 | Noto Sans JP, Noto Serif JP, M PLUS Rounded 1c |
| Korean | 한국어 | Noto Sans KR, Noto Serif KR, Black Han Sans |
| Chinese (Simp.) | 简体中文 | Noto Sans SC, Noto Serif SC, ZCOOL XiaoWei |
| Chinese (Trad.) | 繁體中文 | Noto Sans TC, Noto Serif TC |
| Arabic | العربية | Cairo, Amiri, Tajawal, Almarai |
| Thai | ไทย | Noto Sans Thai, Kanit, Prompt |
| Hebrew | עברית | Noto Sans Hebrew, Heebo |
| Greek | Ελληνικά | Noto Sans, Roboto |
| Cyrillic | Кириллица | Noto Sans, Roboto, Montserrat |
| Devanagari | देवनागरी | Noto Sans Devanagari, Poppins |
| Bengali | বাংলা | Noto Sans Bengali, Hind Siliguri |
| Tamil | தமிழ் | Noto Sans Tamil, Pavanam |
Next Steps
Theme Gallery
Explore all 17 built-in themes
Advanced Examples
See complex multilingual examples with custom coordinates