CC-1960: Internationalize Airtime / Support translations
-enabled i18n for datatables, colVis, columnFilter, and fullCalendar -fixed typos in full-calendar-functions.js
This commit is contained in:
parent
57fdab0ddf
commit
f40d1f8dd4
|
@ -103,8 +103,9 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
||||||
$view->headScript()->appendFile($baseUrl.'/js/sprintf/sprintf-0.7-beta1.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
$view->headScript()->appendFile($baseUrl.'/js/sprintf/sprintf-0.7-beta1.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||||
$view->headScript()->appendFile($baseUrl.'/js/bootstrap/bootstrap.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
$view->headScript()->appendFile($baseUrl.'/js/bootstrap/bootstrap.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||||
$view->headScript()->appendFile($baseUrl.'/js/i18n/jquery.i18n.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
$view->headScript()->appendFile($baseUrl.'/js/i18n/jquery.i18n.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||||
$view->headScript()->appendFile($baseUrl.'/locale/translation-table?'.$CC_CONFIG['airtime_version'].rand(5, 10),'text/javascript');
|
$view->headScript()->appendFile($baseUrl.'/locale/general-translation-table?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||||
$view->headScript()->appendScript("$.i18n.setDictionary(lang_dict)");
|
$view->headScript()->appendFile($baseUrl.'/locale/datatables-translation-table?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||||
|
$view->headScript()->appendScript("$.i18n.setDictionary(general_dict)");
|
||||||
$view->headScript()->appendScript("var baseUrl='$baseUrl'");
|
$view->headScript()->appendScript("var baseUrl='$baseUrl'");
|
||||||
|
|
||||||
//scripts for now playing bar
|
//scripts for now playing bar
|
||||||
|
|
|
@ -5,11 +5,23 @@ class LocaleController extends Zend_Controller_Action
|
||||||
public function init()
|
public function init()
|
||||||
{
|
{
|
||||||
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
||||||
$ajaxContext->addActionContext('language-table', 'json')
|
$ajaxContext->addActionContext('general-translation-table', 'json')
|
||||||
|
->addActionContext('datatables-translation-table', 'json')
|
||||||
->initContext();
|
->initContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function translationTableAction()
|
public function datatablesTranslationTableAction()
|
||||||
|
{
|
||||||
|
$this->view->layout()->disableLayout();
|
||||||
|
$this->_helper->viewRenderer->setNoRender(true);
|
||||||
|
header("Content-type: text/javascript");
|
||||||
|
|
||||||
|
$baseUrl = Application_Common_OsPath::getBaseDir();
|
||||||
|
echo "var datatables_dict =" .
|
||||||
|
file_get_contents($_SERVER['DOCUMENT_ROOT'].$baseUrl.'/js/datatables/i18n/de_DE.txt');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function generalTranslationTableAction()
|
||||||
{
|
{
|
||||||
$translations = array (
|
$translations = array (
|
||||||
//common/common.js
|
//common/common.js
|
||||||
|
@ -196,6 +208,48 @@ class LocaleController extends Zend_Controller_Action
|
||||||
//already in schedule/add-show.js
|
//already in schedule/add-show.js
|
||||||
//"The show instance doesn't exist anymore!" => _("The show instance doesn't exist anymore!"),
|
//"The show instance doesn't exist anymore!" => _("The show instance doesn't exist anymore!"),
|
||||||
//schedule/schedule.js
|
//schedule/schedule.js
|
||||||
|
"January" => _("January"),
|
||||||
|
"February" => _("February"),
|
||||||
|
"March" => _("March"),
|
||||||
|
"April" => _("April"),
|
||||||
|
"May" => _("May"),
|
||||||
|
"June" => _("June"),
|
||||||
|
"July" => _("July"),
|
||||||
|
"August" => _("August"),
|
||||||
|
"September" => _("September"),
|
||||||
|
"October" => _("October"),
|
||||||
|
"November" => _("November"),
|
||||||
|
"December" => _("December"),
|
||||||
|
"Jan" => _("Jan"),
|
||||||
|
"Feb" => _("Feb"),
|
||||||
|
"Mar" => _("Mar"),
|
||||||
|
"Apr" => _("Apr"),
|
||||||
|
"May" => _("May"),
|
||||||
|
"Jun" => _("Jun"),
|
||||||
|
"Jul" => _("Jul"),
|
||||||
|
"Aug" => _("Aug"),
|
||||||
|
"Sep" => _("Sep"),
|
||||||
|
"Oct" => _("Oct"),
|
||||||
|
"Nov" => _("Nov"),
|
||||||
|
"Dec" => _("Dec"),
|
||||||
|
"today" => _("today"),
|
||||||
|
"day" => _("day"),
|
||||||
|
"week" => _("week"),
|
||||||
|
"month" => _("month"),
|
||||||
|
"Sunday" => _("Sunday"),
|
||||||
|
"Monday" => _("Monday"),
|
||||||
|
"Tuesday" => _("Tuesday"),
|
||||||
|
"Wednesday" => _("Wednesday"),
|
||||||
|
"Thursday" => _("Thursday"),
|
||||||
|
"Friday" => _("Friday"),
|
||||||
|
"Saturday" => _("Saturday"),
|
||||||
|
"Sun" => _("Sun"),
|
||||||
|
"Mon" => _("Mon"),
|
||||||
|
"Tue" => _("Tue"),
|
||||||
|
"Wed" => _("Wed"),
|
||||||
|
"Thu" => _("Thu"),
|
||||||
|
"Fri" => _("Fri"),
|
||||||
|
"Sat" => _("Sat"),
|
||||||
"Shows longer than their scheduled time will be cut off by a following show." => _("Shows longer than their scheduled time will be cut off by a following show."),
|
"Shows longer than their scheduled time will be cut off by a following show." => _("Shows longer than their scheduled time will be cut off by a following show."),
|
||||||
"Cancel Current Show?" => _("Cancel Current Show?"),
|
"Cancel Current Show?" => _("Cancel Current Show?"),
|
||||||
"Stop recording current show?" => _("Stop recording current show?"),
|
"Stop recording current show?" => _("Stop recording current show?"),
|
||||||
|
@ -221,7 +275,7 @@ class LocaleController extends Zend_Controller_Action
|
||||||
"Show Empty" => _("Show Empty"),
|
"Show Empty" => _("Show Empty"),
|
||||||
"Recording From Line In" => _("Recording From Line In"),
|
"Recording From Line In" => _("Recording From Line In"),
|
||||||
"Track preview" => _("Track preview"),
|
"Track preview" => _("Track preview"),
|
||||||
//already in library/spl/js
|
//already in library/spl.js
|
||||||
//"Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore."
|
//"Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore."
|
||||||
//=> _("Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore."),
|
//=> _("Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore."),
|
||||||
"Cannot schedule outside a show." => _("Cannot schedule outside a show."),
|
"Cannot schedule outside a show." => _("Cannot schedule outside a show."),
|
||||||
|
@ -230,7 +284,7 @@ class LocaleController extends Zend_Controller_Action
|
||||||
" Item." => _(" Item."),
|
" Item." => _(" Item."),
|
||||||
" Items." => _(" Items."),
|
" Items." => _(" Items."),
|
||||||
//already in library/library.js
|
//already in library/library.js
|
||||||
"Select" => _("Select"),
|
//"Select" => _("Select"),
|
||||||
"Select all" => _("Select all"),
|
"Select all" => _("Select all"),
|
||||||
"Select none" => _("Select none"),
|
"Select none" => _("Select none"),
|
||||||
"Remove overbooked tracks" => _("Remove overbooked tracks"),
|
"Remove overbooked tracks" => _("Remove overbooked tracks"),
|
||||||
|
@ -251,12 +305,15 @@ class LocaleController extends Zend_Controller_Action
|
||||||
"DJ" => _("DJ"),
|
"DJ" => _("DJ"),
|
||||||
"Program Manager" => _("Program Manager"),
|
"Program Manager" => _("Program Manager"),
|
||||||
"Guest" => _("Guest"),
|
"Guest" => _("Guest"),
|
||||||
|
//dataTables/ColVis.js
|
||||||
|
"Show / hide columns" => _("Show / hide columns"),
|
||||||
|
//datatables.columnFilter.js
|
||||||
|
"From {from} to {to}" => _("From {from} to {to}")
|
||||||
);
|
);
|
||||||
$this->view->layout()->disableLayout();
|
$this->view->layout()->disableLayout();
|
||||||
$this->_helper->viewRenderer->setNoRender(true);
|
$this->_helper->viewRenderer->setNoRender(true);
|
||||||
header("Content-type: text/javascript");
|
header("Content-type: text/javascript");
|
||||||
echo "var lang_dict=".json_encode($translations);
|
echo "var general_dict=".json_encode($translations);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -17,10 +17,10 @@ if (isset($this->obj)) {
|
||||||
</div>
|
</div>
|
||||||
<?php if (isset($this->obj)) : ?>
|
<?php if (isset($this->obj)) : ?>
|
||||||
<div class='btn-group pull-right'>
|
<div class='btn-group pull-right'>
|
||||||
<button class="btn btn-inverse" title='Shuffle playlist' type="button" id="playlist_shuffle_button">Shuffle</button>
|
<button class="btn btn-inverse" title='<?php echo _("Shuffle playlist") ?>' type="button" id="playlist_shuffle_button"><? echo _("Shuffle") ?></button>
|
||||||
</div>
|
</div>
|
||||||
<div class='btn-group pull-right'>
|
<div class='btn-group pull-right'>
|
||||||
<button class="btn btn-inverse" title='Save playlist' type="button" id="save_button"><? echo _("Save") ?></button>
|
<button class="btn btn-inverse" title='<?php echo _("Save playlist") ?>' type="button" id="save_button"><? echo _("Save") ?></button>
|
||||||
</div>
|
</div>
|
||||||
<div class='btn-group pull-right'>
|
<div class='btn-group pull-right'>
|
||||||
<button id="spl_delete" class="btn" role="button" aria-disabled="false"><? echo _("Delete") ?></button>
|
<button id="spl_delete" class="btn" role="button" aria-disabled="false"><? echo _("Delete") ?></button>
|
||||||
|
|
|
@ -465,6 +465,7 @@ var AIRTIME = (function(AIRTIME) {
|
||||||
/* Website */ { "sTitle" : $.i18n._("Website") , "mDataProp" : "info_url" , "bVisible" : false , "sClass" : "library_url" , "sWidth" : "150px" },
|
/* Website */ { "sTitle" : $.i18n._("Website") , "mDataProp" : "info_url" , "bVisible" : false , "sClass" : "library_url" , "sWidth" : "150px" },
|
||||||
/* Year */ { "sTitle" : $.i18n._("Year") , "mDataProp" : "year" , "bVisible" : false , "sClass" : "library_year" , "sWidth" : "60px" }
|
/* Year */ { "sTitle" : $.i18n._("Year") , "mDataProp" : "year" , "bVisible" : false , "sClass" : "library_year" , "sWidth" : "60px" }
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
"bProcessing": true,
|
"bProcessing": true,
|
||||||
"bServerSide": true,
|
"bServerSide": true,
|
||||||
|
@ -664,10 +665,7 @@ var AIRTIME = (function(AIRTIME) {
|
||||||
"sPaginationType": "full_numbers",
|
"sPaginationType": "full_numbers",
|
||||||
"bJQueryUI": true,
|
"bJQueryUI": true,
|
||||||
"bAutoWidth": false,
|
"bAutoWidth": false,
|
||||||
"oLanguage": {
|
"oLanguage": datatables_dict,
|
||||||
"sSearch": "",
|
|
||||||
"sLengthMenu": "Show _MENU_"
|
|
||||||
},
|
|
||||||
|
|
||||||
// R = ColReorder, C = ColVis
|
// R = ColReorder, C = ColVis
|
||||||
"sDom": 'Rl<"#library_display_type">f<"dt-process-rel"r><"H"<"library_toolbar"C>><"dataTables_scrolling"t><"F"ip>',
|
"sDom": 'Rl<"#library_display_type">f<"dt-process-rel"r><"H"<"library_toolbar"C>><"dataTables_scrolling"t><"F"ip>',
|
||||||
|
|
|
@ -154,12 +154,12 @@ function viewDisplay( view ) {
|
||||||
var calendarEl = this;
|
var calendarEl = this;
|
||||||
|
|
||||||
var select = $('<select class="schedule_change_slots input_select"/>')
|
var select = $('<select class="schedule_change_slots input_select"/>')
|
||||||
.append('<option value="1">'+$.i18n._("1m").'</option>')
|
.append('<option value="1">'+$.i18n._("1m")+'</option>')
|
||||||
.append('<option value="5">'+$.i18n._("5m").'</option>')
|
.append('<option value="5">'+$.i18n._("5m")+'</option>')
|
||||||
.append('<option value="10">'+$.i18n._("10m").'</option>')
|
.append('<option value="10">'+$.i18n._("10m")+'</option>')
|
||||||
.append('<option value="15">'+$.i18n._("15m").'</option>')
|
.append('<option value="15">'+$.i18n._("15m")+'</option>')
|
||||||
.append('<option value="30">'+$.i18n._("30m").'</option>')
|
.append('<option value="30">'+$.i18n._("30m")+'</option>')
|
||||||
.append('<option value="60">'+$.i18n._("60m").'</option>')
|
.append('<option value="60">'+$.i18n._("60m")+'</option>')
|
||||||
.change(function(){
|
.change(function(){
|
||||||
var slotMin = $(this).val();
|
var slotMin = $(this).val();
|
||||||
var opt = view.calendar.options;
|
var opt = view.calendar.options;
|
||||||
|
@ -424,7 +424,7 @@ function addQtipToSCIcons(ele){
|
||||||
if($(ele).hasClass("progress")){
|
if($(ele).hasClass("progress")){
|
||||||
$(ele).qtip({
|
$(ele).qtip({
|
||||||
content: {
|
content: {
|
||||||
text: $.i18n.("Uploading in progress...")
|
text: $.i18n._("Uploading in progress...")
|
||||||
},
|
},
|
||||||
position:{
|
position:{
|
||||||
adjust: {
|
adjust: {
|
||||||
|
@ -442,13 +442,13 @@ function addQtipToSCIcons(ele){
|
||||||
}else if($(ele).hasClass("soundcloud")){
|
}else if($(ele).hasClass("soundcloud")){
|
||||||
$(ele).qtip({
|
$(ele).qtip({
|
||||||
content: {
|
content: {
|
||||||
text: $.i18n.("Retreiving data from the server..."),
|
text: $.i18n._("Retreiving data from the server..."),
|
||||||
ajax: {
|
ajax: {
|
||||||
url: baseUrl+"/Library/get-upload-to-soundcloud-status",
|
url: baseUrl+"/Library/get-upload-to-soundcloud-status",
|
||||||
type: "post",
|
type: "post",
|
||||||
data: ({format: "json", id : id, type: "file"}),
|
data: ({format: "json", id : id, type: "file"}),
|
||||||
success: function(json, status){
|
success: function(json, status){
|
||||||
this.set('content.text', $.i18n.("The soundcloud id for this file is: ")+json.sc_id);
|
this.set('content.text', $.i18n._("The soundcloud id for this file is: ")+json.sc_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -468,13 +468,13 @@ function addQtipToSCIcons(ele){
|
||||||
}else if($(ele).hasClass("sc-error")){
|
}else if($(ele).hasClass("sc-error")){
|
||||||
$(ele).qtip({
|
$(ele).qtip({
|
||||||
content: {
|
content: {
|
||||||
text: $.i18n.("Retreiving data from the server..."),
|
text: $.i18n._("Retreiving data from the server..."),
|
||||||
ajax: {
|
ajax: {
|
||||||
url: baseUrl+"/Library/get-upload-to-soundcloud-status",
|
url: baseUrl+"/Library/get-upload-to-soundcloud-status",
|
||||||
type: "post",
|
type: "post",
|
||||||
data: ({format: "json", id : id, type: "show"}),
|
data: ({format: "json", id : id, type: "show"}),
|
||||||
success: function(json, status){
|
success: function(json, status){
|
||||||
this.set('content.text', $.i18n.("There was error while uploading to soundcloud.")+"<br>"+$.i18n._("Error code: ")+json.error_code+
|
this.set('content.text', $.i18n._("There was error while uploading to soundcloud.")+"<br>"+$.i18n._("Error code: ")+json.error_code+
|
||||||
"<br>"+$.i18n._("Error msg: ")+json.error_msg+"<br>");
|
"<br>"+$.i18n._("Error msg: ")+json.error_msg+"<br>");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -548,7 +548,7 @@ function checkEmptyShowStatus(e) {
|
||||||
//Alert the error and reload the page
|
//Alert the error and reload the page
|
||||||
//this function is used to resolve concurrency issue
|
//this function is used to resolve concurrency issue
|
||||||
function alertShowErrorAndReload(){
|
function alertShowErrorAndReload(){
|
||||||
alert($.i18n.("The show instance doesn't exist anymore!"));
|
alert($.i18n._("The show instance doesn't exist anymore!"));
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -262,6 +262,58 @@ function createFullCalendar(data){
|
||||||
agenda: 'H:mm{ - H:mm}',
|
agenda: 'H:mm{ - H:mm}',
|
||||||
month: 'H:mm{ - H:mm}'
|
month: 'H:mm{ - H:mm}'
|
||||||
},
|
},
|
||||||
|
monthNames: [
|
||||||
|
$.i18n._('January'),
|
||||||
|
$.i18n._('February'),
|
||||||
|
$.i18n._('March'),
|
||||||
|
$.i18n._('April'),
|
||||||
|
$.i18n._('May'),
|
||||||
|
$.i18n._('June'),
|
||||||
|
$.i18n._('July'),
|
||||||
|
$.i18n._('August'),
|
||||||
|
$.i18n._('September'),
|
||||||
|
$.i18n._('October'),
|
||||||
|
$.i18n._('November'),
|
||||||
|
$.i18n._('December')
|
||||||
|
],
|
||||||
|
monthNamesShort: [
|
||||||
|
$.i18n._('Jan'),
|
||||||
|
$.i18n._('Feb'),
|
||||||
|
$.i18n._('Mar'),
|
||||||
|
$.i18n._('Apr'),
|
||||||
|
$.i18n._('May'),
|
||||||
|
$.i18n._('Jun'),
|
||||||
|
$.i18n._('Jul'),
|
||||||
|
$.i18n._('Aug'),
|
||||||
|
$.i18n._('Sep'),
|
||||||
|
$.i18n._('Oct'),
|
||||||
|
$.i18n._('Nov'),
|
||||||
|
$.i18n._('Dec')
|
||||||
|
],
|
||||||
|
buttonText: {
|
||||||
|
today: $.i18n._('today'),
|
||||||
|
month: $.i18n._('month'),
|
||||||
|
week: $.i18n._('week'),
|
||||||
|
day: $.i18n._('day')
|
||||||
|
},
|
||||||
|
dayNames: [
|
||||||
|
$.i18n._('Sunday'),
|
||||||
|
$.i18n._('Monday'),
|
||||||
|
$.i18n._('Tuesday'),
|
||||||
|
$.i18n._('Wednesday'),
|
||||||
|
$.i18n._('Thursday'),
|
||||||
|
$.i18n._('Friday'),
|
||||||
|
$.i18n._('Saturday')
|
||||||
|
],
|
||||||
|
dayNamesShort: [
|
||||||
|
$.i18n._('Sun'),
|
||||||
|
$.i18n._('Mon'),
|
||||||
|
$.i18n._('Tue'),
|
||||||
|
$.i18n._('Wed'),
|
||||||
|
$.i18n._('Thu'),
|
||||||
|
$.i18n._('Fri'),
|
||||||
|
$.i18n._('Sat')
|
||||||
|
],
|
||||||
contentHeight: mainHeight,
|
contentHeight: mainHeight,
|
||||||
theme: true,
|
theme: true,
|
||||||
lazyFetching: false,
|
lazyFetching: false,
|
||||||
|
|
|
@ -86,9 +86,7 @@ function populateUserTable() {
|
||||||
"bJQueryUI": true,
|
"bJQueryUI": true,
|
||||||
"bAutoWidth": false,
|
"bAutoWidth": false,
|
||||||
"bLengthChange": false,
|
"bLengthChange": false,
|
||||||
"oLanguage": {
|
"oLanguage": datatables_dict,
|
||||||
"sSearch": ""
|
|
||||||
},
|
|
||||||
|
|
||||||
"sDom": '<"H"lf<"dt-process-rel"r>>t<"F"ip>',
|
"sDom": '<"H"lf<"dt-process-rel"r>>t<"F"ip>',
|
||||||
});
|
});
|
||||||
|
|
|
@ -30,4 +30,8 @@ The new _fnDomBaseButton looks like this:
|
||||||
|
|
||||||
return nButton;
|
return nButton;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
* Line 96 has changed
|
||||||
|
- "buttonText": "Show / hide columns",
|
||||||
|
+ "buttonText": $.i18n._("Show / hide columns"),
|
|
@ -95,7 +95,7 @@ ColVis = function( oDTSettings, oInit )
|
||||||
* @type String
|
* @type String
|
||||||
* @default Show / hide columns
|
* @default Show / hide columns
|
||||||
*/
|
*/
|
||||||
"buttonText": "Show / hide columns",
|
"buttonText": $.i18n._("Show / hide columns"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flag to say if the collection is hidden
|
* Flag to say if the collection is hidden
|
||||||
|
|
|
@ -585,7 +585,7 @@
|
||||||
sRangeSeparator: "~",
|
sRangeSeparator: "~",
|
||||||
iFilteringDelay: 500,
|
iFilteringDelay: 500,
|
||||||
aoColumns: null,
|
aoColumns: null,
|
||||||
sRangeFormat: "From {from} to {to}"
|
sRangeFormat: $.i18n._("From {from} to {to}")
|
||||||
};
|
};
|
||||||
|
|
||||||
properties = $.extend(defaults, options);
|
properties = $.extend(defaults, options);
|
||||||
|
|
Loading…
Reference in New Issue