Free of charge
Multiplatform
Unlimited users
Change tracking
Comments
Familiar UI
CI integration
Set up within minutes
1Create a Google Sheet
Simply duplicate the template sheet, which is configured for two example languages: English and Dutch. You can change the languages you need by adding additional columns, and putting the language specifier in the header row.
2Add view-only rights for Localeasy
Go to the Share options of your sheet, and enable the public view-only link.
3Call the Localeasy endpoint
Make a GET request to https://localeasy.dev/generate, including the following query parameters
-
sheet
: The ID of the Google Sheet that contains your translations. -
format
: The format of the translation file that you want to receive. Must be one of the supported formats. -
locale
: The locale that you want to receive. The value of this parameter must correspond to a column in your sheet. -
nest-by
: Optional - The separator you want to use if you want entries to be nested. See Advanced: nesting. -
variant
: Optional - The translation variant that you want to receive. See Advanced: variants. -
gid
: Optional - If you're using multiple tabs on one Google Sheet, this is the gid of the tab you want to use.
+Optional: Integrate with your build system or CI
Integrating this with your build system or CI is incredibly easy. Just make a curl request to the Localeasy endpoint and redirect the output to a file in your codebase!
Example
Using the example sheet from step 1, we can retrieve a formatted .json file by making a GET
request to this URL:
https://localeasy.dev/generate?sheet=1lf71Q7J_By6_X46u-wisU5G3KoZx_uD8PX4PkYyVzOk&format=json&locale=en&nest-by=.&variant=web
Try and see
Supported formats
Localeasy supports the following output formats:
-
cocoa-strings
: A .strings file used by Xcode for iOS, iPadOS and MacOS. -
android-xml
: An .xml file used by Android Studio. -
rails-yaml
: A YAML file that can be used in a Ruby on Rails project. Supports nesting. -
json
: A plain JSON file. Supports nesting. -
yaml
: A plain YAML file. Supports nesting. -
php
: A PHP file returning an array. Supports nesting.
Advanced features
Variants per platform
If you're sharing translations between multiple platforms, you might want to provide different translations per platform for some strings. For example, on iOS you want to refer to the "App Store", while on Android you want to refer to the "Play Store". Localeasy supports this using variants.
Each translation entry can have multiple variants, denoted by a hash symbol. For example: you can
create two entries called mykey#ios
and mykey#android
. When calling the
Localeasy endpoint, include the variant
query parameter with either ios
or
android
. Localeasy will then return the correct entries, stripping out the variant
suffix.
Universal placeholders
When using the cocoa-strings
format, Localeasy will automatically convert placeholders
to the Cocoa specific format. This means you don't have to use %@
for iOS and
%s
for Android. You can always use the universal placeholder %s
, Localeasy
will take care of the conversion.
Nesting
Some output formats support nesting of translation entries. Entries can be nested by specifying a
separator in the nest-by
parameter.