Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Web Application Translation, methods and tools [closed]

I've developed a web application. It needs to be translated to languages other than English in the future, and ideally the translators shouldn't need to know HTML/JS/C++ to provide the translation. The server side of the web application is written in C++ and the majority of the localised text is in the HTML files.

My question is: What approaches are there to translating web applications? -

  • Are there any existing tools that would enable a translator who doesn't understand HTML to translate a site?
  • Should I write an application that extracts the localised text from a html file and can re-substitute translated text?
  • Do you just provide the html file to your translators to be localised?

I'm aware the question isn't strictly programming related but the solution may involve programming and it may require some software engineering.

like image 605
CiscoIPPhone Avatar asked Mar 23 '10 10:03

CiscoIPPhone


People also ask

What are the 4 types of translation?

The four most common types of translation are as follows: Literary translation. Professional translation. Technical Translation. Administrative translation.

What are the 3 types of translation?

Jakobson's On Linguistic Aspects of Translation (1959, 2000) describes three kinds of translation: intralingual (within one language, i.e. rewording or paraphrase), interlingual (between two languages), and intersemiotic (between sign systems).


2 Answers

Having some experience in localization of the applications, I can tell you the following:

  • Any translator you can rely on, will not have problems with HTML (assuming that the translation would not break the design)
  • Most professional translators use translation memory applications (i.e., Transit, Trados) that can parse many document formats (XML, HTML, PDF, .DOC, etc.) and separate markup from content. They will deliver a translated copy in the same format as original.
  • All messages to be translated that are used within your programming code should be isolated in resource bundles. Almost all popular web-application frameworks have the corresponding means. The bundles are usually just plain text files with key/value pairs. Translator should not see the code.
  • Messages in resource bundles can be formatting strings for printf-like functions. In that case, you should document the expected 'fillers'.
  • When you provide resource bundles to translators, be sure to attach instructions how to get the texts in the application interface, so that the translator would know the context of the given message.
  • If any labels should not exceed a length, you should inform about it in advance.
  • If the application uses company-specific terminology, you should provide a glossary, so that the translation would be consistent.
  • Do your best to get rid of texts on images. Those will be your head ache.
  • If you translate from English, you might face the necessity to introduce additional logic to cover the grammatical features of the target language (correct case, gender)
  • it is very smart to store user manual text and similar texts in simple XML format (a subset of XHTML, DOCBOOK) and apply an XSL transformation for resulting HTML. It allows easily outsource the translation and validate the format of the document.

The list is certainly not web-application specific.

like image 134
newtover Avatar answered Oct 23 '22 22:10

newtover


First of all, keep every translatable unit of text in a uniquely identified div tag on each web page. Store the content in a database table that has the div id and the language id as the key and a text field for the content. Allow basic HTML markup, but no script or styling.

Have a page on your system to set language preferences, and store it on the user's profile, or in a long-lasting cookie in the user's browser.

Have your web application render the unique div or span tags from the database based on the language preference.

You can have a separate application that displays the default text (e.g. English) and then has a text area for a translator to type in a translation. Once it is typed in, that div tag can be rendered in the language of the user's choice.

Another big thing to watch for is that some content is layout-independent, such as paragraphs, blog postings, etc. Other content is very layout-dependent such as menu items, headers, etc. Also, some languages such as Hebrew and Arabic go from right to left instead of left to right. That may affect how the translated content is laid out. In such situations, you may want a separate layout template for those languages, and the selection of the template would be driven by the language preference.

like image 41
Jay Godse Avatar answered Oct 24 '22 00:10

Jay Godse