Ruby
Whether you are developing an app or just using Ruby to script some tasks, transifex-interface-ruby is a library that can help when it comes to send content to Transifex. This is a neat piece of code that wrappers Transifex's API and offers an easy interphase to create projects, sent and pull files directly from your ruby code. Below you can see a list of the main functionalities it has.
Installation
Add this line to your application's Gemfile:
gem 'transifex-interface-ruby'
And then execute:
$ bundle
Or install it yourself as:
$ gem install transifex-interface-ruby
Transifex.configure do |c|
c.client_login = 'your_client_login'
c.client_secret = 'your_secret'
end
Then restart the server.
If you don't do this you will end up with the following error:
#<Transifex::TransifexError: Authorization Required>
Formats
It represents all the formats available on Transifex:
Transifex::Formats.fetch
Languages
It represents all the languages available on Transifex:
Fetch
You can fetch all the languages:
Transifex::Languages.fetch
Or specify a language:
Transifex::Languages.fetch('en')
Projects (to fetch all projects and create a new one)
Fetch
To fetch all the projects owned by the account specified in the initializer:
Transifex::Projects.fetch
Create
To create a new project, you can proceed as following:
For a private project:
private_project_params = {:slug => "private_project", :name => "Private Project", :description => "description", :source_language_code => "en", :private => true}
Transifex::Projects.create(private_project_params)
For a public project:
public_project_params = {:slug => "public_project", :name => "Public Project", :description => "description", :source_language_code => "en", :repository_url => "http://example.com"}
Transifex::Projects.create(public_project_params)
​```
The complete list of the allowed parameters is located in the Transifex documentation.
Project (symbolize an existing project)
Instantiation
transifex_project = Transifex::Project.new('project_slug')
or
transifex_project = Transifex::Projects.create(params)
Fetch
You can fetch the project informations from Transifex:
transifex_project_informations = transifex_project.fetch
with more details:
transifex_project_informations = transifex_project.fetch_with_details
Update
You can update the project: (see documentation for available fields
transifex_project.update({:description => "new description"})
Destroy
You can destroy a project:
transifex_project.delete
project_languages = transifex_project.languages
Fetch
You can retrieve informations about all the languages of a project:
project_languages.fetch
Create
You can create a new language for a project:
params = {:language_code => "el", :coordinators => ['username']}
project_languages.create(params)
project_language = transifex_project.language('en')
Fetch
You can retrieve informations for a project's specified language:
project_language.fetch
with details:
project_language.fetch_with_details
Update
You can update the information of a project's specified language:
params = {:coordinators => ['username1', 'username2'], :translators => ['username'], :reviewers => ['username']}
project_language.update(params)
​```
Delete
You can delete a project's specified language:
project_language.delete
Project language management
You have access to the different teams of a language: coordinators, reviewers and translators.
Instantiation:
project_language_coordinators_team = project_language.coordinators
project_language_reviewers_team = project_language.reviewers
project_language_translators_team = project_language.translators
Fetch
project_language_xxx_team.fetch
Update
project_language_xxx_team.update(['username1', 'username2'])
Resources ( to fetch all resources of a project and create a new one)
First, instantiate a project (see project/instantiation)
Fetch
You can fetch all the resources of projects:
transifex_project.resources.fetch
Create
You can create a new resource for the specified project:
Without a file (you have to send the content as a string):
params = {:slug => "project_slug", :name => "Project created with content as a string", :i18n_type => "TXT", :content => "test"}
transifex_project.resources.create(params)
With a file: (YAML currently supported)
params = {:slug => "project_slug", :name => "Project created with a file", :i18n_type => "YAML", :content => 'path/to/your/file.yml'}
options = {:trad_from_file => true}
transifex_project.resources.create(params, options)
Resource (Symbolize a single resource of a project)
Instantiation
You can instantiate a resource as follow:
project_resource = transifex_project.resource("resource_slug")
Fetch
You can retrieve informations of the specified resource:
project_resource.fetch
with more details:
project_resource.fetch_with_details
Update
You can update a resource: (see documentation for allowed fields)
project_resource.update({name: "new_name", categories: ["cat1", "cat2"]})
Delete
You can delete the specified resource:
project_resource.delete
Resource Content ( Source language content)
You can manage the resource's source language
Fetch
You can retrieve the source language content:
As a hash: (content is encoded as a string)