{"id":15820549,"url":"https://github.com/baotlake/i18ncsv","last_synced_at":"2026-02-23T04:09:21.790Z","repository":{"id":219136212,"uuid":"743200262","full_name":"baotlake/i18nCSV","owner":"baotlake","description":"i18nCSV is a streamlined tool for effective internationalization, offering seamless integration with Google Docs, Google Translate, and ChatGPT for enhanced translation capabilities. Easily extract and import i18n data using CSV files, simplifying the localization workflow.","archived":false,"fork":false,"pushed_at":"2024-06-10T15:58:20.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-12T07:11:06.115Z","etag":null,"topics":["chatgpt","cli","csv","google-docs","i18n","internationalization","l10n","localization","python","tools","translate"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baotlake.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-01-14T16:25:11.000Z","updated_at":"2024-06-10T15:58:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"d9c27e65-9f37-4a28-8183-aef2e8393c68","html_url":"https://github.com/baotlake/i18nCSV","commit_stats":{"total_commits":5,"total_committers":2,"mean_commits":2.5,"dds":0.4,"last_synced_commit":"b431cecdbbd2cd6cc2dda4eeed1a03afe6470454"},"previous_names":["baotlake/i18ncsv"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baotlake%2Fi18nCSV","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baotlake%2Fi18nCSV/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baotlake%2Fi18nCSV/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baotlake%2Fi18nCSV/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baotlake","download_url":"https://codeload.github.com/baotlake/i18nCSV/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246710008,"owners_count":20821315,"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":["chatgpt","cli","csv","google-docs","i18n","internationalization","l10n","localization","python","tools","translate"],"created_at":"2024-10-05T07:02:07.387Z","updated_at":"2025-10-18T23:49:33.790Z","avatar_url":"https://github.com/baotlake.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003ei18nCSV\u003c/h1\u003e\n  \u003cp\u003eA super easy-to-use cross-platform i18n tool for efficiently managing your i18n files in a table UI. Provides i18n machine translation, ChatGPT translation, and team collaboration solutions.\u003c/p\u003e\n  \u003cp\u003e\u003ca href=\"./README.md\"\u003eEnglish\u003c/a\u003e | \u003ca href=\"./README_ZH.md\"\u003e中文\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n## i18nCSV + CSV:\n\n-   Table UI interface\n-   Single text file, supports Git version control\n\n## i18nCSV + [Google Sheets](https://www.google.com/sheets/about/):\n\n-   Supports [Google Translate translation](https://support.google.com/docs/answer/3093331)\n-   Supports ChatGPT GPT-3.5, GPT-4 translation (requires installation of [Google Workspace App](https://workspace.google.com/marketplace/search/gpt))\n-   Supports manual translation, team collaboration translation\n\n## Why choose i18nCSV\n\n| Manual Management                                                         | i18nCSV                                                                             |\n| ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |\n| ❌ Edit JSON code without UI                                              | ✅ Supports table UI                                                                |\n| ❌ Manually manage JSON files for dozens of languages                     | ✅ Manage a single table document (CSV or Google Sheets)                            |\n| ❌ Adding/deleting messages requires editing JSON files for each language | ✅ Adding or deleting messages only requires adding or deleting a row in the table  |\n| ❌ No batch operations, no automatic translation                          | ✅ Supports selecting rows or columns, supports automatic translation with formulas |\n| ❌ No real-time collaboration                                             | ✅ With Google Sheets, supports real-time team collaboration                        |\n\n## Usage\n\n```txt\nUsage: i18ncsv.py [OPTIONS] I18N_DIR CSV_PATH\n\nOptions:\n  -e, --extract          extract csv from i18n directory\n  -n, --msg-name TEXT    i18n message filename\n  -p, --prioritize TEXT  Languages to prioritize at the beginning of CSV\n                         columns, e.g., 'en,zh'.\n  -o, --overwrite        overwrites existing i18n messages, default is False\n  -w, --watch FLOAT      Enable watch mode to automatically update i18n when\n                         the CSV file changes.\n  --sheet-name TEXT      The name of the sheet\n  --range TEXT           Any valid range specifier, e.g. A1:C99 or B2:F\n  --help                 Show this message and exit.\n```\n\n### Export CSV\n\nExport CSV from existing i18n messages.\n\n```shell\npython ./i18ncsv.py -e ./i18n i18n.csv\n```\n\n### Update i18n\n\n```shell\n# Update i18n from a local csv file\npython ./i18ncsv.py ./i18n ./i18n.csv\n\n# Watch mode\npython ./i18ncsv.py ./i18n ./i18n.csv -w\n\n# Overwrite existing i18n file content\npython ./i18ncsv.py ./i18n ./i18n.csv -w -o\n\n```\n\n```shell\n# Update i18n from a Google Sheets document\n# Make sure to set Google Sheets to be viewable by anyone with the link\npython ./i18ncsv.py ./i18n https://docs.google.com/spreadsheets/d/xxxxxxxxxxx/ -w -o\n```\n\nWhen updating i18n, you can automatically create corresponding files by specifying the directory structure through `--msg-name`, where `\u003ccode\u003e` represents the code for the respective language.\n\n```shell\npython ./i18ncsv.py ./i18n ./i18n.csv --msg-name '\u003ccode\u003e.json'\n\n├── en.json\n├── zh.json\n├── ja.json\n```\n\n```shell\npython ./i18ncsv.py ./i18n ./i18n.csv --msg-name '\u003ccode\u003e/messages.json'\n\n├── en\n│   └── messages.json\n├── zh\n│   └── messages.json\n├── ja\n│   └── messages.json\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaotlake%2Fi18ncsv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaotlake%2Fi18ncsv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaotlake%2Fi18ncsv/lists"}