Changeset 3362

Show
Ignore:
Timestamp:
09/12/07 15:46:37 (1 year ago)
Author:
paul
Message:

Prettied up the dLocalize test.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/dabo/dLocalize.py

    r3303 r3362  
    1 # -*- coding: utf-8 -*- 
    2  
    3 import sys 
     1import sys 
    42import locale 
    53import os 
     
    109107    print "locale.getlocale():", locale.getlocale() 
    110108    print "_defaultLanguage, _defaultEncoding:", _defaultLanguage, _defaultEncoding 
    111     stringsToTranslate = ("Hey", "Application finished.") 
    112     for lang in set(_languageAliases.values()): 
    113         print "Setting language to '%s'." % (lang) 
     109    stringsToTranslate = ("File", "Edit", "Help", "Application finished.") 
     110    max_len = {} 
     111    for s in stringsToTranslate: 
     112        max_len[s] = len(s) 
     113    translatedStrings = [] 
     114    for lang in sorted(set(_languageAliases.values()) - set(("en",))): 
     115        translatedStringsLine = [lang] 
    114116        setLanguage(lang) 
    115117        for s in stringsToTranslate: 
    116             print "Translating '%s':" % s, _(s) 
     118            translated = _(s) 
     119            translatedStringsLine.append(translated) 
     120            max_len[s] = max(max_len[s], len(translated)) 
     121        translatedStrings.append(tuple(translatedStringsLine)) 
    117122 
     123    def line(strings=None): 
     124        if strings is None: 
     125            # print the boundary 
     126            lin =  "+----" 
     127            for s in stringsToTranslate: 
     128                lin += "+-%s-" % ("-" * max_len[s]) 
     129            lin += "+" 
     130        else: 
     131            # print the text 
     132            lin = '' 
     133            for idx, s in enumerate(strings): 
     134                if idx == 0: 
     135                    len_s = 2 
     136                else: 
     137                    len_s = max_len.get(stringsToTranslate[idx-1], len(s)) 
     138                s = s.decode("utf-8") 
     139                lin += "| %s " % s.ljust(len_s) 
     140            lin += "|" 
     141        return lin 
     142 
     143    print line() 
     144    print line(("en",) + stringsToTranslate) 
     145    print line() 
     146    for l in translatedStrings: 
     147        setLanguage(l[0]) 
     148        print line(l) 
     149    print line() 
     150