frappe-core-translation

Standardize deterministic i18n patterns for Frappe apps across v14–v16.

163|53|Updated Jan 14, 2026
One-click install
npx skills add https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package --skill frappe-core-translation
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: frappe-core-translation
Source: https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package/tree/main/skills/source/core/frappe-core-translation
Command: npx skills add https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package --skill frappe-core-translation

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This knowledge base standardizes deterministic i18n patterns and best practices for Frappe apps across v14–v16, reducing translation errors and runtime mismatches in multilingual deployments.

Core Features & Use Cases

  • Python and JavaScript translation usage guidelines, including _() and __() usage, context for disambiguation, and safe placeholder handling.
  • Translation workflows for CSV and PO/MO formats, bench commands, translation loading order, and per-app translation management.
  • RTL support, lazy translations with _lt() for module-level constants (v15+), and guidance for custom app translations.

Quick Start

Begin by implementing Python _() and JavaScript __() usage in your codebase, then manage translations with CSV/PO workflows and bench commands.

Frequently Asked Questions about frappe-core-translation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I use Python _() and JavaScript __() for Frappe app translations?

Frappe translation loading order dictates how CSV and PO/MO files are processed to prevent runtime mismatches. This Skill describes a safe translation loading sequence that guards against common anti-patterns across v14–v16 deployments.

When do I need to use lazy translation _lt() in Frappe?

Use lazy translation _lt() in Frappe for module-level constants starting in v15. This Skill provides guidance on applying _lt() to ensure strings are evaluated safely at runtime rather than at module import time.

What is the best way to manage CSV and PO/MO translation workflows in Frappe?

The best way to manage Frappe translation workflows is by using bench commands to extract, compile, and sync CSV and PO/MO files. This Skill standardizes these workflows to ensure deterministic per-app translation management.

Does Frappe support right-to-left (RTL) languages and custom app translations?

Frappe supports right-to-left (RTL) languages and custom app translations across v14–v16. This Skill outlines the functional requirements for implementing RTL support and managing translations for custom apps.

Why are my Frappe translation placeholders causing runtime errors?

Frappe translation placeholders cause runtime errors when used incorrectly, such as failing to match {0} formatting. This Skill provides deterministic guidance on safe placeholder usage and disambiguation contexts to prevent these mismatches.