Skip to content

Instantly share code, notes, and snippets.

@eduardolundgren
Created August 10, 2011 17:25
Show Gist options
  • Save eduardolundgren/1137514 to your computer and use it in GitHub Desktop.
Save eduardolundgren/1137514 to your computer and use it in GitHub Desktop.
Liferay.Localization
var Localization = {
get: A.cached(
function(xmlDoc, nodeName, languageId) {
if (isString(xmlDoc)) {
xmlDoc = A.DataType.XML.parse(xmlDoc);
}
languageId = languageId || themeDisplay.getLanguageId();
var label = Liferay.Localization.getByLanguageId(xmlDoc, nodeName, languageId);
if (!label) {
var findDefLocaleSchema = Liferay.Localization._getSchema('locale', '@default-locale');
var rootDefLocale = Liferay.Localization._mergeSchema(findDefLocaleSchema, xmlDoc);
if (rootDefLocale.locale) {
label = Liferay.Localization.getByLanguageId(xmlDoc, rootDefLocale.locale);
}
}
return label;
}
),
getByLanguageId: function(xmlDoc, nodeName, languageId) {
var instance = this;
languageId = languageId || themeDisplay.getLanguageId();
var schema = instance._getSchema('label', nodeName + '[@language-id="' + languageId + '"]');
var localizedLabel = instance._mergeSchema(schema, xmlDoc);
return localizedLabel.label;
},
_getSchema: function(key, locator) {
var instance = this;
return {
resultListLocator: 'root',
resultFields: [
{
key: key,
locator: locator
}
]
};
},
_mergeSchema: function(schema, xmlDoc, index) {
var instance = this;
return A.DataSchema.XML.apply(schema, xmlDoc).results[0] || {};
}
};
Liferay.Localization = Localization;
----------
USAGE:
var languageId = themeDisplay.getDefaultLanguageId();
Liferay.Localization.get(xml, 'EventTitle', languageId);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment