localization.py
上传用户:ghyvgy
上传日期:2009-05-26
资源大小:547k
文件大小:2k
源码类别:

其他游戏

开发平台:

Python

  1. '''
  2. localization.py - demonstrates the use of lookups and contant modules to implement a solution
  3.                   for localization
  4. '''
  5. import lookup
  6. import constantmodule
  7. currentLanguage = 1
  8. def SetCurrentLanguage(newLanguage):
  9.   '''
  10.   Allows changing of language by passing one of the contants from the
  11.   language module as the newLangauge arg
  12.   '''
  13.   import language
  14.   assert language.lookup.has_key(newLanguage), 'Not a know language!'
  15.   
  16.   global currentLanguage
  17.   currentLanguage = newLanguage
  18.   
  19. def Lookup(localizedItemId):
  20.   '''
  21.   Returns the unicode text for the specified localized item, in the
  22.   current language
  23.   '''
  24.   global currentLanguage
  25.   import localizedtext
  26.   if localizedtext.lookup.has_key((currentLanguage, localizedItemId)):
  27.     return localizedtext.lookup[(currentLanguage, localizedItemId)][0]
  28.   else:
  29.     return U'Item not translated yet'
  30. def Test():
  31.   '''
  32.   Demonstrates the localization functionality, including switching
  33.   language on the fly
  34.   '''
  35.   
  36.   # setup the data, including unicode strings for translated text
  37.   languageData = [ (1, 'English'), (2, 'French'), (3, 'Korean') ]
  38.   localizedItemData = [ (1, 'Button OK'), (2, 'Button Cancel') ]
  39.   localizedTextData = [ (1, 1, U'OK'), (1, 2, U'Cancel'), (2, 1, U'Oui'), (2, 2, U'Non')]
  40.   
  41.   # build a localizeditem contatn module and import it
  42.   constantmodule._BuildInMemoryConstantModule('localizeditem', localizedItemData)
  43.   import localizeditem
  44.   
  45.   # build a language constant module and a lookup, then import it
  46.   constantmodule._BuildInMemoryConstantModule('language', languageData)
  47.   tempDict = lookup._CreateDict(languageData)
  48.   lookup._BuildInMemoryDictLookup('language', tempDict)
  49.   import language
  50.   
  51.   # build a localized text lookup
  52.   tempDict = lookup._CreateMultiWayKeyDict(localizedTextData, 2)
  53.   lookup._BuildInMemoryDictLookup('localizedtext', tempDict)
  54.   import localizedtext
  55.   
  56.   print'n'
  57.   print 'Current language is %s' % language.lookup[currentLanguage]
  58.   print 'The word for OK is %s' % Lookup(localizeditem.BUTTON_OK)
  59.   print 'The word for Cancel is %s' % Lookup(localizeditem.BUTTON_CANCEL)
  60.   
  61.   print 'nChanging languagen'
  62.   SetCurrentLanguage(language.FRENCH)
  63.   
  64.   print 'Current language is %s' % language.lookup[currentLanguage]
  65.   print 'The word for OK is %s' % Lookup(localizeditem.BUTTON_OK)
  66.   print 'The word for Cancel is %s' % Lookup(localizeditem.BUTTON_CANCEL)
  67.   
  68. if __name__ == '__main__':
  69.   Test()
  70.     
  71.