Hey everyone!
When localizing content with Transifex Live, some dynamic values—like order numbers, email addresses, or timestamps—might not be automatically recognized as variables. By default, Transifex treats the full string as static unless configured otherwise.
However, there are ways to make Transifex Live detect variables correctly, ensuring accurate translations while also protecting sensitive customer data from being stored in Transifex. This is especially useful for organizations following privacy and security standards like HIPAA, GDPR, or PCI DSS, where exposing user-specific data in translation platforms is a compliance risk.
Let’s go over three methods to handle this effectively!
Wrapping Values in Tags
A straightforward way to hint that part of a sentence is dynamic is by wrapping the variable inside a special tag, like .
Example
<p>
Your order number is <var>#12345</var>. Please keep it safe.
</p>
Why This Works?
- Transifex Live may recognize as dynamic content.
Expected output in Transifex:
-
In the sidebar:
-
In the editor:
In this case, Transifex correctly detects and replaces the order number with a placeholder, preventing it from being stored as static content.
Forcing Transifex Live to Recognize Variables via window.liveSettings.variables_parser
For more control, you can modify window.liveSettings.variables_parser to automatically detect patterns like order numbers, timestamps, or emails.
Example (JavaScript Snippet)
<p id="confirmation-message">
Your appointment is scheduled for 2025-02-23 at 10:00 AM.
</p>
<script>
window.liveSettings = {
api_key: "your_api_key",
variables_parser: function(text, fn) {
// Regular expression to match dates in YYYY-MM-DD or similar formats
text = text.replace(/\b\d{4}-\d{2}-\d{2}\b/g, function(match) {
return fn(match); // Replace the date with a variable expression
});
// Regular expression to match times in HH:MM AM/PM format
text = text.replace(/\b\d{1,2}:\d{2}\s?(AM|PM)\b/g, function(match) {
return fn(match); // Replace the time with a variable expression
});
return text;
}
};
</script>
Why This Works?
- This method ensures dates, order numbers, or any specific patterns are detected as variables.
- No actual customer data (like appointment dates or personal identifiers) is stored in Transifex.
Expected output in Transifex:
-
In the sidebar:
-
In the editor:
This ensures Transifex recognizes the appointment date dynamically, without storing individual customer details.
Excluding Specific Tags or Classes from Translation
Another way to protect sensitive user data while ensuring Transifex Live detects variables is to exclude specific HTML elements from translation.
Example
<p>
We have sent a verification code to
<span class="exclude-from-translation">user@example.com</span>.
</p>
Steps to Exclude Certain Elements in Transifex Live
- Open the Transifex Live preview
- Navigate to Live Settings
- Add “exclude-from-translation” to the Exclude tag classes field
Why This Works?
- Before excluding: Transifex stores “We have sent a verification code to user@example.com.” as a full string, exposing customer emails in translation storage.
- After excluding: Transifex detects “We have sent a verification code to {{0}}.”, treating the email as a variable.
Expected output in Transifex:
-
In the sidebar:
-
In the editor:
This prevents customer-sensitive data from being stored in Transifex and ensures compliance with HIPAA, GDPR, and other security standards.
Why Is This Important? 
By using these methods, you can:
Keep customer-sensitive information out of Transifex (important for HIPAA, GDPR, PCI DSS)
Reduce unnecessary duplicate translations (improves Translation Memory efficiency)
Ensure accurate localization for dynamic content without storing unique values
Each method has its use cases:
Method | Best For | Privacy Benefit |
---|---|---|
Wrapping values in or tags | Numbers, order IDs | Can be auto-detected as variables |
Using window.liveSettings.variables_parser | Dates, emails, dynamic text | Detects patterns & avoids storing real data |
Excluding tag types or classes | Usernames, emails, personal data | Prevents customer info from being stored |
Final Thoughts 
Using these techniques, you can improve how Transifex Live handles dynamic content, making your translations more efficient while complying with data privacy regulations.
Do you have any other methods for handling variables in Transifex Live? Let’s discuss in the comments!