{"id":20450048,"url":"https://github.com/ooni/translations","last_synced_at":"2025-04-13T02:11:08.602Z","repository":{"id":40755481,"uuid":"158217432","full_name":"ooni/translations","owner":"ooni","description":"OONI translations","archived":false,"fork":false,"pushed_at":"2025-04-10T12:02:03.000Z","size":19012,"stargazers_count":10,"open_issues_count":6,"forks_count":3,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-10T13:41:58.195Z","etag":null,"topics":[],"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/ooni.png","metadata":{"files":{"readme":"Readme.md","changelog":"news-media-scan/en/description.xlf","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"supported_languages_desktop.sh","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-19T12:17:37.000Z","updated_at":"2025-04-10T12:02:06.000Z","dependencies_parsed_at":"2023-02-09T15:31:22.129Z","dependency_job_id":"68b3ee73-1049-4ca8-83b5-e88ee6013f7b","html_url":"https://github.com/ooni/translations","commit_stats":{"total_commits":244,"total_committers":10,"mean_commits":24.4,"dds":0.5819672131147541,"last_synced_commit":"3e5a7d0bd9ef9b9535b0f5cbc50d52e6df0bff44"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ooni%2Ftranslations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ooni%2Ftranslations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ooni%2Ftranslations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ooni%2Ftranslations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ooni","download_url":"https://codeload.github.com/ooni/translations/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248654090,"owners_count":21140236,"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-15T10:50:04.547Z","updated_at":"2025-04-13T02:11:08.580Z","avatar_url":"https://github.com/ooni.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# OONI Translations\n\n## Language priorities\n\nThe priority languages (sorted alphabetically) are:\n\n* Arabic\n* Chinese\n* French\n* Persian/Farsi\n* Russian\n* Spanish\n* Turkish\n\nMoreover, the following languages are also important to us:\n\n* Ahmaric\n* Bengali\n* Hindi\n* Indonesian\n* Thai\n* Vietnamese\n\n## Translations\n\nIf you would like to improve the translations for OONI tools, please sign up for a Transifex account here: https://www.transifex.com/signup/\n\nThere are multiple OONI projects on Transifex that you can join:\n\n* **[OONI Probe app](https://ooni.org/install/)**: Please [join the OONI Probe project on Transifex](https://app.transifex.com/otf/ooniprobe/) and read the [OONI Probe localization guidelines](https://github.com/ooni/translations/blob/master/Guidelines%20for%20OONI%20Probe.md ) before working on the translation.\n\n* **[OONI Explorer](https://explorer.ooni.org/)**: Please [join the OONI Explorer project on Transifex](https://app.transifex.com/otf/ooni-explorer/) and read the [OONI Explorer localization guidelines](https://github.com/ooni/translations/blob/master/Guidelines%20for%20OONI%20Explorer.md) before working on the translation.\n\n* **[OONI Run](https://run.ooni.io/)**: Please [join the OONI Run project on Transifex](https://app.transifex.com/otf/ooni-run/).\n\n* **[OONI Probe Mobile User Guide](https://ooni.org/support/ooni-probe-mobile)**: Please [join the OONI Probe Mobile User Guide project on Transifex](https://app.transifex.com/otf/ooni-probe-mobile-user-guide/).\n\n* * **[OONI Probe Desktop User Guide](https://ooni.org/support/ooni-probe-desktop)**: Please [join the OONI Probe Desktop User Guide project on Transifex](https://app.transifex.com/otf/ooni-probe-desktop-user-guide/).\n\n**All translations in the projects listed above are automatically synched from Transifex.**\n\nThis repository contains all the translations for OONI tools.\n\nIt requires Python 3 and has been tested on Python 3.6.1.\n\nYou are expected to have installed the [Transifex\nCLI](https://docs.transifex.com/client/installing-the-client) (please don't run\n`pip` or `easy_install` as root to install it!).\n\nYou should also have setup Transifex with your credentials via a\n`~/.transifexrc` file (see: [client-configuration\ndocs](https://docs.transifex.com/client/client-configuration#~/-transifexrc)).\n\n\n## Updating translations\n\nThis is the process by which you pull the latest translations and generate the\nOS specific localization strings.\n\nUsually you will run this as part of the app workflow, but you can also do it\nin here via:\n\n```\n./update-translations.sh\n```\n\n## Uploading new strings\n\nStrings are generated from a [Google Sheet master file](https://docs.google.com/spreadsheets/d/1GPkr_OyNhXJRTXnseyNbo2P4Du-i_W9kJdqjZG4HVkM/edit). To upload new strings you should\nadd the strings to the [Master Sheet](https://docs.google.com/spreadsheets/d/1GPkr_OyNhXJRTXnseyNbo2P4Du-i_W9kJdqjZG4HVkM/edit)  and then run:\n\n```\n./sync-csv-source.sh\n```\n\nThis will generate `probe-mobile/en/strings.json` and push it to transifex for\nyou.\n\n## Updating translations for OONI Probe iOS or Android\n\n1) Clone the relative repository https://github.com/ooni/probe-ios or https://github.com/ooni/probe-android\n2) Set the var PROJDIR inside the relative update_languages_ios.sh or update_languages_android.sh\n3) Run the script\n\n\n## Adding a new language to OONI Probe iOS or Android\n\n1) Add the new language code to the file supported_languages\n2) iOS only: Add the new language in the XCode project tab\n3) Run the update_languages_ios.sh or update_languages_android.sh script\n\n## Generating descriptions for market\n\nTo generate translated descriptions for the markets run:\n\n```\npython scripts/gen-descriptions.py [lang_code]\n```\n\nWhere `lang_code` is the language code for the description you want to\ngenerate.\n\nThis will print to standard output the translated text that you can then copy\nand paste into the market descriptions.\n\nIf a string is not translated it will print the source for the text.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fooni%2Ftranslations","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fooni%2Ftranslations","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fooni%2Ftranslations/lists"}