Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ovolab/fastlane-plugin-ovo_poeditor/llms.txt

Use this file to discover all available pages before exploring further.

By the end of this guide you will have a working Fastlane lane that authenticates with the POEditor API, exports your translations in the format that suits your project, and writes the resulting file to the correct location in your repository — all in a single command. No manual file downloads, no renaming, no copy-pasting between directories.
Never hardcode your POEditor credentials in a Fastfile. Store POEDITOR_API_TOKEN and POEDITOR_PROJECT_ID in environment variables or in a .env file at your project root (add .env to .gitignore). Fastlane automatically loads .env files, so the values will be available in your lane without any extra configuration.
1

Obtain your POEditor credentials

You need two values before writing your lane:
  • API token — go to your POEditor account, navigate to Settings → API Access, and copy your token. A read-only token is sufficient and is strongly recommended.
  • Project ID — open your POEditor project. The numeric ID appears in the browser URL: https://poeditor.com/projects/view?id=YOUR_PROJECT_ID.
Store both values as environment variables:
export POEDITOR_API_TOKEN="your_read_only_token"
export POEDITOR_PROJECT_ID="123456"
2

Install the plugin

If you haven’t already added the plugin to your project, follow the Installation guide, then return here. The short version:
fastlane add_plugin ovo_poeditor
bundle install
3

Add a lane to your Fastfile

Open fastlane/Fastfile and add the lane below. This example uses the xcstrings format, which produces a single Xcode 15+ String Catalog containing all languages at once.
Fastfile
lane :download_strings do
  ovo_poeditor_strings(
    api_token: ENV["POEDITOR_API_TOKEN"],
    project_id: ENV["POEDITOR_PROJECT_ID"],
    languages: ["en", "fr", "it"],
    output_dir: "./XCStrings",
    file_format: "xcstrings",
    file_name: "Localizable.xcstrings"
  )
end
When file_format is "xcstrings", POEditor exports all languages enabled in the project into a single file, regardless of how many language codes you include in the languages array. You only need to pass one language code to trigger the export — the rest are included automatically.
4

Run the lane

Execute the lane from your project root:
bundle exec fastlane download_strings
Fastlane will call the POEditor v2 export API, retrieve the download URL, fetch the file, and write it to disk. You will see a success message in the terminal for each language processed.
5

Verify the output

After the lane completes, confirm the file was written to the expected path:
ls -lh ./XCStrings/Localizable.xcstrings
The file at ./XCStrings/Localizable.xcstrings is ready to be committed to your repository or consumed by downstream Fastlane actions (such as a build or upload lane). For apple_strings, each language produces its own file at ./Strings/<lang>.lproj/Localizable.strings. For android_strings, each language lands in ./Android/values-<lang>/strings.xml (with the default language going into ./Android/values/strings.xml).

Format Examples

All three supported export formats use the same ovo_poeditor_strings action. Choose the snippet that matches your platform.
lane :ios_xcstrings do
  ovo_poeditor_strings(
    api_token: ENV["POEDITOR_API_TOKEN"],
    project_id: ENV["POEDITOR_PROJECT_ID"],
    languages: ["en", "fr", "it"],
    output_dir: "./XCStrings",
    file_format: "xcstrings",
    file_name: "Localizable.xcstrings"
  )
end

Next Steps

  • iOS String Catalogs — see iOS xcstrings Guide for Xcode project integration details.
  • Android resources — see Android strings Guide for values folder conventions and the language_map option.
  • Language mapping — see Language Mapping to map POEditor language codes to platform-specific folder names.
  • Fallback languages — see Fallback Languages to configure per-language fallbacks for untranslated strings.
  • All parameters — see Action Parameters Reference for the complete list of available options.

Build docs developers (and LLMs) love