localizable-translate
v1.0.5
Published
A tool to translate Localizable.xcstrings files for different languages
Downloads
12
Readme
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
.envfile in the root directory of your project to store your API keys. The required environment variables are:OPENAI_API_KEYfor OpenAIANTHROPIC_API_KEYfor AnthropicGEMINI_API_KEYfor Google Generative AI
Example
.envfile:OPENAI_API_KEY=your_openai_api_key ANTHROPIC_API_KEY=your_anthropic_api_key GEMINI_API_KEY=your_gemini_api_keyConfiguration 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 "translated[timestamp]" 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.
