Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDNN Open Source...DNN Open Source...Provider and Extension ForumsProvider and Extension ForumsLanguage PacksLanguage PacksWhat ideas are floating around?What ideas are floating around?
Previous
 
Next
New Post
9/2/2005 6:28 AM
 
I would like to suggest the following option of dynamic content localization for discussion.
 
1.Add "Locale" column to core tables
2.Modify The SqlHelper.ExecuteNonQuery() methods which are used to access and modify database so to pass the locale value to stored procedures by default
3.Modify stored procedures targeting multilingual content
4.Add second language selector to the skin that will set value of  "editlanguage" cookie to the selected locale and redirect to current page then to obtain content of the module in edit or settings mode in selected language.
 
Regards, Germans
 
New Post
9/6/2005 3:55 AM
 
germansr wrote
I would like to suggest the following option of dynamic content localization for discussion.
 
1.Add "Locale" column to core tables
2.Modify The SqlHelper.ExecuteNonQuery() methods which are used to access and modify database so to pass the locale value to stored procedures by default
3.Modify stored procedures targeting multilingual content
4.Add second language selector to the skin that will set value of  "editlanguage" cookie to the selected locale and redirect to current page then to obtain content of the module in edit or settings mode in selected language.
 
Regards, Germans

I've considered this path and ran into the following issue. The solution requires a table record for every different locale (not necessarily all locales in the portal, but for each different locale you'd like to add data). For simple tables (like the Text/HTML module) this could well work, but in more complex situations (like my document mgt module) I end up copying an enormous amount of data which sits redundant in various records. This also requires elaborate procedures to make sure it stays synchronized. In the end you realize the data is not well normalized that way. So my critique is: you end up with tables that are not adequately normalized.

Peter


Peter Donker
Bring2mind http://www.bring2mind.net
Home of the Document Exchange,
the professional document management solution for DNN
 
New Post
9/6/2005 5:58 AM
 
germansr wrote
I would like to suggest the following option of dynamic content localization for discussion.
 
1.Add "Locale" column to core tables
2.Modify The SqlHelper.ExecuteNonQuery() methods which are used to access and modify database so to pass the locale value to stored procedures by default
3.Modify stored procedures targeting multilingual content
4.Add second language selector to the skin that will set value of  "editlanguage" cookie to the selected locale and redirect to current page then to obtain content of the module in edit or settings mode in selected language.

Germans, you asked for feedback on your proposal. I already did a sum up in Peter's thread in this forum about advantages and disadvantages of various solutions. I see the following appliying to your suggerstions:

pro: no additional tables needed - on the first view. But as we do not need to translate numeric values and some strings as names, several tables have to be split up into base table and localizable table.This applies for all core module tables with localizable data as well as all according tables of custom modules.

con: how to determine base language? if you have a portal with contributions by users in various languages, you need to have to determine the original language, date of translation, in order to check, which might be outdated, and so on.

There are other open questions: how to realize a central interface to a translation service? For a big web site with huge ML content translation cost will be a major criteria. Therefore an efficient interface to translation services is needed (as long as automated translation is not sufficient). The interface needs to determine, wh texts are untranslated or updates and need (partial) retranslation. Admins and Authors must have an option to determine, which translations are needed.

With these picture in mind, content localization gets more complex than your solution maight be able to handle.

Sebastian


Cheers from Germany,
Sebastian Leupold

dnnWerk - The DotNetNuke Experts   German Spoken DotNetNuke User Group

Speed up your DNN Websites with TurboDNN
 
New Post
9/6/2005 6:36 AM
 

Peter, the purpose of the proposed solution is to make core DNN modules and tabs localizable (dynamic content and settings).

In a complex case I prefer to store localized values of properties as resources in a single text field in xml format like this:

<properties>
    <property name="DocumentDescription" lang="en-US">
        <value>Description in English</value>
    </property>
    <property name="DocumentDescription" lang="ru-RU">
        <value>Description in Russian</value>
    </property>
</properties>

I've implemented this approach in my GR-MLXHTML module to have a single HTML code for all languages that can be localized on the fly by assigning resource values to HTML elements having resourcekey attribute.

Regards, Germans

 
New Post
9/7/2005 3:55 AM
 
Sebastian,
 
Issue 1: split table into base and localizable.
 
We could consider the following option:
 
a.Add new table ResourceCollectionShemas that will have following columns:
 ResourceCollectionSchemaId
 ResourceCollectionSchema
 
 The purposes of ResourceCollectionSchema are:
 - map columns of a table to resources at ResourceCollection
 - map custom properties to resources at ResourceCollection
 - list custom resourcekeys for those value are stored at ResourceCollection
   (for the case when we have single HTML code for all languages stored in DesktopHtml field at HtmlText table, for example)
 
 ResourceCollectionSchema example:
 
 <resourcecollectionschema>
    <resource key="TabName" type="tablecolumn" columnname="TabName" />
    <resource key="TabDescription" type="tablecolumn" columnname="Description" />
 </resourcecollectionschema>
 

b.Add new table ResourceCollections that will have following columns:
 ResourceCollectionId
 ResourceCollection
 Locale
 
 ResourceCollection for ru-RU example:
 <resourcecollection>
  <data name="TabName">
   <value>Name in Russian</value>
  </data>
  <data name="TabDescription">
   <value>Description in Russian</value>
  </data>
 </resourcecollection>
 
c.Add the following columns to core tables - ResourceCollectionId and ResourceCollectionSchemaId.
 

Issue 2: central interface to a translation service
 
a.I believe it is core LanguageEditor that can also be used to modify data at ResourceCollection field. I've already implemented similar logic into my GR-Localization skinobject.
 
b.The other option could (should?) be to use core Edit and Settings views to modify ResourceCollection resources mapped to content and settings
 
Regards, Germans
 
Previous
 
Next
HomeHomeDNN Open Source...DNN Open Source...Provider and Extension ForumsProvider and Extension ForumsLanguage PacksLanguage PacksWhat ideas are floating around?What ideas are floating around?


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out