[ 
https://issues.apache.org/jira/browse/OFBIZ-5316?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13772006#comment-13772006
 ] 

Taher Alkhateeb commented on OFBIZ-5316:
----------------------------------------

Hi Jacques,

I know I am a bit late in submitting my work, but this is one of the things I'm 
introducing in the unified BIRT library discussed earlier. I show below some 
code snippets for your reference.

{code:javascript}
// uiLabels populated directly from within the script
uiLabelMap = FastMap.newInstance();
uiLabelMap.putAll(UtilProperties.getResourceBundleMap("CommonUiLabels", 
reportContext.getLocale()));
uiLabelMap.putAll(UtilProperties.getResourceBundleMap("AccountingUiLabels", 
reportContext.getLocale()));
uiLabelMap.putAll(UtilProperties.getResourceBundleMap("PartyUiLabels", 
reportContext.getLocale()));
uiLabelMap.putAll(UtilProperties.getResourceBundleMap("ProductUiLabels", 
reportContext.getLocale()));
uiLabelMap.putAll(UtilProperties.getResourceBundleMap("OrderUiLabels", 
reportContext.getLocale()));
uiLabelMap.putAll(UtilProperties.getResourceBundleMap("WorkEffortUiLabels", 
reportContext.getLocale()));
uiLabelMap.putAll(UtilProperties.getResourceBundleMap("ContentUiLabels", 
reportContext.getLocale()));

// A function to set report orientation (right to left or left to right) based 
on the locale provided
function setReportSettingsBasedOnLocale(localeString) {
    if (localeString.indexOf("ar") >= 0) { // TODO add other RTL locales
        designHandle.setProperty("bidiLayoutOrientation","rtl");
    } else {
        designHandle.setProperty("bidiLayoutOrientation","ltr");
    }
}

// entity labels extraction during "fetch" event
function getEntityLabelOnLocale(resourceName, entityName, entityValue) {
    if(entityValue == null) {
        return uiLabelMap.get("Undefined");
    } else {
        return UtilProperties.getMessage(
                resourceName,
                entityName+".description."+entityValue,
                reportContext.getLocale()
                );
    }
}

// date rendering based on locale
function getDateFormat(localeString) {
    if (localeString.indexOf("ar") >= 0) {
        return new SimpleDateFormat("yyyy/MM/dd", reportContext.getLocale());
    } else {
        return new SimpleDateFormat("dd/MM/yyyy", reportContext.getLocale());
    }
}
{code}

I am actually doing more like how to apply both entityLabels and uiLabels on 
the reports and how to do that consistently (the idea of the shared library) 
because in entityLabels, you have to prepare the values during the fetch event, 
whereas for the uiLabels you must actually bind it to the report layout with 
special DynamicText fields.

This is all done in my own reports, but sifting through all the existing 
reports for OFBiz is proving to be a bit lenghty especially when trying to be 
consistent across all reports. I guess this is why it is taking me some time to 
deliver stuff.

So anyway, I thought I'd share if it helps!
                
> Internationalisation of Birt reports
> ------------------------------------
>
>                 Key: OFBIZ-5316
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-5316
>             Project: OFBiz
>          Issue Type: Sub-task
>          Components: specialpurpose/birt
>    Affects Versions: SVN trunk
>            Reporter: Jacques Le Roux
>            Priority: Minor
>             Fix For: SVN trunk
>
>
> Currently the Birt reports are not internationalised/localised. There is a 
> way to do that it's explained here 
> http://wiki.eclipse.org/BIRT/FAQ/Internationalization. I don't think we need 
> to tweak to use uilabel files. We use the same way in the POS.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to