diff --git a/README.md b/README.md index cb099de..ba3e84b 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ $( '.uls-trigger' ).uls( { | onCancel | function to be handled when language selection is not done. ie. language selector is closed without selecting any | | showRegions | Regions to be shown in the language selector. Default: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'] | | itemsPerColumn | Number of languages per column. Default is 8 | +| languageDecorator | Callback function to be called when a language link is prepared - for custom decoration. Arguments: (a) the $language - the language link jQuery object (b) languageCode. The function can do any styling, changing properites etc on the passed link. See examples/decorator.html for example usage.| Features diff --git a/examples/decorator.html b/examples/decorator.html new file mode 100644 index 0000000..f7a36ed --- /dev/null +++ b/examples/decorator.html @@ -0,0 +1,41 @@ + + + + + Universal Language Selector + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/src/jquery.uls.core.js b/src/jquery.uls.core.js index 548a07b..8852d59 100644 --- a/src/jquery.uls.core.js +++ b/src/jquery.uls.core.js @@ -267,7 +267,8 @@ quickList: this.options.quickList, clickhandler: $.proxy( this.select, this ), source: this.$languageFilter, - showRegions: this.options.showRegions + showRegions: this.options.showRegions, + languageDecorator: this.options.languageDecorator } ).data( 'lcd' ); this.$languageFilter.languagefilter( { @@ -400,7 +401,8 @@ languages: $.uls.data.getAutonyms(), // Languages to be used for ULS, default is all languages quickList: null, // Array of language codes or function that returns such compact: false, // Show ULS in compact mode - showRegions: [ 'WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA' ] + showRegions: [ 'WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA' ], + languageDecorator: null // Callback function to be called when a language link is prepared - for custom decoration. }; // Define a dummy i18n function, if jquery.i18n not integrated. diff --git a/src/jquery.uls.lcd.js b/src/jquery.uls.lcd.js index 7d207bd..bcbdc8e 100644 --- a/src/jquery.uls.lcd.js +++ b/src/jquery.uls.lcd.js @@ -246,7 +246,9 @@ a.className = 'autonym'; li.appendChild( a ); - + if( this.options.languageDecorator ) { + this.options.languageDecorator( $( a ), code ); + } return li; }, @@ -386,7 +388,8 @@ $.fn.lcd.defaults = { languages: null, showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'], - itemsPerColumn: 8 + itemsPerColumn: 8, + languageDecorator: null }; $.fn.lcd.Constructor = LanguageCategoryDisplay;