Språk är svårt

Jeff Atwood skriver om turkiska som ett exempel på hur svårt det är att hantera språkberoende i applikationer, se "Coding Horror: What's Wrong With Turkey?".

Problem med "turkiska I" har jag själv en del intressanta minnen av från ett globalt projekt. Vi byggde en produktdatabas som skulle hantera all produktinformation för en koncern, det inkluderade översatt information på ca 30 språk om mer än 2000 produkter. Ett av de lustigare problemen vi råkade på var att det var ruskigt svårt att veta om man hade ett fel eller inte... Men kundens turkiska kontor kom med massor av viktiga felrapporter under utvecklingen.

Det är nämligen skapligt svårt att se på en text om den innehåller felaktiga tecken när man inte fattar ett dugg av vad det står. Eftersom jag fortfarande inte har lärt mig turkiska så får jag illustrera med ett påhittat exempel: "ınteger" eller "ÿnteger" vilket är korrekt turkiska? Antagligen inget av det just i mitt fall, men det var den typen av fel som dök upp i texten, mycket ofta spårade vi problemen till att webbläsare inte alltid gjorde som man tänkt sig i fråga om teckenkodning. Eftersom applikationen hade börjat som en svensk lokal databas och växte från den utgångspunkten tog det lite tid innan jag hade fått det mesta av teckenkodningen under kontroll och all hantering hade konverterats till UTF-8.

Det är också lite intressant att Jeff nämner amerikanernas bekväma synsätt att det vore enklare om att körde InvariantCulture, dvs "amerikanska". Själv har jag varit med såpass länge att jag minns hur korkade vi i europa tyckte att amerikanerna var när de hade begränsat ASCII teckensettet till 127 tecken på 7-bitars ord... Inte mycket utrymme för resten av världen där inte.

Mina lärdomar efter det projektet är att kodningen av text i applikationer numera ska vara UTF-8 eller full Unicode rakt igenom och att det som stoppas in i en databas ska hamna i nvarchar-typade kolumner.

En hel del rekommenderad läsning finns på Microsofts Global Development and Computing Portal.


Comment Section

Comments are closed.