OneSky Fastlane Plugin
Getting Started
This project is a fastlane plugin. To get started with fastlane-plugin-onesky
, add it to your project by running:
fastlane add_plugin onesky
About
This fastlane plugin helps you to update the translations of your app using the OneSky service. You can upload your current base localization file with onesky_upload
and download new translations with onesky_download
from OneSky.
OneSky is a translation service for to help ypu translate your iOS, Android, Websites and Software. TO find out more about the OneSky Service, please head over to http://www.oneskyapp.com.
Reference and Example
The OneSky fastlane plugin provides two new actions: onesky_upload
and onesky_download
onesky_upload
Uploads a new translation file to the onesky service.
onesky_upload(
public_key: "abc123abc123abc123abc123abc123abc",
secret_key: "xyz890xyz890xyz890xyz890xyz890xyz",
project_id: "1234",
strings_file_path: "./localizations/en.xliff",
strings_file_format: "XLIFF",
deprecate_missing: true
)
Parameter | Description |
---|---|
public_key |
Your OneSky account public key. You retrive it by logging into your OneSky account, go to Settings and then API Keys & Usages. |
private_key |
Your OneSky account private key. You retrive it by logging into your OneSky account, go to Settings and then API Keys & Usages. |
project_id |
The ID of the project you want the tranlstions uploaded for. You retrive it, by logging into your OneSky account, navigate to your projects overview and copy the number behind the # in the brackets. (i.e. (#1234) -> "1234" ) |
strings_file_path |
The file path to the localization file you want to upload. |
strings_file_format |
The format of localization file you want to upload. For more information about the available types head over to https://github.com/onesky/api-documentation-platform/blob/master/reference/format.md. |
deprecate_missing |
(optional) Indicates whether the strings that aren't available in the new translation file should be marked as deprecated. Defaults to false . |
onesky_download
Uploads a new translation file to the onesky service.
onesky_download(
public_key: "abc123abc123abc123abc123abc123abc",
secret_key: "xyz890xyz890xyz890xyz890xyz890xyz",
project_id: "1234",
locale: "de",
filename: "en.xliff",
destination: "./localizations/de.xliff"
)
Parameter | Description |
---|---|
public_key |
Your OneSky account public key. You retrive it by logging into your OneSky account, go to Settings and then API Keys & Usages. |
private_key |
Your OneSky account private key. You retrive it by logging into your OneSky account, go to Settings and then API Keys & Usages. |
project_id |
The ID of the project you want the tranlstions downloaded for. You retrive it, by logging into your OneSky account, navigate to your projects overview and copy the number behind the # in the brackets. (i.e. (#1234) -> "1234" ) |
locale |
The locale your wnat to download the translation for. |
filename |
The filename fo the file you want the translation for. It is the name of your original uploaded file. |
destination |
Filepath of the file to write the translations to. |
Run tests for this plugin
To run both the tests, and code style validation, run
rake
To automatically fix many of the styling issues, use
rubocop -a
Goes well with fastlane-plugin-localization
This plugin works really well with the plugin localization by @vmalyi. fastlane-plugin-localization
helps you to extract your localization files form your XCode Projects using xcodebuild
.
Here are example lanes to use fastlane-plugin-localization
and fastlane-plugin-onesky
to manage your translations:
desc "Extracts and uploads base localization to OneSky"
lane :export_translations do
export_localizations(
destination_path: "./localizations",
project: "YourApp.xcodeproj"
)
onesky_upload(
public_key: "abc123abc123abc123abc123abc123abc",
secret_key: "xyz890xyz890xyz890xyz890xyz890xyz",
project_id: "1234",
strings_file_path: "./localizations/en.xliff",
strings_file_format: "XLIFF",
deprecate_missing: true
)
end
desc "Downloads current translations from OneSky and imports into the xcode project"
lane :download_translations do
onesky_download(
public_key: "abc123abc123abc123abc123abc123abc",
secret_key: "xyz890xyz890xyz890xyz890xyz890xyz",
project_id: "1234",
locale: "de",
filename: "en.xliff",
destination: "./localizations/de.xliff"
)
import_localizations(
source_path: "./localizations/de.xliff",
project: "YourApp.xcodeproj"
)
end
Issues and Feedback
For any other issues and feedback about this plugin, please submit it to this repository.
Troubleshooting
If you have trouble using plugins, check out the Plugins Troubleshooting doc in the main fastlane
repo.
Using fastlane
Plugins
For more information about how the fastlane
plugin system works, check out the Plugins documentation.
About fastlane
fastlane
is the easiest way to automate building and releasing your iOS and Android apps. To learn more, check out fastlane.tools.
Acknowledgements
The code for the upload action is based on the fastlane plugin upload_to_onesky
by @joshrlesch:
https://github.com/joshrlesch/fastlane-plugin-upload_to_onesky
This plugin was developed for and during the work on the Youpooly iOS App.