{"id":18763738,"url":"https://github.com/inloop/csv2languagefiles","last_synced_at":"2025-12-06T04:30:22.996Z","repository":{"id":77722194,"uuid":"101647668","full_name":"inloop/csv2languagefiles","owner":"inloop","description":"Translates CSV containing language translations to both iOS and Android file formats.","archived":false,"fork":false,"pushed_at":"2017-11-30T17:48:26.000Z","size":12,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-12-29T05:26:23.179Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inloop.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":"2017-08-28T13:47:33.000Z","updated_at":"2017-08-28T18:02:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"b4d966a4-b379-4511-8d26-26465bae4248","html_url":"https://github.com/inloop/csv2languagefiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inloop%2Fcsv2languagefiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inloop%2Fcsv2languagefiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inloop%2Fcsv2languagefiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inloop%2Fcsv2languagefiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inloop","download_url":"https://codeload.github.com/inloop/csv2languagefiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239661866,"owners_count":19676411,"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":[],"created_at":"2024-11-07T18:27:17.656Z","updated_at":"2025-12-06T04:30:22.694Z","avatar_url":"https://github.com/inloop.png","language":"Python","readme":"# csv2languagefiles\n\nTranslates CSV containing language translations to both iOS and Android file formats.\n\n## Features\n\n* Both iOS and Android supported\n* iOS support for .strings files, also for .json files using libraries like [Kekiiwaa/Localize](https://github.com/Kekiiwaa/Localize)\n* Multiple variants of apps supported, for whitelabel apps or just for multiple flavors\n* Multilanguage support\n* Possibility to designate certain keys for certain platforms or both\n* Support for parameters in strings, {string}, {float}, {integer}\n* Possible to include HTML tags in texts, values are correctly handled for platforms\n* All translation files are also containing original (first) language values for better orientation\n* Works just as charm\n\n## Usage\n\nYou have to have python 2.7.x installed. No libraries apart from standard ones are not required.\n\n```\npython csv2languagefiles.py exported.csv\n```\n\nAfter this script finishes, you can find both iOS and Android generated language files in the directory where you ran the script.\n\n## Example\n\nThe structure of CSV is basically self explanatory, and the format (column order, etc.) must be followed for the script to work corretly.\n\n| Key                    | Variant | iOS | Android | en                                                              | sk                                                                     | \n|------------------------|---------|-----|---------|-----------------------------------------------------------------|------------------------------------------------------------------------| \n| user_with_name         |         | yes | yes     | User {string}                                                   | Užívateľ {string}                                                      | \n| user_with_name         | sales   | yes | yes     | Customer {string}                                               | Zákazník {string}                                                      | \n| welcome_message_styled |         |     | yes     | Welcome on our \u0026lt;font style=\"color: red\"\u003ered\u0026lt;/font\u003e website! | Vitajte na našej \u0026lt;font style=\"color: red\"\u003ečervenej\u0026lt;/font\u003e stránke! | \n\n### Example output\n\nIf this CSV is used as input, we get these files generated under `generated` folder:\n\n```\n- android\n - src\n  - main\n   - res\n    - values\n     - strings.xml\n    - values-en\n     - strings.xml\n    - values-sk\n     - strings.xml\n  - sales\n   - res\n    - values\n     - strings.xml\n    - values-en\n     - strings.xml\n    - values-sk\n     - strings.xml\n- ios-strings\n - main\n  - Localizable.en.strings\n  - Localizable.sk.strings\n - sales\n  - Localizable.en.strings\n  - Localizable.sk.strings\n- ios-json\n - main\n  - lang-en.json\n  - lang-sk.json\n - sales\n  - lang-en.json\n  - lang-sk.json\n```\n\nExample of generated `android/src/main/res/values/strings.xml`:\n```\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cresources\u003e\n\n    \u003c!-- User {string} --\u003e\n    \u003cstring name=\"user_with_name\" formatted=\"false\"\u003eUser %s\u003c/string\u003e\n\n    \u003c!-- Welcome on our \u003cfont style=\"color: red\"\u003ered\u003c/font\u003e website! --\u003e\n    \u003cstring name=\"welcome_message_styled\"\u003e\u003c![CDATA[ Welcome on our \u003cfont style=\"color: red\"\u003ered\u003c/font\u003e website!]]\u003e\u003c/string\u003e\n\u003c/resources\u003e\n```\n\nExample of generated `ios-strings/sales/Localizable.en.Strings`:\n```\n/* Customer {string} */\n\"user_with_name\" = \"Customer %@\";\n```\n\nExample of generated `ios-json/sales/lang-en.json`:\n```\n{\n    \"user_with_name\": \"Customer %@\"\n}\n```\n\n# License\n\n```\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finloop%2Fcsv2languagefiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finloop%2Fcsv2languagefiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finloop%2Fcsv2languagefiles/lists"}