
BBTranslations::addTranslation
Description
In BBj 9.0 and higher, this method adds a translations to the translations.
Syntax
Return Value |
Method |
void |
addTranslation(string key, string value) |
void |
addTranslation(string key, HashMap values) |
Parameters
Variable |
Description |
key |
Specifies the key of the translation to add. |
value |
Specifies the value of the translation to add. |
values |
Specifies a HashMap where the key is the Java locale and the value is the translation value. |
Return Values
None.
Remarks
When specifying a HashMap the keys and values should look like the following:
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!)
Example
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