{"id":22052633,"url":"https://github.com/ftp27/loco_tool","last_synced_at":"2025-05-11T06:19:49.931Z","repository":{"id":165783899,"uuid":"640527935","full_name":"ftp27/loco_tool","owner":"ftp27","description":"LocoTool is a CLI tool for parsing, validating, and converting localization strings.","archived":false,"fork":false,"pushed_at":"2024-03-05T11:27:43.000Z","size":26,"stargazers_count":7,"open_issues_count":0,"forks_count":59,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-31T21:51:25.446Z","etag":null,"topics":["android","cli","command-line-tool","ios","localization","localization-management","localization-tool"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/ftp27.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["ftp27"]}},"created_at":"2023-05-14T11:51:10.000Z","updated_at":"2024-03-11T19:09:38.000Z","dependencies_parsed_at":"2024-02-20T05:24:09.918Z","dependency_job_id":"e4d4c3a5-54de-4f41-b808-fce45d1c555e","html_url":"https://github.com/ftp27/loco_tool","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftp27%2Floco_tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftp27%2Floco_tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftp27%2Floco_tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftp27%2Floco_tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ftp27","download_url":"https://codeload.github.com/ftp27/loco_tool/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253524422,"owners_count":21921946,"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","cli","command-line-tool","ios","localization","localization-management","localization-tool"],"created_at":"2024-11-30T15:13:44.780Z","updated_at":"2025-05-11T06:19:49.851Z","avatar_url":"https://github.com/ftp27.png","language":"Ruby","funding_links":["https://github.com/sponsors/ftp27"],"categories":[],"sub_categories":[],"readme":"# LocoTool\n\n[![Gem Version](https://badge.fury.io/rb/loco_tool.svg)](https://badge.fury.io/rb/loco_tool)\n![License](https://img.shields.io/badge/license-MIT-blue.svg)\n\nLocoTool is a command-line tool for localization tasks, designed to simplify the management and validation of localization strings in iOS and Android projects.\n\n## Features\n\n- Find duplicate keys between localization files.\n- Sync and move missing strings between files.\n- Validate and verify localization files.\n- Transform localization files between different formats.\n- Identify oversized strings in localization files.\n\n### TODO\n\n- Convert strings between different formats.\n\n## Installation\n\nLocoTool can be installed via RubyGems. Make sure you have Ruby installed on your system, then run the following command:\n\n```\n$ gem install loco_tool\n```\n\n## Usage\n\nLocoTool provides various commands to perform localization tasks. Here are some examples:\n\n### Find Duplicate Keys\n\n```\n$ locotool duplicates [FILE_A] [FILE_B]\n```\n\nThis command compares two localization files and identifies duplicate keys between them.\n\n### Sync Localization Files\n\n```\n$ locotool sync [PATH_A] [PATH_B] [BASE_LANG] [TARGET_LANG]\n```\n\nThis command synchronizes localization files between two directories (`PATH_A` and `PATH_B`). It compares the base language (`BASE_LANG`) with the target language (`TARGET_LANG`) and moves missing strings from the base file to the target file.\n\n### Sync iOS Localization Files Automatically\n\n```\n$ locotool sync_ios_auto [PATH_A] [PATH_B] [BASE_LANG]\n```\n\nThis command automatically finds and syncs iOS localization files in the specified directories (`PATH_A` and `PATH_B`). It iterates over the available target languages, excluding the base language (`BASE_LANG`), and performs the synchronization operation.\n\n### Transform Localization Files\n\n```\n$ locotool export [PATH_A] [PATH_B] -s [SORT] -c [CASE]\n```\n\nThis command transforms localization files from `PATH_A` to `PATH_B`. It can sort the keys in the output files (`SORT`) and change the case of the keys (`CASE`). The `SORT` parameter can be set to `asc`, or `desc`. The `CASE` parameter can be set to `lower`, or `upper`. Both parameters are optional.\n\n### Identify Oversized Strings\n\n```\n$ locotool oversize [PATH_A] [TARGET_LANG] [GAP]\n```\n\nThis command identifies oversized strings in the localization files in the specified directory (`PATH_A`). It compares the length of the strings in the target language (`TARGET_LANG`) with the base language and reports the strings that exceed the specified gap (`GAP`).\n\n## Examples\n\nExport Localization file from iOS to Android\n\n```sh\n$ locotool export en.lproj/Localizable.strings en.xml -s asc -c lower\n```\n\n## Contributing\n\nContributions are welcome! If you have any suggestions, bug reports, or feature requests, please open an issue or submit a pull request on the [LocoTool GitHub repository](https://github.com/ftp27/loco_tool).\n\n## License\n\nThis project is licensed under the [MIT License](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fftp27%2Floco_tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fftp27%2Floco_tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fftp27%2Floco_tool/lists"}