From 018f8418add85ef377f887ac92408a4e5d89e58c Mon Sep 17 00:00:00 2001 From: Santhosh Thottingal Date: Mon, 24 Sep 2012 23:15:48 -0700 Subject: [PATCH] Internationalize Mediawiki ULS extension Change-Id: I17d6c4d6322e30c96a48788dd34dc11530b809b5 --- i18n/en.json | 25 ++++++++++++ i18n/ml.json | 24 +++++++++++ i18n/qqq.json | 24 +++++++++++ resources/js/ext.uls.displaysettings.js | 51 +++++++++++++++--------- resources/js/ext.uls.init.js | 44 ++++++++++---------- resources/js/ext.uls.languagesettings.js | 3 +- 6 files changed, 132 insertions(+), 39 deletions(-) create mode 100644 i18n/en.json create mode 100644 i18n/ml.json create mode 100644 i18n/qqq.json diff --git a/i18n/en.json b/i18n/en.json new file mode 100644 index 00000000..c9b35092 --- /dev/null +++ b/i18n/en.json @@ -0,0 +1,25 @@ +{ +"@metadata": { + "authors": [ + "Santhosh Thottingal" + ], + "message-documenation": "qqq", +}, +"ext-uls-display-settings-title": "Display settings", +"ext-uls-display-settings-title-short": "Display", +"ext-uls-display-settings-desc": "Set language used for menus and fonts.", +"ext-uls-undo-language-tooltip-text": "Language changed from $1", +"ext-uls-language-settings-title": "Language settings", +"ext-uls-language-settings-apply": "Apply settings", +"ext-uls-language-settings-cancel": "Cancel", +"ext-uls-display-settings-font-settings": "Font settings", +"ext-uls-display-settings-ui-language": "Language for display", +"ext-uls-webfonts-settings-title": "Download font when needed", +"ext-uls-webfonts-settings-info": "Webfonts will be downloaded for displaying text in special scripts.", +"ext-uls-webfonts-settings-info-link": "More information", +"ext-uls-webfonts-select": "Select prefered font", +"ext-uls-webfonts-select-for": "Select font for $1", +"ext-uls-webfonts-select-for-ui-info": "Font used for user interface", +"ext-uls-webfonts-select-for-content-info": "Font used for content", +"ext-uls-back-to-display-settings": "Back to display settings" +} diff --git a/i18n/ml.json b/i18n/ml.json new file mode 100644 index 00000000..9c8506aa --- /dev/null +++ b/i18n/ml.json @@ -0,0 +1,24 @@ +{ +"@metadata": { + "authors": [ + "Santhosh Thottingal" + ] +}, +"ext-uls-display-settings-title": "പ്രദർശന ക്രമീകരണങ്ങൾ", +"ext-uls-display-settings-title-short": "പ്രദർശനം", +"ext-uls-display-settings-desc": "ഫോണ്ടുകളും സമ്പർക്കമുഖത്തിന്റെ ഭാഷയും ക്രമീകരിക്കുക.", +"ext-uls-undo-language-tooltip-text": "ഭാഷ മാറിയിരിക്കുന്നു. പഴയ ഭാഷ: $1", +"ext-uls-language-settings-title": "ഭാഷാ ക്രമീകരണങ്ങൾ", +"ext-uls-language-settings-apply": "ശരി", +"ext-uls-language-settings-cancel": "വേണ്ട", +"ext-uls-display-settings-ui-language": "സമ്പർക്കമുഖത്തിന്റെ ഭാഷ", +"ext-uls-display-settings-font-settings": "ഫോണ്ടു് ക്രമീകരണങ്ങൾ", +"ext-uls-webfonts-settings-title": "ആവശ്യമുള്ളപ്പോൾ ഫോണ്ടു് ഡൌൺലോഡ് ചെയ്യുക", +"ext-uls-webfonts-settings-info": "പ്രത്യേക ലിപികളിലെ ഉള്ളടക്കം പ്രദർശിപ്പിക്കാനായി വെബ്ഫോണ്ടുകൾ ഡൌൺലോഡ് ചെയ്യും", +"ext-uls-webfonts-settings-info-link": "കൂടുതൽ വിവരങ്ങൾ", +"ext-uls-webfonts-select": "ഇഷ്ടമുള്ള ഫോണ്ടുകൾ തിരഞ്ഞെടുക്കുക", +"ext-uls-webfonts-select-for": "$1 ഭാഷയ്ക്കുള്ള ഫോണ്ടു്", +"ext-uls-webfonts-select-for-ui-info": "സമ്പർക്കമുഖത്തിനുള്ള ഫോണ്ടു്", +"ext-uls-webfonts-select-for-content-info": "ഉള്ളടക്കത്തിനുള്ള ഫോണ്ടു്", +"ext-uls-back-to-display-settings": "പ്രദർശന ക്രമീകരണങ്ങളിലേയ്ക്ക് മടങ്ങുക" +} \ No newline at end of file diff --git a/i18n/qqq.json b/i18n/qqq.json new file mode 100644 index 00000000..3521e86b --- /dev/null +++ b/i18n/qqq.json @@ -0,0 +1,24 @@ +{ +"@metadata": { + "authors": [ + "Santhosh Thottingal" + ] +}, +"ext-uls-display-settings-title": "Display settings title text", +"ext-uls-display-settings-title-short": "A short name for display settings screen. Can be a translation for 'Display'", +"ext-uls-display-settings-desc": "Short description about display settings.", +"ext-uls-undo-language-tooltip-text": "Text for the tooltip appearing when language is changed. $1 is the previous language acronym.", +"ext-uls-language-settings-title": "Title text for language settings screen", +"ext-uls-language-settings-apply": "Label for apply settings button in language settings screen", +"ext-uls-language-settings-cancel": "Lable for cancel buton in language settings screen", +"ext-uls-display-settings-font-settings": "Subsection title for font settings", +"ext-uls-display-settings-ui-language": "Sub section title for selecting UI language", +"ext-uls-webfonts-settings-title": "Short title for enabling webfonts", +"ext-uls-webfonts-settings-info": "Webfonts will be downloaded for displaying text in special scripts.", +"ext-uls-webfonts-settings-info-link": "More information link text for webfonts", +"ext-uls-webfonts-select": "Title for selecting fonts", +"ext-uls-webfonts-select-for": "Label for font selector dropdown. $1 is a language name", +"ext-uls-webfonts-select-for-ui-info": "Information displayed under font selector", +"ext-uls-webfonts-select-for-content-info": "Information displayed under font selector", +"ext-uls-back-to-display-settings": "Text for the link shown when language selector is accessed from language settings." +} diff --git a/resources/js/ext.uls.displaysettings.js b/resources/js/ext.uls.displaysettings.js index 482db2f2..417456e6 100644 --- a/resources/js/ext.uls.displaysettings.js +++ b/resources/js/ext.uls.displaysettings.js @@ -20,21 +20,24 @@ ( function ( $, mw, undefined ) { "use strict"; - var template = '

Display settings

' - + '

Language used for menus

' + var template = '
' + + '

' + + '
' + + '

' + '
' + '
' - + '

Font settings

' + + '
' + + '

' + '
' + '
' + '' + '
' + '
' - + '
Select your preferred fonts
' + + '
' + '
' + '
' + '' @@ -46,14 +49,15 @@ + '
' + '
' + '
' - + '' - + '' + + '' + + '' + '
' + '
'; // FIXME i18n and too much hardcoding. var DisplaySettings = function ( $parent ) { - this.name = "Display"; - this.description = "Set language used for menus and fonts"; + this.name = $.i18n( "ext-uls-display-settings-title-short" ); + this.description = $.i18n( "ext-uls-display-settings-desc" ); this.$template = $( template ); this.uiLanguage = this.getUILanguage(); this.contentLanguage = this.getContentLanguage(); @@ -153,8 +157,8 @@ top: that.$parent.top, onReady: function ( uls ) { var $back = $( '' ).prop( 'href', '#' ) - .prop( 'title', 'Back to display settings' ) - .text( '← Back to display settings' ); // FIXME i18n + .data( 'i18n','ext-uls-back-to-display-settings' ) + .i18n(); $back.click( function () { uls.hide(); @@ -162,7 +166,9 @@ } ); uls.$menu.find( 'div.uls-title' ).append( $back ); - uls.$menu.find( 'div.uls-title h1' ).text( 'Select display language' ); + uls.$menu.find( 'div.uls-title h1' ) + .data( 'i18n','ext-uls-display-settings-ui-language' ) + .i18n(); }, onSelect: function ( langCode ) { that.uiLanguage = langCode; @@ -235,8 +241,12 @@ $fontSelector.append( $systemFont ); $systemFont.attr( 'selected', savedFont === 'system' || !savedFont ); var $fontLabel = this.$template.find( 'label#ui-font-selector-label' ); - $fontLabel.html( "Select font for " + $.uls.data.autonym( this.uiLanguage ) - + "
Used for menus
" ); + $fontLabel.html( '' + + $.i18n( 'ext-uls-webfonts-select-for', $.uls.data.autonym( this.uiLanguage ) ) + + '' + + '
' + + $.i18n( 'ext-uls-webfonts-select-for-ui-info' ) + + '
' ); }, /** @@ -263,8 +273,13 @@ $fontSelector.append( $systemFont ); $systemFont.attr( 'selected', savedFont === 'system' || !savedFont ); var $fontLabel = this.$template.find( '#content-font-selector-label' ); - $fontLabel.html( "Select font for " + $.uls.data.autonym( this.contentLanguage ) - + "
Used for content
" ); + $fontLabel.html( '' + + $.i18n( 'ext-uls-webfonts-select-for', + $.uls.data.autonym( this.contentLanguage ) ) + + '' + + '
' + + $.i18n( 'ext-uls-webfonts-select-for-content-info' ) + + '
' ); }, /** diff --git a/resources/js/ext.uls.init.js b/resources/js/ext.uls.init.js index 432cbd7c..af0545a6 100644 --- a/resources/js/ext.uls.init.js +++ b/resources/js/ext.uls.init.js @@ -87,30 +87,33 @@ }; $( document ).ready( function () { + var extensionPath = mw.config.get( 'wgExtensionAssetsPath' ) + + '/UniversalLanguageSelector/'; // i18n initialization var i18n = $.i18n( { - locale: currentLang + locale: currentLang, + messageLocationResolver: function ( locale ) { + return extensionPath + 'i18n/' + locale + '.json'; + } } ); - var extensionPath = mw.config.get( 'wgExtensionAssetsPath' ) + - '/UniversalLanguageSelector/'; + // localization for jquery.uls i18n.load( extensionPath + 'lib/jquery.uls/i18n/' + currentLang + ".json", currentLang ); - + // localization for mediaWiki ULS + i18n.load( extensionPath + 'i18n/' + currentLang + ".json", currentLang ); var $ulsTrigger = $( '.uls-trigger' ), previousLanguages = mw.uls.getPreviousLanguages() || [], previousLang = previousLanguages.slice( -1 )[0]; function displaySettings () { - var $displaySettingsTitle = $( '
' ) - .addClass( 'settings-title' ) - .text( 'Display settings' ), - $displaySettingsText = $( '' ) - .addClass( 'settings-text' ) - .text( 'Set language used for menus and fonts.' ), - $displaySettings = $( '
' ) - .addClass( 'display-settings-block' ) - .prop( 'id', 'display-settings-block' ) - .append( $displaySettingsTitle ) - .append( $displaySettingsText ); + var $displaySettingsTitle = $( '
' ) + .addClass( 'settings-title' ); + var $displaySettingsText = $( '' ) + .addClass( 'settings-text' ); + var $displaySettings = $( '
' ) + .addClass( 'display-settings-block' ) + .prop( 'id', 'display-settings-block' ) + .append( $displaySettingsTitle ) + .append( $displaySettingsText ); return $displaySettings; } @@ -168,11 +171,12 @@ fade: true, trigger: 'manual', title: function () { - var prevLangName = $.uls.data.autonym( previousLang ), - linkClass = 'uls-lang-link', - title = "Language changed from " + - prevLangName + ""; + var prevLangName = $.uls.data.autonym( previousLang ); + var linkClass = 'uls-lang-link'; + var prevLangLink = "" + + prevLangName + ""; + var title = $.i18n( "ext-uls-undo-language-tooltip-text", prevLangLink ); return title; } } ); diff --git a/resources/js/ext.uls.languagesettings.js b/resources/js/ext.uls.languagesettings.js index ff9a2eaa..90d204a0 100644 --- a/resources/js/ext.uls.languagesettings.js +++ b/resources/js/ext.uls.languagesettings.js @@ -24,7 +24,7 @@ '' + '
'; var settingsMenu = '
' + - '

Language settings

' + // TODO i18n + '

' + '
' + '
' + '
'; @@ -135,6 +135,7 @@ } ); } + this.$window.i18n(); this.shown = true; this.$window.show(); },