Crowdin::API
A Ruby interface to the Crowdin API.
For more about the Crowdin API see https://crowdin.com/page/api.
WARNING: This is a development version: It contains the latest changes, but may also have severe known issues, including crashes and data loss situations. In fact, it may not work at all.
Installation
Add this line to your application's Gemfile:
gem 'crowdin-api'
And then execute:
$ bundle
Or install it yourself as:
$ gem install crowdin-api
Usage
Start by creating a connection to Crowdin with your credentials:
require 'crowdin-api'
require 'logger'
crowdin = Crowdin::API.new(api_key: API_KEY, project_id: PROJECT_ID, account_key: ACCOUNT_KEY)
crowdin.log = Logger.new $stderr
Now you can make requests to the api.
Add File
Add new file to Crowdin project.
Documentation: https://crowdin.com/page/api/add-file.
First parameter is array of files that should be added to Crowdin project. Every file is hash:
:dest
- file name with path in Crowdin project (required):source
- uploaded file (required):title
- title for uploaded file (optional):export_pattern
- string that defines name of resulted file (optional)
crowdin.add_file(
files = [
{ :dest => '/directory/array.xml', :source => 'array.xml', :export_pattern => '/values-%two_letters_code%/%original_file_name%' },
{ :dest => 'strings.xml', :source => 'strings.xml', :title => 'Texts in Application' }
], :type => 'android')
Update File
Upload fresh version of your localization file.
Documentation https://crowdin.com/page/api/update-file
First parameter is array of files that should be updated in Crowdin project. Every file is hash:
:dest
- file name with path in Crowdin project (required):source
- uploaded file (required):title
- title for uploaded file (optional):export_pattern
- string that defines name of resulted file (optional)
crowdin.update_file(
files = [
{ :dest => '/directory/array.xml', :source => 'array.xml', :export_pattern => '/values-%two_letters_code%/%original_file_name%'},
{ :dest => 'strings.xml', :source => 'strings.xml' }
])
Delete File
Remove file from Crowdin project.
Documentation https://crowdin.com/page/api/delete-file
crowdin.delete_file('strings.xml')
Create Directory
Create a new directory in Crowdin project.
Documentation: https://crowdin.com/page/api/add-directory
crowdin.add_directory('dirname')
Delete Directory
Remove directory with nested files from Crowdin project.
Documentation: https://crowdin.com/page/api/delete-directory
crowdin.delete_directory('dirname')
Upload Translations
Upload translations made in a third party software or previously made translations.
Documentation: https://crowdin.com/page/api/upload-translation
First parameter is array of translated files that should be added to Crowdin project. Every file is hash:
:dest
- file names in Crowdin (required):source
- uploaded translation (required)
Second parameter is target language. With a single call it's possible to upload translations for several files but only into one of the languages. Check complete list of Crowdin language codes that can be used.
Optional params:
:import_duplicates
- defines whether to add translation if there is the same translation previously added (default: false):import_eq_suggestions
- defines whether to add translation if it is equal to source string at Crowdin (default: false):auto_approve_imported
- mark uploaded translations as approved (default: false)
crowdin.upload_translation(
files = [
{ :dest => 'strings.xml', :source => 'strings_uk.xml' },
{ :dest => 'array.xml', :source => 'array_uk.xml' }
],
language = 'uk',
params = {:import_duplicates => true}
)
Download Translations
Download last exported translation package (one target language or all languages as one zip file).
Documentation: https://crowdin.com/page/api/download
First parameter is the language of translation you need or download all
of them at once.
crowdin.download_translation('ru', :output => '/path/to/download/ru_RU.zip')
Translation Status
Track overall translation and proofreading progress of each target language.
Documentation: https://crowdin.com/page/api/status
crowdin.translations_status
Project Info
Shows project details and meta information (last translations date, currently uploaded files, target languages etc..).
Documentation: https://crowdin.com/page/api/info
crowdin.project_info
Export Translations
Build ZIP archive with the latest translations.
Documentation: https://crowdin.com/page/api/export
crowdin.export_translations
Account Projects
Documentation: https://crowdin.com/page/api/get-projects
Create Project
Documentation: https://crowdin.com/page/api/create-project
Edit Project
Documentation: https://crowdin.com/page/api/edit-project
Delete Project
Documentation: https://crowdin.com/page/api/delete-project
Download Glossary
Documentation: https://crowdin.com/page/api/download-glossary
Upload Glossary
Documentation: https://crowdin.com/page/api/upload-glossary
Download TM
Documentation: https://crowdin.com/page/api/download-tm
Upload TM
Documentation: https://crowdin.com/page/api/upload-tm
Supported Languages
Documentation: https://crowdin.com/page/api/supported-languages
Supported Rubies
Tested with the following Ruby versions:
- MRI 2.1.2
- JRuby 1.7
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
License and Author
Author: Anton Maminov ([email protected])
Copyright: 2012-2014 crowdin.com
This library is distributed under the MIT license. Please see the LICENSE file.