{"id":15748203,"url":"https://github.com/prongbang/localizegen","last_synced_at":"2026-04-08T14:02:46.045Z","repository":{"id":47203422,"uuid":"402474079","full_name":"prongbang/localizegen","owner":"prongbang","description":"Generate Localization tools for Mobile Application an Android, iOS, Flutter","archived":false,"fork":false,"pushed_at":"2023-08-13T04:56:28.000Z","size":48790,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-07T20:18:48.881Z","etag":null,"topics":["android-localization","ios-localization","localization","localization-tool","mobile-localization","mobile-localization-tools","sheet-localization"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prongbang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-02T15:36:06.000Z","updated_at":"2023-07-27T04:14:18.000Z","dependencies_parsed_at":"2024-06-21T02:09:38.466Z","dependency_job_id":"5efdc538-1c2f-45a9-8328-b2df6b0a1426","html_url":"https://github.com/prongbang/localizegen","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prongbang%2Flocalizegen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prongbang%2Flocalizegen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prongbang%2Flocalizegen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prongbang%2Flocalizegen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prongbang","download_url":"https://codeload.github.com/prongbang/localizegen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243414526,"owners_count":20287137,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-localization","ios-localization","localization","localization-tool","mobile-localization","mobile-localization-tools","sheet-localization"],"created_at":"2024-10-04T05:40:52.901Z","updated_at":"2026-04-08T14:02:46.040Z","avatar_url":"https://github.com/prongbang.png","language":"Go","readme":"# localizegen 🌍\n\n\u003e Generate localization files for mobile applications (Android, iOS, Flutter) from Google Sheets.\n\n[![Homebrew](https://img.shields.io/badge/Homebrew-available-green.svg)](https://brew.sh)\n[![Platform](https://img.shields.io/badge/platform-Android%20%7C%20iOS%20%7C%20Flutter-blue.svg)](https://github.com/prongbang/localizegen)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Go Version](https://img.shields.io/github/go-mod/go-version/prongbang/localizegen.svg)](https://golang.org)\n\n```\n   __              ___                     \n  / /__  _______ _/ (_)__ ___ ___ ____ ___ \n / / _ \\/ __/ _ `/ / /_ // -_) _ `/ -_) _ \\\n/_/\\___/\\__/\\_,_/_/_//__/\\__/\\_, /\\__/_//_/\n                            /___/          \n--\u003e START\n# Platform: ios\n# Language: en\n# Generate: localization\n\u003e Create ./App/Locallization/Translate.swift -\u003e Success\n\u003e Create ./App/Locallization/en.lproj/Localizable.strings -\u003e Success\n\u003c-- DONE\n```\n\n## ✨ Features\n\n- 🚀 **Multi-Platform Support** - Generate localization files for Android, iOS, and Flutter\n- 📊 **Google Sheets Integration** - Manage translations in a familiar spreadsheet interface\n- 🌐 **Multiple Languages** - Support for unlimited languages and locales\n- 🔄 **Automatic Generation** - Generate all language files with a single command\n- 🛠️ **Customizable Output** - Configure target paths and filenames\n- ⚡ **Fast and Efficient** - Quick generation with minimal configuration\n\n## 📦 Installation\n\n### Via Homebrew (Recommended)\n\n```shell\nbrew update\nbrew tap prongbang/homebrew-formulae\nbrew install localizegen\n```\n\n### Via Go\n\n```shell\ngo install github.com/prongbang/localizegen\n```\n\n### Binary Downloads\n\nDownload the latest binary for your platform:\n\n- 🍎 [macOS](https://github.com/prongbang/localizegen/blob/master/localizegen?raw=true)\n- 🐧 [Linux](https://github.com/prongbang/localizegen/blob/master/binary/linux/localizegen?raw=true)\n- 🪟 [Windows](https://github.com/prongbang/localizegen/blob/master/binary/windows/localizegen.exe?raw=true)\n\n## 🚀 Quick Start\n\n### 1. Setup Google Sheet\n\nCreate a Google Sheet with your translations:\n\n![Localize Sheet Example](/docs/sheet-localize.png)\n\nStructure your sheet with:\n- Column A: Keys (identifiers)\n- Column B+: Translations for each language\n\n### 2. Extract Sheet IDs\n\nFrom your Google Sheet URL, extract the `DocumentId` and `SheetId`:\n\n```\nhttps://docs.google.com/spreadsheets/d/\u003cDocumentId\u003e/edit#gid=\u003cSheetId\u003e\n```\n\nExample:\n```\nhttps://docs.google.com/spreadsheets/d/1r91ECV-As0XtuqGKXU7dXnoY4og9XPBoCqwRcdio6EU/edit#gid=0\n```\n- `DocumentId`: `1r91ECV-As0XtuqGKXU7dXnoY4og9XPBoCqwRcdio6EU`\n- `SheetId`: `0`\n\n### 3. Generate Localization Files\n\nChoose your platform and run the appropriate command:\n\n#### 🤖 Android\n\nGenerate all languages:\n```shell\nlocalizegen -platform android \\\n            -target ./app/src/main/res \\\n            -document YOUR_DOCUMENT_ID \\\n            -sheet YOUR_SHEET_ID\n```\n\nGenerate specific language:\n```shell\nlocalizegen -platform android \\\n            -target ./app/src/main/res \\\n            -locale en \\\n            -document YOUR_DOCUMENT_ID \\\n            -sheet YOUR_SHEET_ID\n```\n\n#### 🍎 iOS\n\nGenerate all languages:\n```shell\nlocalizegen -platform ios \\\n            -target ./ProjectName/Localization \\\n            -document YOUR_DOCUMENT_ID \\\n            -sheet YOUR_SHEET_ID\n```\n\nGenerate specific language:\n```shell\nlocalizegen -platform ios \\\n            -target ./ProjectName/Localization \\\n            -locale en \\\n            -document YOUR_DOCUMENT_ID \\\n            -sheet YOUR_SHEET_ID\n```\n\n#### 🦋 Flutter\n\nGenerate all languages:\n```shell\nlocalizegen -platform flutter \\\n            -target ./lib/l10n \\\n            -document YOUR_DOCUMENT_ID \\\n            -sheet YOUR_SHEET_ID\n```\n\n## ⚙️ Command Options\n\n| Flag | Description | Required |\n|------|-------------|----------|\n| `-platform` | Target platform (`android`, `ios`, `flutter`) | ✅ |\n| `-document` | Google Sheet document ID | ✅ |\n| `-sheet` | Google Sheet tab ID | ✅ |\n| `-target` | Output directory path | ❌ |\n| `-locale` | Specific language code (e.g., `en`, `th`) | ❌ |\n| `-filename` | Custom output filename | ❌ |\n\n## 📁 Output Structure\n\n### Android\n```\nandroid/\n ├── values/\n │   └── strings.xml\n ├── values-de/\n │   └── strings.xml\n ├── values-es/\n │   └── strings.xml\n └── ...\n```\n\n### iOS\n```\nios/\n ├── Localizables.swift\n ├── de.lproj/\n │   └── Localizable.strings\n ├── en.lproj/\n │   └── Localizable.strings\n └── ...\n```\n\n### Flutter\n```\nflutter/\n ├── keys_localizations.dart\n └── sources_localizations.dart\n```\n\n## 💡 Examples\n\n### Complete Android Project Setup\n```shell\n# Navigate to your Android project\ncd MyAndroidApp\n\n# Generate all localizations\nlocalizegen -platform android \\\n            -target ./app/src/main/res \\\n            -document 1r91ECV-As0XtuqGKXU7dXnoY4og9XPBoCqwRcdio6EU \\\n            -sheet 0\n```\n\n### iOS with Custom Path\n```shell\n# Generate iOS localizations with custom path\nlocalizegen -platform ios \\\n            -target ./MyApp/Resources/Localizations \\\n            -document YOUR_DOCUMENT_ID \\\n            -sheet YOUR_SHEET_ID\n```\n\n### Flutter Single Language\n```shell\n# Generate only English for Flutter\nlocalizegen -platform flutter \\\n            -target ./lib/l10n \\\n            -locale en \\\n            -document YOUR_DOCUMENT_ID \\\n            -sheet YOUR_SHEET_ID\n```\n\n## 🔧 Troubleshooting\n\n### Common Issues\n\n1. **Permission Denied**: Make sure your Google Sheet is publicly accessible\n2. **Invalid Sheet ID**: Double-check the extracted DocumentId and SheetId\n3. **Missing Dependencies**: Ensure Go is properly installed for source installation\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 💖 Support\n\nIf you find this tool helpful, please consider buying me a coffee:\n\n[![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/prongbang)\n\n---\n","funding_links":["https://www.buymeacoffee.com/prongbang"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprongbang%2Flocalizegen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprongbang%2Flocalizegen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprongbang%2Flocalizegen/lists"}