rem Demo on how to use BBTranslator, BBTranslationBundle, and BBTranslations
rem Use statements
use ::bbtranslator.bbj::BBTranslator
use ::bbtranslator.bbj::BBTranslationBundle
use ::bbtranslator.bbj::BBTranslations
use java.lang.System
use java.util.Locale
use java.util.HashMap
use java.util.Collection
use java.util.Iterator
rem Declares
declare BBjAPI api!
declare BBjString bundleDir$
declare BBjString bundleName$
declare BBTranslationBundle bundle!
declare BBTranslator germanTranslator!
declare Collection translationsKeys!
declare Iterator translationsIter!
declare BBjString translationsKey$
declare BBjString translation$
declare BBTranslations enTranslations!
declare HashMap newTranslations!
rem Get a reference to the BBjAPI
api! = BBjAPI()
rem Set the bundle name
bundleName$ = "sample"
rem Use the translations directory for the bundle directory
bundleDir$ = System.getProperty("basis.BBjHome") + "/utils/translations/"
rem Create the bundle
bundle! = BBTranslationBundle.getBundle(bundleName$,bundleDir$)
rem There are mutliple ways to add a translation
rem Add a translation one at a time to a particlular locale in the translation bundle.
enTranslations! = bundle!.getTranslations(new Locale("en"))
print "Adding Key1/Value1 individually..."
enTranslations!.addTranslation("Key1","Value1")
print "Adding Key2/Value2 individually..."
enTranslations!.addTranslation("Key2","Value2")
rem Add new translations via a hashmap to a particlular locale in the translation bundle
print "Adding Key3/Value3 and Key4/Key5 at once per HashMap..."
newTranslations! = new HashMap()
newTranslations!.put("Key3","Value3")
newTranslations!.put("Key4","Value4")
enTranslations!.addTranslations(newTranslations!)
rem Add a translation to multiple locales in the translation bundle
print "Adding the key Hello with values for multiple locales..."
declare HashMap newTranslation!
newTranslation! = new HashMap()
newTranslation!.put(new Locale("en"),"hello")
newTranslation!.put(new Locale("es"),"hola")
newTranslation!.put(new Locale("it"),"cioa")
newTranslation!.put(new Locale("fr"),"bonjour")
newTranslation!.put(new Locale("nl"),"hallo")
newTranslation!.put(new Locale("de"),"guten tag")
newTranslation!.put(new Locale("sv"),"god dag")
bundle!.addTranslation("hello",newTranslation!)
rem Save the bundle
bundle!.save()
print "Translation bundle saved to: ",bundle!.getDirectory()
rem Get a translation from the bundle
rem A translator can be used for convience to get translations or a single translation from
rem a translation bundle on a per locale basis
germanTranslator! = BBTranslator.getInstance(bundleName$,"de",null(),bundleDir$)
rem To get a single translation
translationKey$ = "hello"
translation$ = germanTranslator!.getTranslation(translationKey$)
print "The German translation for key [",translationKey$,"] is [",translation$,"]"
rem To get all translation for a locale
translationsKeys! = enTranslations!.getKeys()
translationsIter! = translationsKeys!.iterator()
while translationsIter!.hasNext()
translationKey$ = str(translationsIter!.next())
translation$ = entranslations!.getTranslation(translationKey$)
print "The English translation for key [",translationKey$,"] is [",translation$,"]"
wend
|