Search Unity

TextMesh Pro RTL Text Mesh Pro. Free and Open-Source plugin to add Persian and Arabic support to TextMeshPro

Discussion in 'Unity UI (uGUI) & TextMesh Pro' started by mnarimani, Jun 12, 2018.

  1. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    Hi. I finally created a plugin to add Persian and Arabic support to TextMeshPro.

    GitHub

    Features
    Realtime RTL Text
    You don't need to convert, copy and paste texts. Start writing and texts will be converted right away.



    Rich Text
    All Text Mesh Pro's tags are available in RTL Text Mesh Pro



    RTL InputField (See known issues)
    Realtime InputField is supported.



    Multiline
    Yes, This plugin has no problem with multiline RTL texts.



    AutoSize
    Auto Font Size is fully supported.



    English, Farsi and Arabic digits are supported


    Arabic Tashkeel
    Arabic tashkeel are supported. Also you can turn them off or on for every RTL Text Mesh Pro object.



    To see usage instructions visit github page.

    Known Issues
    • Multiline has issues with English text.
    • InputField (and anything that was designed to work with TextMeshProUGUI script) will not work.
      Why it doesn't work? We need to override the text property of TextMeshProUGUI. But the text property is not defined virtual. You need to manually make the property virtual.
      • Open TMP_Text.cs from TextMeshPro source code
      • add virtual keyword to text property.
      • Open RTLTextMeshPro.cs and uncomment the top line where it says
        //#define RTL_OVERRIDE
      • Now you can use InputFields (and Dropdowns in future)
    Have fun!
     
    Last edited: Jul 26, 2019
  2. GrassWhooper

    GrassWhooper

    Joined:
    Mar 25, 2016
    Posts:
    41
    i am using it for arabic, and i must say, you sir are a legend :) this worked like magic.
     
    mnarimani likes this.
  3. stgs73

    stgs73

    Joined:
    Mar 23, 2015
    Posts:
    44
    would love it if this could get officially incorporated.
     
    mnarimani and GrassWhooper like this.
  4. classicalguss

    classicalguss

    Joined:
    Apr 15, 2018
    Posts:
    6
    Our Input Fields are not working. I followed your steps of making the text virual in TMP_ Text.cs
    And then proceed to enable
    #define RTL_OVERRIDE
    on the file RTLTextMeshPro.cs

    We keep getting this error when we want to write something on the input field.
    IndexOutOfRangeException: Index was outside the bounds of the array.
    TMPro.TMP_InputField.GenerateCaret (UnityEngine.UI.VertexHelper vbo, UnityEngine.Vector2 roundingOffset) (at /Users/ghassanbarghouti/Library/Unity/cache/packages/packages.unity.com/com.unity.textmeshpro@1.2.4/Scripts/Runtime/TMP_InputField.cs:2817)
    TMPro.TMP_InputField.OnFillVBO (UnityEngine.Mesh vbo) (at /Users/ghassanbarghouti/Library/Unity/cache/packages/packages.unity.com/com.unity.textmeshpro@1.2.4/Scripts/Runtime/TMP_InputField.cs:2771)
    TMPro.TMP_InputField.UpdateGeometry () (at /Users/ghassanbarghouti/Library/Unity/cache/packages/packages.unity.com/com.unity.textmeshpro@1.2.4/Scripts/Runtime/TMP_InputField.cs:2716)
    TMPro.TMP_InputField.Rebuild (UnityEngine.UI.CanvasUpdate update) (at /Users/ghassanbarghouti/Library/Unity/cache/packages/packages.unity.com/com.unity.textmeshpro@1.2.4/Scripts/Runtime/TMP_InputField.cs:2670)
    UnityEngine.UI.CanvasUpdateRegistry.PerformUpdate () (at /Users/builduser/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/CanvasUpdateRegistry.cs:150)
    UnityEngine.Canvas:SendWillRenderCanvases()

    Kindly advise.
     
  5. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    Which version of the library are you using?
    Can you please check if the same thing happens with TextMeshPro 1.3 and RTLTMPro 3.1.1?
     
  6. classicalguss

    classicalguss

    Joined:
    Apr 15, 2018
    Posts:
    6
    The newest version of TextMeshPro is 1.2.2 though
     
  7. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    I'm referring to the PackageManager version:
    upload_2018-10-9_18-36-41.png
     
  8. classicalguss

    classicalguss

    Joined:
    Apr 15, 2018
    Posts:
    6
    Alright thanks, I'll check it out
     
  9. classicalguss

    classicalguss

    Joined:
    Apr 15, 2018
    Posts:
    6
    Thank you, it's working almost correctly. One problem I'm having is that I want to display the Arabic ي but instead I'm getting this ى (It's probably Persian). The Farsi checkbox can't be turned off, and I'm trying to disable it from the code but it also doesn't work (It only does when I re-click it while on play mode and on the editor).

    Kindly advise.
     
  10. classicalguss

    classicalguss

    Joined:
    Apr 15, 2018
    Posts:
    6
    I forced it to always be false from the Library, and it's working now.
     
  11. Lukas_Andriejunas

    Lukas_Andriejunas

    Unity Technologies

    Joined:
    Aug 19, 2016
    Posts:
    7
    Hi,

    Thank you for providing a plugin which fixes the issue of certain fonts not working correctly with TextMesh Pro.

    I have created a bug report about these fonts not being rendered out-of-the-box with TextMesh Pro.
    The progress of the report can be followed here: https://issuetracker.unity3d.com/product/unity/issues/guid/1090143/

    Regards,
    Lukas A.
    Unity QA Team
     
    MGGDev and mnarimani like this.
  12. Amin_Shiravand

    Amin_Shiravand

    Joined:
    Aug 1, 2018
    Posts:
    2
    Hi
    Dear @sorencoder the plugin you have written has an issue with HTML tags in Arabic and Persian Texts.
    For example texts like the one below:
    "سلام" + "<color=#A7DF40FF>" + یونیتی+ "</color>";
    don't display correctly.
    could you please have a check and help me if possible.
     
  13. bsweileh

    bsweileh

    Joined:
    Jun 1, 2018
    Posts:
    3
    This looks great! I have a question though:

    When typing Arabic text into the RTL text input box (as shown above), is it possible to make the Arabic text input appear joined together? My question is referring to how the text appears in the Unity editor inspector window - not the rendered TextMeshPro element in the scene view. Please advise. Thanks.
     
  14. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    Hi guys,
    Sorry for late reply, I have been very busy these days.

    There's a bug in tag detection that it doesn't detect tags with uppercase characters. It means that you need to write your color codes as #a7df40ff instead of #A7DF40FF.
    This bug will be fixed in next release.

    No. It's really hard and complicated to fix the text as you write it.
    In order for it to work, we need to track which characters have been fixed and which characters have not so we don't refix characters.
     
  15. Amin_Shiravand

    Amin_Shiravand

    Joined:
    Aug 1, 2018
    Posts:
    2
    Thank u so much @sorenc for your help
    I wish best for you.
     
  16. unity_Ns1DKIxVuImm6w

    unity_Ns1DKIxVuImm6w

    Joined:
    Dec 31, 2018
    Posts:
    1
    Hi Dear,

    Thanks for creating this marvelous plugin.

    I had followed all the steps but couldn't find any RTLTMP menu in GameObject/UI/*****

    Kindly help me to sort out this. New Picture (2).jpg
     
  17. drordoit

    drordoit

    Joined:
    Sep 7, 2013
    Posts:
    36
    Hi ,
    Thanks for this great plug.
    If I have a specific cheater that don't connect to the other character's, what can be the problem? is it a missing Unicode? Or something else?
    Thanks Dror
     
  18. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    Hi,
    Please check if you have any compile errors or not. Compilation error causes unity to stop compiling RTLTMPro files.
    However, You can add
    RTLTextMeshPro
    script to an empty gameobject to turn it into a text gameobject.

    If it shows the character as a box it means that the unicode is missing, otherwise it's more likely that plugin doesn't know that character. Post the whole sentence and a picture of the character shown correctly.
     
  19. drordoit

    drordoit

    Joined:
    Sep 7, 2013
    Posts:
    36
    the sentence is "اضغطوا على المفتاح الطويل." . As you can see the " على." isn't connected.
    upload_2019-2-19_22-35-15.png
     

    Attached Files:

  20. YaserDev

    YaserDev

    Joined:
    Aug 17, 2016
    Posts:
    19
    @drordoit I have tried to solve the linked "Alef Maqsora" problem, the only thing that worked is using a font that the fontAssetCreator can generate the linked Alef Maqsoora character from, the following fonts have worked for me:
    -Changa
    -Markazi
    I think this has to do with the range you set in the fontAssetCreator, so don't forget to set the following range for the Arabic language:
    0600-06FF,0750-077F,08A0-08FF,FB50-FDFF,FE70-FEFF,10E60-10E7F,1EE00-1EEFF

    @sorencoder
    Thanks for providing this plugin for free and open sourcing it.
    I have a question: how did you manage to get the Auto Font Size feature to work?
    Updating the text whenever the Rect-Transform size changes didn't work for me.
    I just wanna know since I'm trying to build a custom solution while relying on the default TMPro component.
    Any help would be appreciated.
     
  21. AAK_Lebanon

    AAK_Lebanon

    Joined:
    May 30, 2015
    Posts:
    59
    Hi, I have used this plug-in before and it was worked, however, today a started using Unity 2019.1 and TMPPro version 2.0.0 with the latest release of your plug-in from Github, I also added the 'virtual' keyword to the TMP_Text.cs and uncommented '#define RTL_OVERRIDE' in the RTLTextMeshPro.cs (as described in the introduction), however, I am unable to enter any test in the RTL Input Box, I always get this error:

    NullReferenceException: Object reference not set to an instance of an object
    RTLTMPro.RTLTextMeshProEditor.OnInspectorGUI () (at Assets/RTLTMPro/Scripts/Editor/RTLTextMeshProEditor.cs:50)
    UnityEditor.UIElements.InspectorElement+<CreateIMGUIInspectorFromEditor>c__AnonStorey1.<>m__0 () (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorElement.cs:445)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)

    Also I always get this warning and I don't know how to fix it (or if I can fix or should fix it):

    The character used for Underline and Strikethrough is not available in font asset [al-mujahed free SDF].
    UnityEngine.Debug:LogWarning(Object, Object)
    TMPro.TMP_Text:GetSpecialCharacters(TMP_FontAsset) (at Library/PackageCache/com.unity.textmeshpro@2.0.0/Scripts/Runtime/TMP_Text.cs:5451)
    TMPro.TextMeshProUGUI:LoadFontAsset() (at Library/PackageCache/com.unity.textmeshpro@2.0.0/Scripts/Runtime/TMPro_UGUI_Private.cs:561)
    TMPro.TextMeshProUGUI:OnValidate() (at Library/PackageCache/com.unity.textmeshpro@2.0.0/Scripts/Runtime/TMPro_UGUI_Private.cs:294)
    UnityEditor.SerializedObject:ApplyModifiedProperties()
    TMPro.EditorUtilities.TMP_BaseEditorPanel:OnInspectorGUI() (at Library/PackageCache/com.unity.textmeshpro@2.0.0/Scripts/Editor/TMP_BaseEditorPanel.cs:272)
    RTLTMPro.RTLTextMeshProEditor:OnInspectorGUI() (at Assets/RTLTMPro/Scripts/Editor/RTLTextMeshProEditor.cs:60)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)


    and also this one:


    The character used for Ellipsis is not available in font asset [al-mujahed free SDF].
    UnityEngine.Debug:LogWarning(Object, Object)
    TMPro.TMP_Text:GetSpecialCharacters(TMP_FontAsset) (at Library/PackageCache/com.unity.textmeshpro@2.0.0/Scripts/Runtime/TMP_Text.cs:5463)
    TMPro.TextMeshProUGUI:LoadFontAsset() (at Library/PackageCache/com.unity.textmeshpro@2.0.0/Scripts/Runtime/TMPro_UGUI_Private.cs:561)
    TMPro.TextMeshProUGUI:OnValidate() (at Library/PackageCache/com.unity.textmeshpro@2.0.0/Scripts/Runtime/TMPro_UGUI_Private.cs:294)
    UnityEditor.SerializedObject:ApplyModifiedProperties()
    TMPro.EditorUtilities.TMP_BaseEditorPanel:OnInspectorGUI() (at Library/PackageCache/com.unity.textmeshpro@2.0.0/Scripts/Editor/TMP_BaseEditorPanel.cs:272)
    RTLTMPro.RTLTextMeshProEditor:OnInspectorGUI() (at Assets/RTLTMPro/Scripts/Editor/RTLTextMeshProEditor.cs:60)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)

    Any help will be appreciated ...
     
    nimaestakhri likes this.
  22. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    Auto size is handled by text mesh pro itself.

    @AAK_Lebanon
    I have not checked the compatibility of the plugin with Unity 2019.1.
    Will take a look when I get a chance.
     
    AAK_Lebanon likes this.
  23. AAK_Lebanon

    AAK_Lebanon

    Joined:
    May 30, 2015
    Posts:
    59
    @sorencoder thanks for you and for your plugin, it is really useful.

    actually, I investigated in the code and I discovered a solution for me (or a problem, I don't know:)
    this 3 lines of code on the OnEnable in RTLTextMeshProEditor.cs will always return null:

    Code (CSharp):
    1.  havePropertiesChangedProp = serializedObject.FindProperty("m_havePropertiesChanged");
    2.             inputSourceProp = serializedObject.FindProperty("m_inputSource");
    3.             isInputPasingRequiredProp = serializedObject.FindProperty("m_isInputParsingRequired");
    So I changed them in TMP_Text.cs and added the serialized attribute (that it was commented)

    now it works, but I still have the warning, and I can't get the Arabic letter on the screen and I think it is because of my font. I don't know why many many Arabic fonts do not have (I think) the right Unicode mapping...

    however, I don't know if there is a more clean solution, because now, on every update for the TextMesh Pro, I will lose these modifications...
     
    mnarimani likes this.
  24. cmerheb

    cmerheb

    Joined:
    May 29, 2019
    Posts:
    1
    @YaserDev Hey Yaser, we have the same problem as @drordoit. The one with the " على." isn't connected.
    We tried changing the fonts to Changa and Markazi and we added the ranges you mentioned but none worked..

    If you take a look at the ArabicSupport script, you'll see many lines commented out that contain the AlefMaksora.. Could it be a problem from the script/system itself ?

    Is there any solid fix for this connector problem?
     
    YaserDev likes this.
  25. YaserDev

    YaserDev

    Joined:
    Aug 17, 2016
    Posts:
    19
    @cmerheb Hey there, I couldn't solve the Alef-Maqsora problem with this plugin (RTL TextMeshPro).
    I think that there are certain fonts, which for some reasons, do work, but I honestly forgot which worked and which didn't, I suggest trying different fonts (get as many as you can from Google Fonts) and make sure to include the range.

    Regarding the ArabicSupport script, the problem doesn't lie within it because the Alef-Maqsora problem won't arise If you try to Fix a text on a UI Text component yourself (by calling the Fix function from ArabicSupport.cs).

    If you couldn't get it to work on RTL TMPro, I suggest implementing a custom solution instead of relying on RTL TMPro, by having a custom script that corrects the Arabic text on TextMeshPro components.

    I have an article written in Arabic that covers this in details, you can find it here.
    If you don't know Arabic, you can use the web-page google translate tool.
    It isn't hard to implement, and works well, with the caveat that using many TextMeshPro objects at the same time may hinder performance, because of the Canvas.ForceUpdateCanvases function call, I talked about it in detail in the article.

    And here you can find all the scripts used.

    Good luck.
     
    Last edited: Sep 5, 2019
  26. sinasarparast

    sinasarparast

    Joined:
    Jun 18, 2017
    Posts:
    2
    Your Known Issues section to solve InputField and DropDown does not work anymore. TMP_text.cs is not c# file and embedded in .DLL file. What is your solution?
     
  27. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,193
    The source code is still included and can be changed. Package Manager simply compiles it into assemblies. The local package is included in Library/PackageCache/... and the global package is in ...\AppData\Local\Unity Cache\cache\packages\packages.unity.com
     
    YaserDev likes this.
  28. miledaoun90

    miledaoun90

    Joined:
    Aug 28, 2017
    Posts:
    2
    why can't you just mark the text property as virtual and submit an update to the library?
     
    Last edited: Jun 10, 2019
  29. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,193
    I'll make the text property virtual in the next package release.
     
    AAK_Lebanon, igrok31 and mnarimani like this.
  30. AceEX7

    AceEX7

    Joined:
    Feb 2, 2014
    Posts:
    10
    @Stephan_B any idea on when will the next package be released? it makes using unity cloud build really difficult at the moment
     
  31. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    3,193
    Next package should be released soon. I most likely will release a preview first.

    Can you provide more insight on why this makes it difficult with Unity Cloud Build? I don't use UCB so I am curious.
     
    YaserDev likes this.
  32. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    In order to use InputField or DropDown feature, You need to change the source of TextMesh Pro and add virtual keyword to
    text
    property and enable overriding in RTLTMPro package.
    This change only affects your local copy. If you use cloud build, build fails because text property is not marked as virtual in there but the code wants to override it.
     
    AceEX7 likes this.
  33. AceEX7

    AceEX7

    Joined:
    Feb 2, 2014
    Posts:
    10
    as @sorencoder mentioned making text property virtual will solve my problem, if you can include that part in the next preview i'll be very grateful
     
    YaserDev likes this.
  34. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    Huge performance improvement on the way.

    Text conversion is now allocation free. (Setting the converted text to
    text
    property of TextMeshPro generates garbage though).

    Here is performance of 21 RTLTextMeshPro instances with a 416 characters (including rich text tags).

    RTLTMPro v3.2.4:
    upload_2019-7-25_3-25-29.png


    New Version:
    upload_2019-7-25_3-32-3.png

    As you can see, RTLSupport.FixRTL doesn't allocate anything.
    Also I have not squeezed it enough yet. The final performance will be a bit higher.
     
  35. Zilk

    Zilk

    Joined:
    May 10, 2014
    Posts:
    265
    Is there anyway to get the RTL fixes working with the regular TMProUGUI labels? I'm on a tight deadline and don't want to change all labels in the game.

    Perhaps some hack to the current TMPro_Text class or something to run the UpdateText() functions? It's ok if it breaks next time I update TMPro, I just have to get it working for now :)
     
    aurelienpic likes this.
  36. aurelienpic

    aurelienpic

    Joined:
    Jan 25, 2014
    Posts:
    6
    I would need the same thing. I have tons of TMP Text components in my game and I don't know an easy way to replace them all and their references at the same time.
     
  37. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    @Stephan_B is working on something that will address this issue.
    The plan is to make the RTLTMPro plugin work alongside TextMeshPro instead of replacing it.
    In future versions, you will be able to add a component to TextMeshPro objects and suddenly they will start to "work" with RTL languages.
     
    aurelienpic likes this.
  38. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    In the mean time, if you modify `text` property to return the code below instead of m_text field, it should work:
    Code (CSharp):
    1.  
    2. var input = RTLSupport.FixRTL(m_text, fixTags, preserveNumbers, farsi);
    3. return input.Reverse().ToArray().ArrayToString();
    4.  
    replace fixTags, preserveNumbers and farsi with your desired values.
     
    aurelienpic likes this.
  39. churi24

    churi24

    Joined:
    Sep 17, 2013
    Posts:
    72
    Hi!, I'm using your solution and works perfect on Unity 2019, but in Unity 2017 I had some problems with characters like this: هي In Unity 2017 I've got this هى instead. Any idea? I cant update my project to Unity 2019, so the solution must be for Unity 2017.
     
  40. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    Hi.
    Try to uncheck "Farsi" in RTL Settings
     
    churi24 likes this.
  41. flashframe

    flashframe

    Joined:
    Feb 10, 2015
    Posts:
    392
    What a life saver, thank you!
     
  42. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    I finally got the time to do get the new version of RTLTMPro out. It contains great performance optimizations
    (Zero Allocation Text Conversion).
    I have uploaded the new version to github page as pre-release.
    Backup your projects before upgrading.
     
    flashframe likes this.
  43. flashframe

    flashframe

    Joined:
    Feb 10, 2015
    Posts:
    392
    USER=1334298]@mnarimani[/USER]

    Thanks for making this extension! I'm using V1 (the latest version uses C# 7.1 features, and we're still using .NET 3.5 so can't update).

    I use tags like this a lot in my text:

    And the parser can't detect them. Any tips on how to add support for those? I'm not well versed in RegEx which I think V1 is using?

    Thanks so much!
     
  44. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    Sorry for inconvenience. Most of new C# features in new version is "default" for initializing structs. You can simply replace "default" with "default(*put the type here*)".

    However, to fix your problem at hand, replace the regex pattern of PairedTagFixer with this:
    (?<closing></(?<tagName>\p{Ll}+)>)(?<content>(.|\n)+?)(?<opening><\k<tagName>=?(\p{Ll}|\p{N}|-|\+|#|%)*>)
     
    flashframe likes this.
  45. flashframe

    flashframe

    Joined:
    Feb 10, 2015
    Posts:
    392
    Thank you! That's great. I must learn RegEx syntax at some point.

    I did actually attempt to switch the new C# features, but the one I was unsure of was this

    Code (CSharp):
    1. [MethodImpl(MethodImplOptions.AggressiveInlining)]
    I found this discussion on Stack Overflow

    https://stackoverflow.com/questions/43060376/aggressiveinlining-doesnt-exist

    And tried the suggestion there, but the Arabic text didn't seem to parse correctly. At least it looks different to V1. I am not a native speaker, so it's hard for me to tell, but I know that the results with V1 are correct. It's probably not related to aggressive inlining, and I'd look into it more, but we are on a deadline to finish localisation this weekend for the game, so sticking with V1 for now.

    Thanks again :)
     
  46. flashframe

    flashframe

    Joined:
    Feb 10, 2015
    Posts:
    392
    @mnarimani Could I ask for one more bit of help with the tag detection? Currently the regex doesn't support nested tags. Is there a way to add that?
     
  47. mnarimani

    mnarimani

    Joined:
    Mar 27, 2017
    Posts:
    211
    Unfortunately it cannot be done. It was a mistake from me to use Regex as rich text parser. Mathematically it is not possible to parse xml/html tags with Regex.
    In the latest version, I have replaced the regex with a simple parser which is supposed to work with nested tags. I will try to back-port it to the first version of the plugin.
     
    flashframe likes this.
  48. flashframe

    flashframe

    Joined:
    Feb 10, 2015
    Posts:
    392
    Ok, that makes sense. I will have a look at the new version and try to back port myself. Might give the new version another go. Thanks!
     
  49. flashframe

    flashframe

    Joined:
    Feb 10, 2015
    Posts:
    392
    Hey @mnarimani!

    I noticed that in order to support nested tags, line 87 of RichTextFixer.cs needs to be

    Code (CSharp):
    1. i = tagEnd - 1;
    I updated to the latest version and just replaced the .Net 4.5 stuff and it's working great now, thanks!
     
    Last edited: Sep 14, 2019
  50. fabioramos8

    fabioramos8

    Joined:
    Jun 23, 2017
    Posts:
    2
    Hey @mnarimani

    Thanks for making this plugin completely free, it fits what I need for my project perfectly!

    Only issues I've experienced so far is with self-closing rich text tags (e.g. <space=10px>) and multiline bidirectional texts (where the order of words can be incorrect). My use case is user generated texts via chat and forum (similar to twitch.tv and reddit.com).

    Are you aware of this and do you know any possible workarounds?