Feedback on Unity3D Integration and Smart Strings – Placeholder Handling Issues

Hi Crowdin Team,

I’m currently evaluating your platform in combination with the Unity3D integration and have encountered an issue that affects the translatability and safety of Unity’s Smart Strings.

Unity uses string formats like:

You have {connections:plural:no active connections|one active connection|{} active connections}

Unfortunately, Crowdin doesn’t consistently recognize or protect these plural placeholders correctly. In many cases, translators can accidentally break the syntax because the system doesn’t automatically lock or highlight the relevant parts as non-editable.

I’m aware that custom parser rules can be applied for formats like JSON, but Unity uses CSV by default, where such configuration is either not possible or very limited. Also, SRX segmentation doesn’t solve this, since it only affects how text is split into segments—not how placeholders are handled or protected.

My questions:

  1. Is there a way to protect plural placeholders in CSV files—possibly through specific configuration or formatting approaches?

  2. Are there any plans to improve the Unity3D integration to better support Smart Strings and their syntax (e.g. with a Unity-specific parser)?

  3. Do you have any best practices or recommended workarounds to allow safe translation of plural strings without risking damage to the underlying syntax?

I appreciate your support and look forward to your suggestions.

Best regards, Marco

Hi @marcosimon

Thanks a lot for bringing this up — you’re absolutely right about the current limitation.

This isn’t a case of Crowdin not supporting plural forms per se, but rather a limitation of the CSV file format itself, which doesn’t natively support pluralization structures or allow for proper placeholder protection. Unfortunately, the Unity plugin currently only supports CSV, due to the Unity Localization package’s architecture and its preferred import/export format.

It’s a bit of a deadlock situation at the moment. We’ll check in with our developer team to see if there are any viable workarounds or improvements we could implement on our side. We will let you know when we get feedback from them