translate_tool
Translate strings in iOS/macOS Xcode String Catalog files to specified target languages, returning translated keys for localization management.
Instructions
MCP tool to translate strings to target language and return translated keys.
Args:
file_path (str): Path to the .xcstrings file
target_language (str): Target language code
Returns:
str: Translation result with translated keys or error message
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| target_language | Yes |
Implementation Reference
- The handler function for the 'translate_tool' MCP tool. It validates the input file and language, retrieves base language strings, translates them using translate_strings helper, and returns the results or errors.@mcp.tool() def translate_tool(file_path: str, target_language: str) -> str: """ MCP tool to translate strings to target language and return translated keys. Args: file_path (str): Path to the .xcstrings file target_language (str): Target language code Returns: str: Translation result with translated keys or error message """ try: if not validate_xcstrings_file(file_path): return f"Error: Invalid file path or not an .xcstrings file: {file_path}" if not validate_language_code(target_language): return f"Error: Invalid language code: {target_language}" # Get base keys base_keys = get_base_language_strings(file_path) if not base_keys: return "Error: No base language keys found" # Translate translated, skipped = translate_strings(base_keys, target_language) if not translated and not skipped: return "Error: Translation failed or returned no results" result = [] if translated: result.append(f"Translated {len(translated)} strings to {target_language}:") for key, value in translated.items(): result.append(f"{key}: {value}") if skipped: result.append(f"\nSkipped {len(skipped)} strings:") for key, reason in skipped.items(): result.append(f"{key}: {reason}") return "\n".join(result) except Exception as e: return format_error_message(e, "Translation failed")