{"id":24387162,"url":"https://github.com/mntnorv/puttext","last_synced_at":"2026-05-21T04:36:47.275Z","repository":{"id":56889696,"uuid":"87812917","full_name":"mntnorv/puttext","owner":"mntnorv","description":"Extract gettext strings from Ruby source","archived":false,"fork":false,"pushed_at":"2017-06-07T13:38:12.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-31T21:16:47.530Z","etag":null,"topics":["extract","gettext","ruby","slim"],"latest_commit_sha":null,"homepage":null,"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/mntnorv.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}},"created_at":"2017-04-10T13:16:55.000Z","updated_at":"2017-04-21T05:52:58.000Z","dependencies_parsed_at":"2022-08-21T00:50:22.689Z","dependency_job_id":null,"html_url":"https://github.com/mntnorv/puttext","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/mntnorv/puttext","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mntnorv%2Fputtext","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mntnorv%2Fputtext/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mntnorv%2Fputtext/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mntnorv%2Fputtext/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mntnorv","download_url":"https://codeload.github.com/mntnorv/puttext/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mntnorv%2Fputtext/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33288909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T02:57:32.698Z","status":"ssl_error","status_checked_at":"2026-05-21T02:57:31.990Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["extract","gettext","ruby","slim"],"created_at":"2025-01-19T12:22:10.742Z","updated_at":"2026-05-21T04:36:47.257Z","avatar_url":"https://github.com/mntnorv.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Gem Version](https://badge.fury.io/rb/puttext.svg)](http://badge.fury.io/rb/puttext)\n[![Build Status](https://travis-ci.org/mntnorv/puttext.svg)](https://travis-ci.org/mntnorv/puttext)\n[![Code Climate](https://codeclimate.com/github/mntnorv/puttext/badges/gpa.svg)](https://codeclimate.com/github/mntnorv/puttext)\n[![Test Coverage](https://codeclimate.com/github/mntnorv/puttext/badges/coverage.svg)](https://codeclimate.com/github/mntnorv/puttext/coverage)\n\n# puttext\n\nPut translatable gettext strings from your Ruby code to a `.po` or `.pot` file.\n\nFor example, if you have this `translatable.rb` file:\n```ruby\nputs _('translatable string')\n```\n\nYou get this output:\n```po\n#: translatable.rb:1\nmsgid \"translatable string\"\nmsgstr \"\"\n```\n\n## Language support\n\nSupports extracting strings from these types of files:\n- Ruby\n- Slim\n\n## Installation\n\nUsing RubyGems:\n```bash\n$ gem install puttext\n```\n\nOr add it to your `Gemfile` if using Bundler:\n```ruby\ngem 'puttext', require: false\n```\n\nAlso, if you want additional language support beyond plain Ruby, install these gems:\n- [**slim**](https://github.com/slim-template/slim) for Slim support.\n\n\n## Usage\n\nJust run the `puttext` command line tool and point it to your Ruby project:\n```bash\n$ puttext /path/to/your/project\n```\n\n### Options\n\n#### `-o`, `--output`\n\nBy default `puttext` will output the extracted PO file contents to stdout. You can write the output to a file by specifying the `-o`, `--output` option.\n\n```bash\n$ puttext /path/to/your/project -o template.pot\n```\n\n## Contributing\n\nBefore submitting an Issue or Pull Request always check if your issue is already being discussed or if someone has already submitted a pull request with the feature you want to add. Also, before doing bigger changes, it's always good to discuss the changes you're going to make in an Issue.\n\n### Code style\n\nPutText uses RuboCop (https://github.com/bbatsov/rubocop) to check and enforce code style. Before submitting a pull request, make sure that RuboCop does not find any offenses.\n\n#### Running RuboCop\n\n```bash\n$ bundle exec rubocop\n```\n\n### Testing\n\nPutText uses RSpec (http://rspec.info/) for testing. Pull requests with Ruby code changes must include RSpec tests that check the new functionality or changed code. Also, make sure that your changes do not break any existing tests.\n\n#### Running RSpec\n\n```bash\n$ bundle exec rspec\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmntnorv%2Fputtext","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmntnorv%2Fputtext","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmntnorv%2Fputtext/lists"}