add settings option for language
This commit is contained in:
parent
a7b7f5a76c
commit
76b12c4ae0
37
lib/l10n.php
37
lib/l10n.php
|
@ -198,19 +198,7 @@ class OC_L10N{
|
|||
$available = $app;
|
||||
}
|
||||
else{
|
||||
$dir = self::findI18nDir( $app );
|
||||
if( file_exists($dir)){
|
||||
$dh = opendir($dir);
|
||||
while(( $file = readdir( $dh )) !== false ){
|
||||
if( substr( $file, -4, 4 ) == '.php' ){
|
||||
$i = substr( $file, 0, -4 );
|
||||
if( $i != '' ){
|
||||
$available[] = $i;
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($dh);
|
||||
}
|
||||
$available=self::findAvailableLanguages( $app );
|
||||
}
|
||||
if( isset($_SESSION['user_id']) && $_SESSION['user_id'] && OC_PREFERENCES::getValue( $_SESSION['user_id'], 'core', 'lang' )){
|
||||
$lang = OC_PREFERENCES::getValue( $_SESSION['user_id'], 'core', 'lang' );
|
||||
|
@ -255,4 +243,27 @@ class OC_L10N{
|
|||
}
|
||||
return $i18ndir;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief find all available languages for an app
|
||||
* @param $app App that needs to be translated
|
||||
* @returns array an array of available languages
|
||||
*/
|
||||
public static function findAvailableLanguages( $app=null ){
|
||||
$available=array('en');//english is always available
|
||||
$dir = self::findI18nDir( $app );
|
||||
if( file_exists($dir)){
|
||||
$dh = opendir($dir);
|
||||
while(( $file = readdir( $dh )) !== false ){
|
||||
if( substr( $file, -4, 4 ) == '.php' and strlen($file)==6 ){
|
||||
$i = substr( $file, 0, -4 );
|
||||
if( $i != '' ){
|
||||
$available[] = $i;
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($dh);
|
||||
}
|
||||
return $available;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
// Init owncloud
|
||||
require_once('../../lib/base.php');
|
||||
|
||||
// We send json data
|
||||
header( "Content-Type: application/jsonrequest" );
|
||||
|
||||
// Check if we are a user
|
||||
if( !OC_USER::isLoggedIn()){
|
||||
echo json_encode( array( "status" => "error", "data" => array( "message" => "Authentication error" )));
|
||||
exit();
|
||||
}
|
||||
|
||||
// Get data
|
||||
if( isset( $_POST['lang'] ) ){
|
||||
$lang=$_POST['lang'];
|
||||
OC_PREFERENCES::setValue( $_SESSION['user_id'], 'core', 'lang', $lang );
|
||||
echo json_encode( array( "status" => "success", "data" => array( "message" => "Language changed" )));
|
||||
}else{
|
||||
echo json_encode( array( "status" => "error", "data" => array( "message" => "Invalid request" )));
|
||||
}
|
||||
|
||||
?>
|
|
@ -18,11 +18,18 @@ $free=OC_FILESYSTEM::free_space();
|
|||
$total=$free+$used;
|
||||
$relative=round(($used/$total)*100);
|
||||
|
||||
$lang=OC_PREFERENCES::getValue( $_SESSION['user_id'], 'core', 'lang', 'en' );
|
||||
$languages=OC_L10N::findAvailableLanguages();
|
||||
//put the current language in the front
|
||||
unset($languages[array_search($lang,$languages)]);
|
||||
array_unshift($languages,$lang);
|
||||
|
||||
// Return template
|
||||
$tmpl = new OC_TEMPLATE( "settings", "index", "admin");
|
||||
$tmpl->assign('usage',OC_HELPER::humanFileSize($used));
|
||||
$tmpl->assign('total_space',OC_HELPER::humanFileSize($total));
|
||||
$tmpl->assign('usage_relative',$relative);
|
||||
$tmpl->assign('languages',$languages);
|
||||
$tmpl->printPage();
|
||||
|
||||
?>
|
||||
|
|
|
@ -18,4 +18,18 @@ $(document).ready(function(){
|
|||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$("#languageinput").change( function(){
|
||||
// Serialize the data
|
||||
var post = $( "#languageinput" ).serialize();
|
||||
// Ajax foo
|
||||
$.post( 'ajax/setlanguage.php', post, function(data){
|
||||
if( data.status == "success" ){
|
||||
}
|
||||
else{
|
||||
$('#passworderror').html( data.data.message );
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -8,23 +8,35 @@
|
|||
|
||||
<form id="passwordform">
|
||||
<fieldset>
|
||||
<legend>Change Password</legend>
|
||||
<div id="passwordchanged">You're password got changed</div>
|
||||
<div id="passworderror"></div>
|
||||
<p>
|
||||
<label for="pass1">Old password:</label>
|
||||
<input type="password" id="pass1" name="oldpassword" />
|
||||
</p>
|
||||
<p>
|
||||
<label for="pass2">New password :</label>
|
||||
<input type="password" id="pass2" name="password" />
|
||||
</p>
|
||||
<p>
|
||||
<input type="checkbox" id="show" name="show" />
|
||||
<label for="show">Show new password</label>
|
||||
</p>
|
||||
<p class="form_footer">
|
||||
<input id="passwordbutton" class="prettybutton" type="submit" value="Save" />
|
||||
</p>
|
||||
<legend>Change Password</legend>
|
||||
<div id="passwordchanged">You're password got changed</div>
|
||||
<div id="passworderror"></div>
|
||||
<p>
|
||||
<label for="pass1">Old password:</label>
|
||||
<input type="password" id="pass1" name="oldpassword" />
|
||||
</p>
|
||||
<p>
|
||||
<label for="pass2">New password :</label>
|
||||
<input type="password" id="pass2" name="password" />
|
||||
</p>
|
||||
<p>
|
||||
<input type="checkbox" id="show" name="show" />
|
||||
<label for="show">Show new password</label>
|
||||
</p>
|
||||
<p class="form_footer">
|
||||
<input id="passwordbutton" class="prettybutton" type="submit" value="Save" />
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<form id="languageform">
|
||||
<fieldset>
|
||||
<legend>Language</legend>
|
||||
<label for=''></label>
|
||||
<select id="languageinput" name='lang'>
|
||||
<?php foreach($_['languages'] as $language):?>
|
||||
<option value='<?php echo $language;?>'><?php echo $language;?></option>
|
||||
<?php endforeach;?>
|
||||
</select>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
|
Loading…
Reference in New Issue