localizable-translate v1.0.5
localizable-translate
Overview
localizable-translate
is a tool designed to translate Localizable.xcstrings
files for different languages. It supports multiple translation models including OpenAI, Anthropic, and Google Generative AI (Gemini). This tool reads the languages and prompt configurations from specific files and translates the strings accordingly.
Setup Requirements
Node.js: Ensure you have Node.js installed. You can download it from nodejs.org.
Environment Variables: Create a
.env
file in the root directory of your project to store your API keys. The required environment variables are:OPENAI_API_KEY
for OpenAIANTHROPIC_API_KEY
for AnthropicGEMINI_API_KEY
for Google Generative AI
Example
.env
file:OPENAI_API_KEY=your_openai_api_key ANTHROPIC_API_KEY=your_anthropic_api_key GEMINI_API_KEY=your_gemini_api_key
Configuration Files:
.localizable_languages
: A file specifying the languages you want to translate to, with one language per line. Example:ar de fr es
.localizable_prompt
: A file containing the prompt template for the translation. Use{{LANGUAGES}}
as a placeholder for the languages list.
Dependencies: Install the necessary dependencies by running:
npm install
Usage
Command Line Arguments:
--dry-run
: Perform a dry run without making actual translations.--verbose
: Enable verbose logging.--model=<model>
: Specify the translation model to use (openai
,anthropic
, orgemini
). Defaults toopenai
.--chunk-size=<size>
: Specify the chunk size for processing translations. Defaults to 10.--output=<path>
: Specify the output file path. Defaults to input filename with "translatedtimestamp" suffix.
Running the Script:
node dist/index.js [options] [path_to_Localizable.xcstrings]
The input file path is optional and defaults to "./Localizable.xcstrings" if not specified.
Example:
# Using default input path with OpenAI node dist/index.js --verbose # Specifying input file and using Anthropic node dist/index.js --model=anthropic --chunk-size=5 ./MyStrings.xcstrings # Dry run with custom output path node dist/index.js --dry-run --output=./output.xcstrings ./input.xcstrings
About
This tool powers the localization of Time Awareness, an iOS app that helps people with timeblindness visualize and understand the passage of time through engaging visual representations. The app features 24 different visualization types for tracking hours, days, weeks, months, years and human life spans.