Mono Support An Issue of a Slug in URL When It is Thai Language 

Viewed 16497 time(s), 6 post(s), 11/8/2013 10:56:14 PM - by bkkmono
11/9/2013 3:20:06 PM
434 Reputation 51 Total posts

An issue will occur if I use Thai words in a title field and tag field to add a new blog or a new topic in a discussion board, those Thai words will be used as the slug in its URL. The problem is that those thai words will be incomplete, its vowels will be removed, its  characters will be only used in the slug of the blog URL.
For example, 
I inputted Thai words in the title field to create a blog post like this: ข้อมูลทั่วไป  but the slug in the URL of this blog post would be "http://mydomain.com/blog/post/blogname/5/ขอมลทวไป". All vowels would be removed. As a result, this URL is unreadable in Thai language.
This problem is not for slugs in blog URLs only, but it also occurred if I use Thai words in tags and topic titles for discussion boards, their tags in blog post URLs or even topic names in URLs are incomplete.

How to solve this problem?

1
11/9/2013 6:42:03 AM
15993 Reputation 2214 Total posts

Hi,

 We will probably have to work on this together if tha id an option?. We will provide you with MonoX seo parser so you can take a look at.

Stay tuned we will contact you soon.

Regards

2
11/9/2013 2:02:14 PM
434 Reputation 51 Total posts

OK, thanks for your response. I am waiting you.

3
11/11/2013 12:31:25 PM
15993 Reputation 2214 Total posts

Hi,

I think that we have manage to fix this issue on our own so please find the MonoSoftware Framework assemblies attached. You should just unzip this to bin folder and give it a try.

Let us know if this path is working properly ?

Thanks

4
11/12/2013 1:07:17 AM
434 Reputation 51 Total posts

I already replaced the existing dll files with the attached files but I get an error, my site does not work at all as the attached image below.


This event has been logged and will be addressed by the maintenance department. We appreciate your patience.
 
Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type) at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext) at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext) at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments) at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg) at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent) at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType) at System.Runtime.Serialization.DataContract.IsAssemblyFriendOfSerialization(Assembly assembly) at System.Runtime.Serialization.DataContract.IsTypeVisibleInSerializationModule(Type type) at System.Runtime.Serialization.DataContract.IsMemberVisibleInSerializationModule(MemberInfo member) at System.Runtime.Serialization.DataContract.FieldRequiresMemberAccess(FieldInfo field) at System.Runtime.Serialization.ClassDataContract.RequiresMemberAccessForWrite(SecurityException securityException) at System.Runtime.Serialization.XmlFormatWriterGenerator.CriticalHelper.GenerateClassWriter(ClassDataContract classContract) at System.Runtime.Serialization.ClassDataContract.get_XmlFormatWriterDelegate() at System.Runtime.Serialization.ClassDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context) at System.Runtime.Serialization.NetDataContractSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph, DataContract contract, Hashtable surrogateDataContracts) at System.Runtime.Serialization.NetDataContractSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph) at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.WriteObject(XmlDictionaryWriter writer, Object graph) at MonoSoftware.Core.NETDataContractSerializer.Serialize(Object o) at MonoSoftware.LLBLGen.LookupDefinition.#0Q() at MonoSoftware.Web.Workspace.Lookup`1.GetInstance(Object parentId, SelectQueryDefinition selectQueryDefinition, IEntityField2 displayField, LookupUIType preferredUIType) at MonoSoftware.MonoX.DAL.EntityClasses.PrivacyLevelEntity.get_PrivacyLevelFriends() at MonoSoftware.MonoX.Repositories.EventRepository.GetEventsFilter(EventArguments args) at MonoSoftware.MonoX.Repositories.EventRepository.GetEvents(EventArguments args) at MonoSoftware.MonoX.ModuleGallery.SocialNetworking.Events.FetchEventCollection(EventArguments args, PagedCollectionContainer bindContainer) at MonoSoftware.MonoX.ModuleGallery.SocialNetworking.Events.BindData() at MonoSoftware.MonoX.ModuleGallery.SocialNetworking.Events.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


5
11/12/2013 12:20:56 PM
15993 Reputation 2214 Total posts

This issue is related to .NET 4.5 breaking change in backward compatibility. Please try the attached assemblies which are built differently. 

Regards

6
This is a demo site for MonoX. Please visit Mono Software for more info.