Validation Errors Reference
Comprehensive guide to understanding and fixing validation errors in your localization files
Overview
When you upload localization files to GetTranslated.AI, our system validates them for structural correctness, encoding issues, and best practices. This page documents all validation errors and warnings you may encounter, organized by category and platform.
Error vs Warning: Errors are likely to lead to problems down the line, and will block translation. Warnings are informational and don't prevent translation, but indicate potential issues you should review.
Table of Contents
General Errors
These errors apply to all file types and platforms.
INVALID_UTF8_ENCODING
Severity: ERROR
Description: The file contains invalid UTF-8 encoding. This typically occurs when a file was saved with a different encoding (like Windows-1252 or ISO-8859-1) or contains binary data.
Why This Matters: Invalid encoding prevents the file from being read correctly, which can cause character corruption, display issues in your app, and translation errors. UTF-8 is the standard encoding for modern localization files and ensures proper handling of international characters.
How to Fix:
- Ensure your file is saved with UTF-8 encoding
- In most editors, you can change encoding via "Save As" → "UTF-8"
- Remove any binary or non-text content from the file
- If the file contains special characters, ensure they're properly encoded in UTF-8
Example: A file saved as Windows-1252 containing accented characters will trigger this error.
INVALID_JSON_SYNTAX
Severity: ERROR
Description: The JSON file contains syntax errors that prevent it from being parsed.
Why This Matters: Invalid JSON syntax prevents the file from being parsed, which means translations cannot be loaded into your app. This will cause runtime errors, missing translations, or app crashes when trying to access localized strings.
Common Causes:
- Missing commas between objects
- Trailing commas (not allowed in JSON)
- Unclosed brackets or braces
- Unescaped quotes in string values
- Invalid escape sequences
How to Fix:
- Use a JSON validator or linter to identify syntax errors
- Check the line number reported in the error message
- Ensure all strings are properly quoted
- Remove trailing commas
- Ensure all brackets and braces are properly closed
// ❌ Invalid - trailing comma
{
"key1": "value1",
"key2": "value2",
}
// ✅ Valid
{
"key1": "value1",
"key2": "value2"
}
INVALID_XML_SYNTAX
Severity: ERROR
Description: The XML file contains syntax errors that prevent it from being parsed.
Why This Matters: Invalid XML syntax prevents Android from reading your strings.xml file, which means your app won't be able to load translations. This can cause build failures, runtime crashes, or missing strings in your Android app.
Common Causes:
- Unclosed XML tags
- Mismatched opening and closing tags
- Invalid characters in XML content
- Missing XML declaration or DOCTYPE
- Improperly escaped special characters (<, >, &)
How to Fix:
- Use an XML validator to identify syntax errors
- Check the line number reported in the error message
- Ensure all tags are properly closed
- Escape special characters:
<→<,>→>,&→& - Verify XML structure matches the expected format for your platform
PARSE_ERROR
Severity: ERROR
Description: A general parsing error occurred while processing the file. This is a catch-all error for parsing issues that don't fit into more specific categories.
Why This Matters: Parse errors prevent the file from being processed, which blocks translation and can cause your app to fail when trying to load localization data. The specific error message will provide details about what went wrong.
How to Fix:
- Review the error message for specific details
- Check the file structure matches the expected format
- Verify the file isn't corrupted
- Ensure the file extension matches the content format
General Warnings
These warnings apply to all file types and don't block translation, but indicate potential issues.
EMPTY_VALUE
Severity: WARNING
Description: A translation key has an empty or whitespace-only value.
Why This Matters: Empty values may indicate incomplete translations or missing content. While not an error, they should be reviewed to ensure they're intentional.
How to Fix:
- If intentional, you can ignore this warning
- If unintentional, add the appropriate translation value
- Remove the key entirely if it's not needed
// ⚠️ Warning - empty value
"welcome_message": ""
// ✅ Fixed
"welcome_message": "Welcome!"
DUPLICATE_KEY
Severity: WARNING
Description: The same translation key appears multiple times in your localization file with different values.
Why This Matters: Duplicate keys can cause confusion about which value should be used. Different platforms handle duplicates differently - some use the first occurrence, others the last, which can lead to inconsistent translations. This can also indicate copy-paste errors or merge conflicts in your localization files.
Common Causes:
- Copy-paste errors when adding translations
- Merge conflicts in version control
- Accidental duplication during refactoring
- Multiple team members adding the same key
How to Fix:
- Auto-Fix Available: You can use the "Fix" button in the validation issues page to automatically resolve duplicates. For identical values, they'll be merged. For different values, you can choose which value to keep.
- Manual Fix: Review all occurrences of the duplicate key and decide which value is correct, then remove the duplicates
- Ensure each key appears only once in your file
- If you need multiple values, consider using different key names or a pluralization system
// ⚠️ Warning - duplicate key with different values
"app_name": "My App"
"app_name": "My Application"
// ✅ Fixed - single key with chosen value
"app_name": "My App"
UNSAFE_CHARACTER
Severity: WARNING
Description: The file contains unsafe or hidden characters that may cause display issues or problems during translation.
Why This Matters: Unsafe characters can cause unexpected behavior in your app, such as text not displaying correctly, layout issues, or problems with text selection. Smart quotes and non-breaking spaces may look correct but can break functionality. Zero-width characters are invisible and can cause subtle bugs that are hard to debug.
Detected Characters:
- Unicode replacement character (�): Indicates encoding corruption
- Zero-width space (U+200B): Invisible character that can break text
- Zero-width non-joiner (U+200C): Invisible formatting character
- Zero-width joiner (U+200D): Invisible formatting character
- Non-breaking space (U+00A0): Should typically be a regular space
- Smart quotes: Left/right single and double quotation marks (U+2018, U+2019, U+201C, U+201D) - should be regular quotes
How to Fix:
- Auto-Fix Available: You can use the "Fix" button in the validation issues page to automatically replace unsafe characters with their safe equivalents (smart quotes → regular quotes, non-breaking spaces → regular spaces, zero-width characters removed).
- Manual Fix: Replace smart quotes with regular quotes (
"and') - Replace non-breaking spaces with regular spaces
- Remove zero-width characters (they're invisible but can cause issues)
- Fix encoding issues if you see replacement characters
- Use a text editor that shows hidden characters to identify and remove them
// ⚠️ Warning - smart quotes
"message": "Hello "world""
// ✅ Fixed - regular quotes
"message": "Hello \"world\""
iOS-Specific Errors
These errors are specific to iOS localization files (.strings and .stringsdict).
INVALID_STRINGS_SYNTAX
Severity: ERROR
Description: The .strings file contains syntax errors that don't match the expected format.
Why This Matters: Invalid .strings syntax prevents iOS from loading your localization file, which means your app will fall back to the base language or show missing translation keys. This can cause user-facing issues and poor localization experience.
Expected Format:
"key" = "value";
Common Causes:
- Missing semicolon at end of line
- Missing quotes around key or value
- Invalid escape sequences
- Unclosed quotes
- Invalid multiline string syntax
How to Fix:
- Ensure every entry follows the format:
"key" = "value"; - Check that all quotes are properly closed
- Escape special characters:
\"for quotes,\nfor newlines - For multiline strings, ensure proper continuation syntax
// ❌ Invalid - missing semicolon
"key" = "value"
// ❌ Invalid - missing quotes
key = "value";
// ✅ Valid
"key" = "value";
// ✅ Valid - multiline string
"key" = "Line 1 \
Line 2";
MISSING_STRINGS_DICT_ROOT
Severity: ERROR
Description: The .stringsdict file is missing the root <dict> element.
Why This Matters: Without the root dict element, iOS cannot parse the .stringsdict file, which means plural forms won't work correctly. Your app may crash or display incorrect plural forms when handling numbers.
Expected Structure:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Your content here -->
</dict>
</plist>
How to Fix:
- Ensure the file starts with proper XML declaration and DOCTYPE
- Wrap all content in a root
<dict>element - Close the
<plist>tag properly
MISSING_PLURAL_ONE
Severity: ERROR
Description: A plural entry in a .stringsdict file is missing the required one form.
Why This Matters: iOS requires the one form for proper pluralization. Without it, your app may crash when displaying singular quantities (like "1 item") or display incorrect text. This is especially important for languages that distinguish between singular and plural forms.
Required Plural Forms: iOS plurals require both one and other forms.
How to Fix:
- Add a
onekey with an appropriate string value - Ensure the placeholder count matches other forms
// ❌ Invalid - missing "one"
<key>item_count</key>
<dict>
<key>other</key>
<string>%ld items</string>
</dict>
// ✅ Valid
<key>item_count</key>
<dict>
<key>one</key>
<string>%ld item</string>
<key>other</key>
<string>%ld items</string>
</dict>
MISSING_PLURAL_OTHER
Severity: ERROR
Description: A plural entry in a .stringsdict file is missing the required other form.
Why This Matters: The other form is required for all plural quantities that aren't "one" (including zero, two, few, many). Without it, iOS cannot display plural forms correctly, which will cause crashes or incorrect text when displaying multiple items.
Required Plural Forms: iOS plurals require both one and other forms.
How to Fix:
- Add an
otherkey with an appropriate string value - Ensure the placeholder count matches other forms
INVALID_PLURAL_VALUE_TYPE
Severity: ERROR
Description: A plural entry has an invalid NSStringFormatValueTypeKey value. Plurals require numeric types (like d, f, ld), not object/string types (@).
Why This Matters: Plurals in iOS are designed to work with numeric values (counts, quantities). Using an object/string type (@) is not supported and will cause runtime errors or crashes when iOS tries to format the plural string with a number.
Valid Value Types:
d- Integer (decimal)ld- Long integerf- Floating point
Invalid Value Types:
@- Object/string (cannot be used with plurals)
How to Fix:
- Change
NSStringFormatValueTypeKeyfrom@to a numeric type - Update placeholder formats in plural forms to match the value type
// ❌ Invalid - using @ (object) type
<key>NSStringFormatValueTypeKey</key>
<string>@</string>
// ✅ Valid - using d (integer) type
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
MISSING_NSSTRING_LOCALIZED_FORMAT_KEY
Severity: ERROR
Description: A plural entry is missing the required NSStringLocalizedFormatKey.
Why This Matters: The format key tells iOS how to structure the plural string and which variable contains the plural forms. Without it, iOS cannot determine how to format the plural, which will cause crashes or incorrect display.
How to Fix:
- Add the
NSStringLocalizedFormatKeywith a format string like%#@variable@ - The format string should reference the variable name containing plural forms
MISSING_NSSTRING_FORMAT_SPEC_TYPE_KEY
Severity: ERROR
Description: A plural entry is missing the required NSStringFormatSpecTypeKey.
Why This Matters: This key tells iOS that this is a plural rule type, which is essential for proper pluralization. Without it, iOS won't recognize the entry as a plural and will fail to format it correctly.
How to Fix:
- Add the
NSStringFormatSpecTypeKeywith valueNSStringPluralRuleType
MISSING_NSSTRING_FORMAT_VALUE_TYPE_KEY
Severity: ERROR
Description: A plural entry is missing the required NSStringFormatValueTypeKey.
Why This Matters: This key specifies the data type of the value being pluralized (integer, float, etc.), which iOS needs to correctly format the number in the plural string. Without it, iOS cannot properly format the plural.
How to Fix:
- Add the
NSStringFormatValueTypeKeywith a numeric type (d,ld, orf)
Android-Specific Errors
These errors are specific to Android XML localization files (strings.xml).
MISSING_STRING_NAME
Severity: ERROR
Description: A <string> element is missing the required name attribute.
Why This Matters: The name attribute is the identifier used to reference the string in your Android code. Without it, you cannot access the string resource, which will cause build errors or runtime crashes when trying to use that string.
How to Fix:
- Add a
nameattribute to every<string>element - The name should be a valid Android resource identifier
<!-- ❌ Invalid - missing name attribute -->
<string>Hello World</string>
<!-- ✅ Valid -->
<string name="hello_world">Hello World</string>
MISSING_PLURAL_NAME
Severity: ERROR
Description: A <plurals> element is missing the required name attribute.
Why This Matters: The name attribute is required to reference the plural resource in your Android code. Without it, you cannot use the plural in your app, which will cause build errors or runtime crashes.
How to Fix:
- Add a
nameattribute to every<plurals>element
MISSING_PLURAL_ONE_ANDROID
Severity: WARNING
Description: An Android plural is missing the one form. While not required (some strings only use "other"), it's recommended for better localization.
Why This Matters: While Android allows plurals with only the "other" form, providing a "one" form improves the user experience for languages that distinguish between singular and plural. Without it, users may see "1 items" instead of "1 item", which looks unprofessional.
How to Fix:
- Add a
<item quantity="one">element if appropriate for your use case - If your string truly only needs "other", you can ignore this warning
<!-- ⚠️ Warning - missing "one" form -->
<plurals name="item_count">
<item quantity="other">%d items</item>
</plurals>
<!-- ✅ Recommended - includes "one" form -->
<plurals name="item_count">
<item quantity="one">%d item</item>
<item quantity="other">%d items</item>
</plurals>
React Native-Specific Errors
These errors are specific to React Native JSON localization files.
MISSING_PLURAL_ONE (React Native)
Severity: ERROR
Description: An i18next-style plural object is missing the required _one key.
Why This Matters: i18next requires the _one form for proper pluralization. Without it, your React Native app may crash when displaying singular quantities or show incorrect text. This is essential for languages that distinguish between singular and plural forms.
Required Plural Forms: i18next plurals require both _one and _other forms.
How to Fix:
- Add a
_onekey with an appropriate string value - Ensure the placeholder count matches other forms
// ❌ Invalid - missing "_one"
{
"item_count": {
"_other": "{{count}} items"
}
}
// ✅ Valid
{
"item_count": {
"_one": "{{count}} item",
"_other": "{{count}} items"
}
}
MISSING_PLURAL_OTHER (React Native)
Severity: ERROR
Description: An i18next-style plural object is missing the required _other key.
Why This Matters: The _other form is required for all plural quantities (zero, two, few, many, etc.). Without it, i18next cannot display plural forms correctly, which will cause crashes or incorrect text when displaying multiple items in your React Native app.
How to Fix:
- Add an
_otherkey with an appropriate string value - Ensure the placeholder count matches other forms
Flutter (ARB) Validation
Flutter localization uses App Resource Bundle (.arb) files — flat JSON where each message is an ICU MessageFormat string. Because ICU plurals and select live inside a single string (not as separate keys like the other platforms), Flutter validation checks each ICU message as a whole and reports problems using the shared codes below. Metadata (@@locale, @-prefixed entries) is preserved, not validated as translatable text.
Placeholder & ICU structure (INVALID_PLACEHOLDER_FORMAT / TRANSLATION_BROKEN_INTERPOLATION)
Severity: ERROR
Description: A translated ICU message must (1) reference the same set of named arguments as the source, (2) keep the required other case in every plural/select, and (3) have balanced braces.
Why This Matters: flutter gen-l10n fails to build if an ICU message is malformed, and a renamed or dropped argument means the value your code passes in never renders. These are caught before the file reaches your project.
How to Fix:
- Keep every argument name from the source (e.g. don't translate
{userName}into{nombreUsuario}) - Keep an
other{…}branch in eachplural/select - Balance every
{with a}
// ❌ Invalid - argument renamed, and the required "other" case dropped
"greeting": "Hola {nombre}",
"itemCount": "{count, plural, one{1 artículo}}"
// ✅ Valid - same argument names, "other" preserved
"greeting": "Hola {name}",
"itemCount": "{count, plural, one{1 artículo} other{{count} artículos}}"
Plural categories may differ by language (this is not an error)
Good to know: ICU plural categories are language-specific, and we deliberately do not force the source's categories onto a translation. English uses one/other; Polish needs one/few/many/other; Japanese uses only other. A correct Polish translation that adds few and many — or a Japanese one that collapses to just other — is valid and will not be flagged.
The only plural requirement we enforce is the one ICU itself mandates: an other case must be present. Forcing category parity between source and target is a common localization bug in naive tools; matching each language's CLDR plural rules is the correct behavior.
// Source (English)
"itemCount": "{count, plural, one{1 item} other{{count} items}}"
// ✅ Valid Polish translation - adds "few" and "many" (CLDR-correct, not an error)
"itemCount": "{count, plural, one{1 przedmiot} few{{count} przedmioty} many{{count} przedmiotów} other{{count} przedmiotu}}"
Messages using ICU quote-escaping are skipped
Good to know: If a message uses ICU single-quote escaping (e.g. Flutter's use-escaping: true to render a literal brace), the ICU checks above are skipped for that message rather than risk a false positive. JSON syntax, empty-value, and unsafe-character checks still apply. This is a rare, off-by-default Flutter setting.
Placeholder Validation Errors
These errors relate to placeholder format and consistency across plural forms.
INVALID_PLACEHOLDER_FORMAT
Severity: ERROR
Description: A placeholder doesn't match the allowed format for the platform.
Why This Matters: Invalid placeholder formats will cause runtime errors when your app tries to format strings with variables. The app may crash, display incorrect text, or fail to substitute values properly. Each platform has specific placeholder syntax requirements that must be followed.
iOS Valid Placeholders:
%@- Object/string%d- Integer%ld- Long integer%f- Floating point%c- Character%s- C string- With modifiers:
%5d,%.2f,%+d - Positional:
%1$d,%2$@,%8$3.2f
Android Valid Placeholders:
%d- Integer%s- String%f- Floating point- Positional:
%1$d,%2$s
React Native (i18next) Valid Placeholders:
{{variable}}- Variable interpolation- Variable names can contain: letters, numbers, underscores, dots, hyphens
How to Fix:
- Ensure placeholders match the platform's format
- Check for typos in placeholder syntax
- Verify you're using the correct placeholder type for your data
// ❌ Invalid iOS placeholder
"message": "Hello %x world" // %x is not valid
// ✅ Valid iOS placeholder
"message": "Hello %@ world"
// ❌ Invalid i18next placeholder
"message": "Hello {{variable name}}" // spaces not allowed
// ✅ Valid i18next placeholder
"message": "Hello {{variable_name}}"
PLACEHOLDER_COUNT_MISMATCH
Severity: ERROR
Description: Different plural forms have different numbers of placeholders. All plural forms must have the same placeholder count.
Why This Matters: When a plural is used, the same number of arguments must be provided regardless of which form is selected. Mismatched counts indicate a structural error.
How to Fix:
- Count placeholders in each plural form
- Ensure all forms have the same number
- Add missing placeholders or remove extra ones to match
// ❌ Invalid - mismatch: zero has 0, one has 1, other has 1
{
"zero": "No matches",
"one": "%ld match",
"other": "%ld matches"
}
// ✅ Valid - all forms have 1 placeholder
{
"zero": "%ld matches", // Fixed: added placeholder
"one": "%ld match",
"other": "%ld matches"
}
// ✅ Alternative fix - remove placeholder from other forms
{
"zero": "No matches",
"one": "One match", // Fixed: removed placeholder
"other": "Many matches" // Fixed: removed placeholder
}
Plural Form Validation Errors
These errors relate to plural form consistency and completeness for base strings and translations.
BASE_MISSING_PLURAL_FORM
Severity: ERROR
Description: A base plural string is missing plural forms required by one or more of your project's target languages.
Why This Matters: Different languages require different plural forms. For example, Polish requires one, few, many, and other, while English only requires one and other. If your base string only has English forms but your project targets Polish, translations will be incomplete and may cause runtime errors or incorrect pluralization in your app.
Common Scenarios:
- Base language is English (needs:
one,other) but project targets Polish (needs:one,few,many,other) - Base language is English but project targets Russian, Arabic, or other languages with complex plural rules
How to Fix:
- Add the missing plural forms to your base string
- Use the "other" form as a template for missing forms initially
- Review the error message to see which forms are missing for which target languages
- Consider adding all commonly needed forms (
zero,one,two,few,many,other) to your base strings to support all languages
// ❌ Invalid - missing "few" and "many" required for Polish
{
"one": "1 item",
"other": "%d items"
}
// ✅ Valid - includes all forms required for Polish
{
"one": "1 item",
"few": "%d items", // Added for Polish
"many": "%d items", // Added for Polish
"other": "%d items"
}
TRANSLATION_MISSING_PLURAL_FORM
Severity: ERROR
Description: A translation is missing plural forms that exist in the base string.
Why This Matters: Translations must maintain structural consistency with the base string. If the base has certain plural forms, the translation must have them too, otherwise your app may crash or display incorrect text when accessing those forms. This ensures that all plural forms are properly translated and available in all languages.
Common Causes:
- Translation was manually edited and some forms were accidentally removed
- Translation was created from an incomplete base string
- Translation file was corrupted or partially uploaded
How to Fix:
- Add the missing plural forms to the translation
- Ensure all forms from the base string are present in the translation
- Re-translate the string if needed to ensure all forms are included
// Base string
{
"one": "1 item",
"other": "%d items"
}
// ❌ Invalid translation - missing "one" form
{
"other": "%d artículos"
}
// ✅ Valid translation - all base forms present
{
"one": "1 artículo",
"other": "%d artículos"
}
TRANSLATION_MISSING_LANGUAGE_PLURAL_FORM
Severity: ERROR
Description: A translation is missing plural forms required by the target language's pluralization rules.
Why This Matters: Each language has specific plural forms it requires based on Unicode CLDR plural rules. For example, Polish requires one, few, many, and other. If a translation is missing these required forms, your app will crash or display incorrect pluralization when using that language. This is especially critical for languages with complex plural rules.
Language-Specific Requirements:
- Simple languages (English, Spanish, French, etc.): Require
oneandother - Complex languages (Polish, Russian, etc.): Require
one,few,many, andother - No singular languages (Japanese, Chinese, etc.): Require only
other - Very complex languages (Arabic): Require
zero,one,two,few,many, andother
How to Fix:
- Add the missing plural forms required by the target language
- Use appropriate translations for each form based on the language's pluralization rules
- Re-translate the string if needed to ensure all required forms are included
- Review the error message to see which specific forms are missing
// Base string (English - only needs one/other)
{
"one": "1 item",
"other": "%d items"
}
// ❌ Invalid Polish translation - missing "few" and "many"
{
"one": "1 element",
"other": "%d elementów"
}
// ✅ Valid Polish translation - all required forms present
{
"one": "1 element",
"few": "%d elementy", // Required for Polish
"many": "%d elementów", // Required for Polish
"other": "%d elementów"
}
Managing Validation Issues
The GetTranslated.AI web dashboard provides tools to help you manage and resolve validation issues efficiently. You can access validation issues from your project's dashboard.
Auto-Fixable Issues
Some validation issues can be automatically fixed directly from the web interface. Currently, the following issues support auto-fix:
- DUPLICATE_KEY: Automatically merge identical duplicates or let you choose which value to keep for different duplicates
- UNSAFE_CHARACTER: Automatically replace unsafe characters (smart quotes, non-breaking spaces, zero-width characters) with their safe equivalents
Using Auto-Fix
There are two ways to use auto-fix:
- Fix Individual Issues: Each auto-fixable issue card has a "Fix" button that will resolve that specific issue
- Fix All Auto-Fixable Issues: The summary card at the top of the validation issues page includes an "Auto-Fix" button that will fix all auto-fixable issues at once. The button shows the count of issues that can be fixed, e.g., "Auto-Fix (5)"
Ignoring Issues
If you encounter validation issues that you believe are false positives or that you want to address later, you can ignore them. Ignored issues will be hidden from the validation issues list but will remain in the system. You can ignore any type of validation issue.
Note: When you re-upload a file with the --force flag, all validation issues (including ignored ones) for that file will be cleared and recreated based on the new file content.
Viewing Validation Issues
Validation issues are organized by file and include:
- Issue Type: The validation error or warning code
- Severity: Error (blocks translation) or Warning (informational)
- Location: File name, key name, and line/column numbers when available
- Details: Specific information about the issue, such as duplicate values or detected unsafe characters
Troubleshooting Tips
General Debugging Steps
- Check the error message: The error message includes the error code, line number (if available), and key name (if applicable).
- Review the specific line: Go to the line number mentioned in the error and check for syntax issues.
- Validate file encoding: Ensure your file is saved as UTF-8 without BOM.
- Use a validator: Use platform-specific validators (JSON linter, XML validator, etc.) to catch syntax errors.
- Check for hidden characters: Use a text editor that shows invisible characters to find and remove unsafe characters.
Platform-Specific Tools
- JSON: Use
jqor online JSON validators to check syntax - XML: Use
xmllintor online XML validators - iOS .strings: Xcode can validate .strings files when opened
- Android XML: Android Studio validates XML files automatically
Common Patterns
- Multiple errors: Fix errors in order - some errors may be caused by earlier syntax issues
- Encoding issues: If you see replacement characters (�), re-save the file as UTF-8
- Placeholder mismatches: Count placeholders carefully - remember that
%%is an escaped percent, not a placeholder - Plural structure: Ensure all required plural forms are present and have matching placeholder counts
Bypassing Validation for False Positives
If you encounter validation errors that you believe are false positives (e.g., valid syntax that our validator doesn't recognize, or edge cases that work correctly in your app), you can use the --bypass-validation flag to continue despite validation errors:
translate sync --bypass-validation
Important Notes:
- Only use this flag if you're confident the validation errors are false positives
- The flag bypasses all validation checks, so use it carefully
- Validation errors will still be displayed, but won't block the upload process
- Consider reporting false positives to help improve our validation logic
Getting Help
If you're still having trouble after reviewing this documentation:
- Check the error message details in your CLI output or project dashboard
- Review the file structure against platform-specific examples
- Ensure you're using the latest version of the CLI tool
- Contact support with the specific error code and file details