Merge branch 'master' into share_api

Conflicts:
	apps/contacts/lib/vcard.php
	apps/files_sharing/sharedstorage.php
This commit is contained in:
Michael Gapczynski 2012-08-09 11:38:22 -04:00
commit 78cd1153f0
90 changed files with 3491 additions and 710 deletions

View File

@ -21,11 +21,6 @@
*
*/
//no apps or filesystem
$RUNTIME_NOSETUPFS=true;
// Check if we are a user
OCP\JSON::checkLoggedIn();
OCP\JSON::callCheck();
@ -34,4 +29,4 @@ OCP\JSON::checkAppEnabled('bookmarks');
require_once(OC_App::getAppPath('bookmarks').'/bookmarksHelper.php');
$id = addBookmark($_POST['url'], $_POST['title'], $_POST['tags']);
OCP\JSON::success(array('data' => $id));
OCP\JSON::success(array('data' => $id));

View File

@ -21,11 +21,6 @@
*
*/
//no apps or filesystem
$RUNTIME_NOSETUPFS=true;
// Check if we are a user
OCP\JSON::checkLoggedIn();
OCP\JSON::callCheck();

View File

@ -21,11 +21,6 @@
*
*/
//no apps or filesystem
$RUNTIME_NOSETUPFS=true;
// Check if we are a user
OCP\JSON::checkLoggedIn();
OCP\JSON::callCheck();

View File

@ -21,11 +21,6 @@
*
*/
//no apps or filesystem
$RUNTIME_NOSETUPFS=true;
// Check if we are a user
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('bookmarks');

View File

@ -22,11 +22,6 @@
*
*/
//no apps or filesystem
$RUNTIME_NOSETUPFS=true;
// Check if we are a user
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('bookmarks');

View File

@ -4,9 +4,7 @@
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
*/
$l10n = OC_L10N::get('calendar');
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('calendar');

View File

@ -35,7 +35,6 @@ OCP\App::addNavigationEntry( array(
'href' => OCP\Util::linkTo( 'calendar', 'index.php' ),
'icon' => OCP\Util::imagePath( 'calendar', 'icon.svg' ),
'name' => $l->t('Calendar')));
OCP\App::registerPersonal('calendar', 'settings');
OC_Search::registerProvider('OC_Search_Provider_Calendar');
OCP\Share::registerBackend('calendar', 'OC_Share_Backend_Calendar');
OCP\Share::registerBackend('event', 'OC_Share_Backend_Event');

View File

@ -0,0 +1,12 @@
<?php
/**
* Copyright (c) 2012 Georg Ehrke <ownClouddev at georgswebsite.de>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
$l10n = OC_L10N::get('calendar');
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('calendar');
$tmpl = new OCP\Template('calendar', 'part.choosecalendar');
$tmpl->printpage();

View File

@ -19,7 +19,7 @@
#loading { display: none;margin: 0;padding:0;margin-top:5px;}
#calendar_holder {position: relative;bottom: 0; right: 0; left: 0; top: 3em;}
#fullcalendar {position: relative;bottom: 0; right: 0; left: 0; top: 3em;}
.fc-content{padding:2px 4px;}
#listview {margin: 0; padding: 10px; background: #EEEEEE;}
#listview #more_before, #listview #more_after {border: 1px solid #1a1a1a; width:25em;padding: 3px;text-align: center;}
@ -133,3 +133,12 @@ padding:0 8px 2px;
line-height:1.2;
margin-bottom:4px;
}
#choosecalendar a.settings{
margin-top: 25px;
margin-right: 10px;
}
#fullcalendar{
overflow: scroll;
}

View File

@ -5,8 +5,7 @@
* later.
* See the COPYING-README file.
*/
DEFINE('DEBUG', TRUE);
OCP\User::checkLoggedIn();
OCP\App::checkAppEnabled('calendar');

View File

@ -18,7 +18,7 @@ Calendar={
startEventDialog:function(){
Calendar.UI.loading(false);
$('.tipsy').remove();
$('#calendar_holder').fullCalendar('unselect');
$('#fullcalendar').fullCalendar('unselect');
Calendar.UI.lockTime();
$( "#from" ).datepicker({
dateFormat : 'dd-mm-yy'
@ -88,7 +88,7 @@ Calendar={
$.post(url, post, function(data){
Calendar.UI.loading(false);
if(data.status == 'success'){
$('#calendar_holder').fullCalendar('removeEvents', $('#event_form input[name=id]').val());
$('#fullcalendar').fullCalendar('removeEvents', $('#event_form input[name=id]').val());
$('#event').dialog('destroy').remove();
} else {
$('#errorbox').html(t('calendar', 'Deletion failed'));
@ -133,7 +133,7 @@ Calendar={
} else
if(data.status == 'success'){
$('#event').dialog('destroy').remove();
$('#calendar_holder').fullCalendar('refetchEvents');
$('#fullcalendar').fullCalendar('refetchEvents');
}
},"json");
},
@ -148,7 +148,7 @@ Calendar={
console.log("Event moved successfully");
}else{
revertFunc();
$('#calendar_holder').fullCalendar('refetchEvents');
$('#fullcalendar').fullCalendar('refetchEvents');
}
});
},
@ -163,7 +163,7 @@ Calendar={
console.log("Event resized successfully");
}else{
revertFunc();
$('#calendar_holder').fullCalendar('refetchEvents');
$('#fullcalendar').fullCalendar('refetchEvents');
}
});
},
@ -239,11 +239,11 @@ Calendar={
doc_height = $(document).height(),
win_height = $(window).height();
if(direction == 'down' && win_height == (doc_height - scroll)){
$('#calendar_holder').fullCalendar('next');
$('#fullcalendar').fullCalendar('next');
$(document).scrollTop(0);
event.preventDefault();
}else if (direction == 'top' && scroll == 0) {
$('#calendar_holder').fullCalendar('prev');
$('#fullcalendar').fullCalendar('prev');
$(document).scrollTop(win_height);
event.preventDefault();
}
@ -398,9 +398,9 @@ Calendar={
if (data.status == 'success'){
checkbox.checked = data.active == 1;
if (data.active == 1){
$('#calendar_holder').fullCalendar('addEventSource', data.eventSource);
$('#fullcalendar').fullCalendar('addEventSource', data.eventSource);
}else{
$('#calendar_holder').fullCalendar('removeEventSource', data.eventSource.url);
$('#fullcalendar').fullCalendar('removeEventSource', data.eventSource.url);
}
}
});
@ -426,10 +426,10 @@ Calendar={
function(data) {
if (data.status == 'success'){
var url = 'ajax/events.php?calendar_id='+calid;
$('#calendar_holder').fullCalendar('removeEventSource', url);
$('#fullcalendar').fullCalendar('removeEventSource', url);
$('#choosecalendar_dialog').dialog('destroy').remove();
Calendar.UI.Calendar.overview();
$('#calendar_holder').fullCalendar('refetchEvents');
$('#fullcalendar').fullCalendar('refetchEvents');
}
});
}
@ -456,8 +456,8 @@ Calendar={
function(data){
if(data.status == 'success'){
$(button).closest('tr').prev().html(data.page).show().next().remove();
$('#calendar_holder').fullCalendar('removeEventSource', data.eventSource.url);
$('#calendar_holder').fullCalendar('addEventSource', data.eventSource);
$('#fullcalendar').fullCalendar('removeEventSource', data.eventSource.url);
$('#fullcalendar').fullCalendar('addEventSource', data.eventSource);
if (calendarid == 'new'){
$('#choosecalendar_dialog > table:first').append('<tr><td colspan="6"><a href="#" onclick="Calendar.UI.Calendar.newCalendar(this);"><input type="button" value="' + newcalendar + '"></a></td></tr>');
}
@ -504,7 +504,7 @@ Calendar={
idtype: '',
activation:function(object,owner,id){
$.post(OC.filePath('calendar', 'ajax/share', 'activation.php'),{id:id, idtype:'calendar', activation:object.checked?1:0});
$('#calendar_holder').fullCalendar('refetchEvents');
$('#fullcalendar').fullCalendar('refetchEvents');
},
dropdown:function(userid, calid){
$('.calendar_share_dropdown').remove();
@ -612,7 +612,7 @@ Calendar={
console.log('The drop-import feature is not supported in your browser :(');
return false;
}
droparea = document.getElementById('calendar_holder');
droparea = document.getElementById('fullcalendar');
droparea.ondrop = function(e){
e.preventDefault();
Calendar.UI.Drop.drop(e);
@ -626,7 +626,7 @@ Calendar={
reader = new FileReader();
reader.onload = function(event){
Calendar.UI.Drop.import(event.target.result);
$('#calendar_holder').fullCalendar('refetchEvents');
$('#fullcalendar').fullCalendar('refetchEvents');
}
reader.readAsDataURL(file);
}
@ -634,7 +634,7 @@ Calendar={
import:function(data){
$.post(OC.filePath('calendar', 'ajax/import', 'dropimport.php'), {'data':data},function(result) {
if(result.status == 'success'){
$('#calendar_holder').fullCalendar('addEventSource', result.eventSource);
$('#fullcalendar').fullCalendar('addEventSource', result.eventSource);
$('#notification').html(result.message);
$('#notification').slideDown();
window.setTimeout(function(){$('#notification').slideUp();}, 5000);
@ -647,7 +647,11 @@ Calendar={
});
}
}
}
},
Settings:{
//
},
}
$.fullCalendar.views.list = ListView;
function ListView(element, calendar) {
@ -815,7 +819,7 @@ function ListView(element, calendar) {
}
$(document).ready(function(){
Calendar.UI.initScroll();
$('#calendar_holder').fullCalendar({
$('#fullcalendar').fullCalendar({
header: false,
firstDay: firstDay,
editable: true,
@ -851,10 +855,10 @@ $(document).ready(function(){
}
Calendar.UI.setViewActive(view.name);
if (view.name == 'agendaWeek') {
$('#calendar_holder').fullCalendar('option', 'aspectRatio', 0.1);
$('#fullcalendar').fullCalendar('option', 'aspectRatio', 0.1);
}
else {
$('#calendar_holder').fullCalendar('option', 'aspectRatio', 1.35);
$('#fullcalendar').fullCalendar('option', 'aspectRatio', 1.35);
}
},
columnFormat: {
@ -888,7 +892,7 @@ $(document).ready(function(){
changeYear: true,
showButtonPanel: true,
beforeShow: function(input, inst) {
var calendar_holder = $('#calendar_holder');
var calendar_holder = $('#fullcalendar');
var date = calendar_holder.fullCalendar('getDate');
inst.input.datepicker('setDate', date);
inst.input.val(calendar_holder.fullCalendar('getView').title);
@ -896,30 +900,36 @@ $(document).ready(function(){
},
onSelect: function(value, inst) {
var date = inst.input.datepicker('getDate');
$('#calendar_holder').fullCalendar('gotoDate', date);
$('#fullcalendar').fullCalendar('gotoDate', date);
}
});
fillWindow($('#content'));
OCCategories.changed = Calendar.UI.categoriesChanged;
OCCategories.app = 'calendar';
$('#oneweekview_radio').click(function(){
$('#calendar_holder').fullCalendar('changeView', 'agendaWeek');
$('#fullcalendar').fullCalendar('changeView', 'agendaWeek');
});
$('#onemonthview_radio').click(function(){
$('#calendar_holder').fullCalendar('changeView', 'month');
$('#fullcalendar').fullCalendar('changeView', 'month');
});
$('#listview_radio').click(function(){
$('#calendar_holder').fullCalendar('changeView', 'list');
$('#fullcalendar').fullCalendar('changeView', 'list');
});
$('#today_input').click(function(){
$('#calendar_holder').fullCalendar('today');
$('#fullcalendar').fullCalendar('today');
});
$('#datecontrol_left').click(function(){
$('#calendar_holder').fullCalendar('prev');
$('#fullcalendar').fullCalendar('prev');
});
$('#datecontrol_right').click(function(){
$('#calendar_holder').fullCalendar('next');
$('#fullcalendar').fullCalendar('next');
});
Calendar.UI.Share.init();
Calendar.UI.Drop.init();
$('#choosecalendar .generalsettings').on('click keydown', function() {
OC.appSettings({appid:'calendar', loadJS:true, cache:false});
});
$('#choosecalendar .calendarsettings').on('click keydown', function() {
OC.appSettings({appid:'calendar', loadJS:true, cache:false, scriptName:'calendar.php'});
});
});

View File

@ -1,11 +1,7 @@
$(document).ready(function(){
$('#timezone').change( function(){
OC.msg.startSaving('#calendar .msg')
// Serialize the data
var post = $( '#timezone' ).serialize();
$.post( OC.filePath('calendar', 'ajax/settings', 'settimezone.php'), post, function(data){
//OC.msg.finishedSaving('#calendar .msg', data);
});
$.post( OC.filePath('calendar', 'ajax/settings', 'settimezone.php'), post, function(data){return;});
return false;
});
$('#timezone').chosen();
@ -52,6 +48,7 @@ $(document).ready(function(){
});
});
calendarcachecheck();
});
function calendarcachecheck(){
$.getJSON(OC.filePath('calendar', 'ajax/cache', 'status.php'), function(jsondata, status) {

View File

@ -14,4 +14,4 @@ $tmpl->assign('calendars', OC_Calendar_Calendar::allCalendars(OCP\USER::getUser(
OCP\Util::addscript('calendar','settings');
return $tmpl->fetchPage();
$tmpl->printPage();

View File

@ -33,6 +33,7 @@
?>
});
</script>
<div id="notification" style="display:none;"></div>
<div id="controls">
<form id="view">
<input type="button" value="<?php echo $l->t('Week');?>" id="oneweekview_radio"/>
@ -41,8 +42,9 @@
<img id="loading" src="<?php echo OCP\Util::imagePath('core', 'loading.gif'); ?>" />
</form>
<form id="choosecalendar">
<input type="button" id="today_input" value="<?php echo $l->t("Today");?>"/>
<input type="button" id="choosecalendar_input" value="<?php echo $l->t("Calendars");?>" onclick="Calendar.UI.Calendar.overview();" />
<!--<input type="button" id="today_input" value="<?php echo $l->t("Today");?>"/>-->
<a class="settings calendarsettings" title="<?php echo $l->t('Settings'); ?>"><img class="svg" src="<?php echo OCP\Util::imagePath('calendar', 'icon.svg'); ?>" alt="<?php echo $l->t('Settings'); ?>" /></a>
<a class="settings generalsettings" title="<?php echo $l->t('Settings'); ?>"><img class="svg" src="core/img/actions/settings.svg" alt="<?php echo $l->t('Settings'); ?>" /></a>
</form>
<form id="datecontrol">
<input type="button" value="&nbsp;&lt;&nbsp;" id="datecontrol_left"/>
@ -50,12 +52,6 @@
<input type="button" value="&nbsp;&gt;&nbsp;" id="datecontrol_right"/>
</form>
</div>
<div id="notification" style="display:none;"></div>
<div id="calendar_holder">
</div>
<!-- Dialogs -->
<div id="fullcalendar"></div>
<div id="dialog_holder"></div>
<div id="parsingfail_dialog" title="Parsing Fail">
<?php echo $l->t("There was a fail, while parsing the file."); ?>
</div>
<!-- End of Dialogs -->
<div id="appsettings" class="popup topright hidden"></div>

View File

@ -1,51 +1,52 @@
<div id="choosecalendar_dialog" title="<?php echo $l->t("Choose active calendars"); ?>">
<p><b><?php echo $l->t('Your calendars'); ?>:</b></p>
<table width="100%" style="border: 0;">
<?php
$option_calendars = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser());
for($i = 0; $i < count($option_calendars); $i++){
echo "<tr>";
$tmpl = new OCP\Template('calendar', 'part.choosecalendar.rowfields');
$tmpl->assign('calendar', $option_calendars[$i]);
if(OC_Calendar_Share::allUsersSharedwith($option_calendars[$i]['id'], OC_Calendar_Share::CALENDAR) == array()){
$shared = false;
}else{
$shared = true;
<form id="calendar">
<p><b><?php echo $l->t('Your calendars'); ?>:</b></p>
<table width="100%" style="border: 0;">
<?php
$option_calendars = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser());
for($i = 0; $i < count($option_calendars); $i++){
echo "<tr>";
$tmpl = new OCP\Template('calendar', 'part.choosecalendar.rowfields');
$tmpl->assign('calendar', $option_calendars[$i]);
if(OC_Calendar_Share::allUsersSharedwith($option_calendars[$i]['id'], OC_Calendar_Share::CALENDAR) == array()){
$shared = false;
}else{
$shared = true;
}
$tmpl->assign('shared', $shared);
$tmpl->printpage();
echo "</tr>";
}
$tmpl->assign('shared', $shared);
$tmpl->printpage();
echo "</tr>";
}
?>
<tr>
<td colspan="6">
<a href="#" onclick="Calendar.UI.Calendar.newCalendar(this);"><input type="button" value="<?php echo $l->t('New Calendar') ?>"></a>
</td>
</tr>
<tr>
<td colspan="6">
<p style="margin: 0 auto;width: 90%;"><input style="display:none;width: 90%;float: left;" type="text" id="caldav_url" onmouseover="$('#caldav_url').select();" title="<?php echo $l->t("CalDav Link"); ?>"><img id="caldav_url_close" style="height: 20px;vertical-align: middle;display: none;" src="<?php echo OCP\Util::imagePath('core', 'actions/delete.svg') ?>" alt="close" onclick="$('#caldav_url').hide();$('#caldav_url_close').hide();"/></p>
</td>
</tr>
</table><br>
<p><b><?php echo $l->t('Shared calendars'); ?>: </b></p>
<table width="100%" style="border: 0;">
<?php
$share = OC_Calendar_Share::allSharedwithuser(OCP\USER::getUser(), OC_Calendar_Share::CALENDAR);
$count = count($share);
for($i = 0; $i < $count; $i++){
$share[$i]['calendar'] = OC_Calendar_App::getCalendar($share[$i]['calendarid'], false, false);
echo '<tr>';
$tmpl = new OCP\Template('calendar', 'part.choosecalendar.rowfields.shared');
$tmpl->assign('share', $share[$i]);
$tmpl->printpage();
echo '</tr>';
}
?>
</table>
<?php
if($count == 0){
echo '<p style="text-align:center;"><b>' . $l->t('No shared calendars') . '</b></p>';
}
?>
</div>
?>
<tr>
<td colspan="6">
<a href="#" onclick="Calendar.UI.Calendar.newCalendar(this);"><input type="button" value="<?php echo $l->t('New Calendar') ?>"></a>
</td>
</tr>
<tr>
<td colspan="6">
<p style="margin: 0 auto;width: 90%;"><input style="display:none;width: 90%;float: left;" type="text" id="caldav_url" onmouseover="$('#caldav_url').select();" title="<?php echo $l->t("CalDav Link"); ?>"><img id="caldav_url_close" style="height: 20px;vertical-align: middle;display: none;" src="<?php echo OCP\Util::imagePath('core', 'actions/delete.svg') ?>" alt="close" onclick="$('#caldav_url').hide();$('#caldav_url_close').hide();"/></p>
</td>
</tr>
</table><br>
<p><b><?php echo $l->t('Shared calendars'); ?>: </b></p>
<table width="100%" style="border: 0;">
<?php
$share = OC_Calendar_Share::allSharedwithuser(OCP\USER::getUser(), OC_Calendar_Share::CALENDAR);
$count = count($share);
for($i = 0; $i < $count; $i++){
$share[$i]['calendar'] = OC_Calendar_App::getCalendar($share[$i]['calendarid'], false, false);
echo '<tr>';
$tmpl = new OCP\Template('calendar', 'part.choosecalendar.rowfields.shared');
$tmpl->assign('share', $share[$i]);
$tmpl->printpage();
echo '</tr>';
}
?>
</table>
<?php
if($count == 0){
echo '<p style="text-align:center;"><b>' . $l->t('No shared calendars') . '</b></p>';
}
?>
</fieldset>
</form>

View File

@ -7,11 +7,16 @@
* See the COPYING-README file.
*/
?>
<form id="calendar">
<fieldset class="personalblock">
<legend><?php echo $l->t('Calendar'); ?></legend>
<table class="nostyle">
<tr><td><label for="timezone" class="bold"><?php echo $l->t('Timezone');?></label></td><td><select style="display: none;" id="timezone" name="timezone">
<h2 id="title_general"><?php echo $l->t('General'); ?></h2>
<div id="general">
<table class="nostyle">
<tr>
<td>
<label for="timezone" class="bold"><?php echo $l->t('Timezone');?></label>
&nbsp;&nbsp;
</td>
<td>
<select style="display: none;" id="timezone" name="timezone">
<?php
$continent = '';
foreach($_['timezones'] as $timezone):
@ -27,29 +32,58 @@
$city=strtr($ex[1], '_', ' ');
$continent=$ex[0];
echo '<option value="'.$timezone.'"'.($_['timezone'] == $timezone?' selected="selected"':'').'>'.$city.'</option>';
var_dump($_['timezone']);
endforeach;?>
</select><input type="checkbox" name="timezonedetection" id="timezonedetection"><label for="timezonedetection"><?php echo $l->t('Check always for changes of the timezone'); ?></label></td></tr>
<tr><td><label for="timeformat" class="bold"><?php echo $l->t('Timeformat');?></label></td><td>
</select>
</td>
</tr>
<tr>
<td>
&nbsp;&nbsp;
</td>
<td>
<input type="checkbox" name="timezonedetection" id="timezonedetection">
&nbsp;
<label for="timezonedetection"><?php echo $l->t('Update timezone automatically'); ?></label>
</td>
</tr>
<tr>
<td>
<label for="timeformat" class="bold"><?php echo $l->t('Time format');?></label>
&nbsp;&nbsp;
</td>
<td>
<select style="display: none; width: 60px;" id="timeformat" title="<?php echo "timeformat"; ?>" name="timeformat">
<option value="24" id="24h"><?php echo $l->t("24h"); ?></option>
<option value="ampm" id="ampm"><?php echo $l->t("12h"); ?></option>
</select>
</td></tr>
<tr><td><label for="firstday" class="bold"><?php echo $l->t('First day of the week');?></label></td><td>
</td>
</tr>
<tr>
<td>
<label for="firstday" class="bold"><?php echo $l->t('Start week on');?></label>
&nbsp;&nbsp;
</td>
<td>
<select style="display: none;" id="firstday" title="<?php echo "First day"; ?>" name="firstday">
<option value="mo" id="mo"><?php echo $l->t("Monday"); ?></option>
<option value="su" id="su"><?php echo $l->t("Sunday"); ?></option>
</select>
</td></tr>
<tr><td><label for="" class="bold"><?php echo $l->t('Cache');?></label></td><td>
<input id="cleancalendarcache" type="button" class="button" value="<?php echo $l->t('Clear cache for repeating events');?>">
</td></tr>
</table>
</td>
</tr>
<tr class="advancedsettings">
<td>
<label for="" class="bold"><?php echo $l->t('Cache');?></label>
&nbsp;&nbsp;
</td>
<td>
<input id="cleancalendarcache" type="button" class="button" value="<?php echo $l->t('Clear cache for repeating events');?>">
</td>
</tr>
</table>
</div>
<h2 id="title_urls"><?php echo $l->t('URLs'); ?></h2>
<div id="urls">
<?php echo $l->t('Calendar CalDAV syncing addresses'); ?> (<a href="http://owncloud.org/synchronisation/" target="_blank"><?php echo $l->t('more info'); ?></a>)
<dl>
<dt><?php echo $l->t('Primary address (Kontact et al)'); ?></dt>
@ -63,5 +97,5 @@
<?php } ?>
</dd>
</dl>
</fieldset>
</form>
</div>
</div>

View File

@ -49,4 +49,10 @@ if(!$id) {
exit();
}
OCP\JSON::success(array('data' => array( 'id' => $id, 'aid' => $aid )));
OCP\JSON::success(array(
'data' => array(
'id' => $id,
'aid' => $aid,
'lastmodified' => OC_Contacts_VCard::lastModified($vcard)->format('U')
)
));

View File

@ -25,7 +25,7 @@ OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
OCP\JSON::callCheck();
require_once 'loghandler.php';
require_once __DIR__.'/../loghandler.php';
$id = isset($_POST['id'])?$_POST['id']:null;
$name = isset($_POST['name'])?$_POST['name']:null;
@ -48,9 +48,9 @@ if(!$vcard) {
if(!is_array($value)) {
$value = trim($value);
if(!$value
if(!$value
&& in_array(
$name,
$name,
array('TEL', 'EMAIL', 'ORG', 'BDAY', 'URL', 'NICKNAME', 'NOTE'))
) {
bailOut($l10n->t('Cannot add empty property.'));
@ -78,9 +78,9 @@ foreach($current as $item) {
}
if(is_array($value)) {
// NOTE: Important, otherwise the compound value will
// NOTE: Important, otherwise the compound value will
// be set in the order the fields appear in the form!
ksort($value);
ksort($value);
$value = array_map('strip_tags', $value);
} else {
$value = strip_tags($value);
@ -123,10 +123,10 @@ switch($name) {
$line = count($vcard->children) - 1;
// Apparently Sabre_VObject_Parameter doesn't do well with
// Apparently Sabre_VObject_Parameter doesn't do well with
// multiple values or I don't know how to do it. Tanghus.
foreach ($parameters as $key=>$element) {
if(is_array($element) && strtoupper($key) == 'TYPE') {
if(is_array($element) && strtoupper($key) == 'TYPE') {
// NOTE: Maybe this doesn't only apply for TYPE?
// And it probably shouldn't be done here anyways :-/
foreach($element as $e) {
@ -144,4 +144,9 @@ if(!OC_Contacts_VCard::edit($id, $vcard)) {
bailOut($l10n->t('Error adding contact property: '.$name));
}
OCP\JSON::success(array('data' => array( 'checksum' => $checksum )));
OCP\JSON::success(array(
'data' => array(
'checksum' => $checksum,
'lastmodified' => OC_Contacts_VCard::lastModified($vcard)->format('U'))
)
);

View File

@ -23,7 +23,8 @@
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
OCP\JSON::callCheck();
require_once 'loghandler.php';
require_once __DIR__.'/../loghandler.php';
$id = isset($_POST['id'])?$_POST['id']:null;
if(!$id) {

View File

@ -24,7 +24,8 @@
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
OCP\JSON::callCheck();
require_once 'loghandler.php';
require_once __DIR__.'/../loghandler.php';
$id = $_POST['id'];
$checksum = $_POST['checksum'];
@ -43,4 +44,9 @@ if(!OC_Contacts_VCard::edit($id, $vcard)) {
bailOut($l10n->t('Error deleting contact property.'));
}
OCP\JSON::success(array('data' => array( 'id' => $id )));
OCP\JSON::success(array(
'data' => array(
'id' => $id,
'lastmodified' => OC_Contacts_VCard::lastModified($vcard)->format('U'),
)
));

View File

@ -53,5 +53,6 @@ if(isset($details['PHOTO'])) {
$details['id'] = $id;
$details['displayname'] = $card['fullname'];
$details['addressbookid'] = $card['addressbookid'];
$details['lastmodified'] = OC_Contacts_App::lastModified($vcard)->format('U');
OC_Contacts_App::setLastModifiedHeader($vcard);
OCP\JSON::success(array('data' => $details));

View File

@ -19,7 +19,9 @@
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
require_once 'loghandler.php';
require_once __DIR__.'/../loghandler.php';
// Check if we are a user
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
@ -146,5 +148,6 @@ if(!OC_Contacts_VCard::edit($id, $vcard)) {
OCP\JSON::success(array('data' => array(
'line' => $line,
'checksum' => $checksum,
'oldchecksum' => $_POST['checksum']))
);
'oldchecksum' => $_POST['checksum']
'lastmodified' => OC_Contacts_VCard::lastModified($vcard)->format('U')
));

View File

@ -62,17 +62,17 @@ if($data) {
if($image->crop($x1, $y1, $w, $h)) {
if(($image->width() <= 200 && $image->height() <= 200)
|| $image->resize(200)) {
$card = OC_Contacts_App::getContactVCard($id);
if(!$card) {
$vcard = OC_Contacts_App::getContactVCard($id);
if(!$vcard) {
OC_Cache::remove($tmpkey);
bailOut(OC_Contacts_App::$l10n
->t('Error getting contact object.'));
}
if($card->__isset('PHOTO')) {
if($vcard->__isset('PHOTO')) {
OCP\Util::writeLog('contacts',
'savecrop.php: PHOTO property exists.',
OCP\Util::DEBUG);
$property = $card->__get('PHOTO');
$property = $vcard->__get('PHOTO');
if(!$property) {
OC_Cache::remove($tmpkey);
bailOut(OC_Contacts_App::$l10n
@ -83,27 +83,28 @@ if($data) {
= new Sabre_VObject_Parameter('ENCODING', 'b');
$property->parameters[]
= new Sabre_VObject_Parameter('TYPE', $image->mimeType());
$card->__set('PHOTO', $property);
$vcard->__set('PHOTO', $property);
} else {
OCP\Util::writeLog('contacts',
'savecrop.php: files: Adding PHOTO property.',
OCP\Util::DEBUG);
$card->addProperty('PHOTO',
$vcard->addProperty('PHOTO',
$image->__toString(), array('ENCODING' => 'b',
'TYPE' => $image->mimeType()));
}
$now = new DateTime;
$card->setString('REV', $now->format(DateTime::W3C));
if(!OC_Contacts_VCard::edit($id, $card)) {
$vcard->setString('REV', $now->format(DateTime::W3C));
if(!OC_Contacts_VCard::edit($id, $vcard)) {
bailOut(OC_Contacts_App::$l10n->t('Error saving contact.'));
}
$tmpl = new OCP\Template("contacts", "part.contactphoto");
$tmpl->assign('id', $id);
$tmpl->assign('refresh', true);
$tmpl->assign('width', $image->width());
$tmpl->assign('height', $image->height());
$page = $tmpl->fetchPage();
OCP\JSON::success(array('data' => array('page'=>$page)));
OCP\JSON::success(array(
'data' => array(
'id' => $id,
'width' => $image->width(),
'height' => $image->height(),
'lastmodified' => OC_Contacts_App::lastModified($vcard)->format('U')
)
));
} else {
bailOut(OC_Contacts_App::$l10n->t('Error resizing image'));
}

View File

@ -141,4 +141,7 @@ input[type="checkbox"] { width: 20px; height: 20px; vertical-align: bottom; }
.addressbooks-settings .actions * { float: left; }
.addressbooks-settings .actions input.name { width: 5em; }
.addressbooks-settings .actions input.name { width: 7em; }
.addressbooks-settings a.action { opacity: 0.2; }
.addressbooks-settings a.action:hover { opacity: 1; }
.addressbooks-settings td.active, .addressbooks-settings td.action { width: 20px; }

View File

@ -835,7 +835,7 @@ OC.Contacts={
OC.Contacts.propertyContainerFor(obj).data('checksum', '');
if(proptype == 'PHOTO') {
OC.Contacts.Contacts.refreshThumbnail(OC.Contacts.Card.id);
OC.Contacts.Card.loadPhoto(true);
OC.Contacts.Card.loadPhoto();
} else if(proptype == 'NOTE') {
$('#note').find('textarea').val('');
OC.Contacts.propertyContainerFor(obj).hide();
@ -1218,9 +1218,9 @@ OC.Contacts={
}
});
},
loadPhoto:function(refresh){
loadPhoto:function(){
var self = this;
var refreshstr = (refresh?'&refresh=1'+Math.random():'')
var refreshstr = ''; //'&refresh='+Math.random();
$('#phototools li a').tipsy('hide');
var wrapper = $('#contacts_details_photo_wrapper');
wrapper.addClass('loading').addClass('wait');
@ -1278,7 +1278,7 @@ OC.Contacts={
var response=jQuery.parseJSON(target.contents().text());
if(response != undefined && response.status == 'success'){
// load cropped photo.
self.loadPhoto(true);
self.loadPhoto();
OC.Contacts.Card.data.PHOTO = true;
}else{
OC.dialogs.alert(response.data.message, t('contacts', 'Error'));

View File

@ -90,8 +90,7 @@ OC.Contacts.Settings = OC.Contacts.Settings || {
+ '<td class="action"><a class="svg action globe" title="'+t('contacts', 'Show CardDav link')+'"></a></td>'
+ '<td class="action"><a class="svg action cloud" title="'+t('contacts', 'Show read-only VCF link')+'"></a></td>'
+ '<td class="action"><a class="svg action download" title="'+t('contacts', 'Download')+'" '
+ 'href="'+totalurl+'/'+encodeURIComponent(oc_current_user)+'/'
+ encodeURIComponent(jsondata.data.addressbook.uri)+'?export"></a></td>'
+ 'href="'+OC.linkTo('contacts', 'export.php')+'?bookid='+jsondata.data.addressbook.id+'"></a></td>'
+ '<td class="action"><a class="svg action edit" title="'+t('contacts', 'Edit')+'"></a></td>'
+ '<td class="action"><a class="svg action delete" title="'+t('contacts', 'Delete')+'"></a></td>'
+ '</tr>');
@ -107,17 +106,27 @@ OC.Contacts.Settings = OC.Contacts.Settings || {
}
});
},
showLink:function(id, row, link) {
console.log('row:', row.length);
row.next('tr.link').remove();
var linkrow = $('<tr class="link"><td colspan="5"><input style="width: 95%;" type="text" value="'+link+'" /></td>'
+ '<td colspan="3"><button>'+t('contacts', 'Cancel')+'</button></td></tr>').insertAfter(row);
linkrow.find('input').focus().select();
linkrow.find('button').click(function() {
$(this).parents('tr').first().remove();
});
},
showCardDAV:function(id) {
console.log('showCardDAV: ', id);
var row = this.adrsettings.find('tr[data-id="'+id+'"]');
this.adractions.find('.link').val(totalurl+'/'+encodeURIComponent(oc_current_user)+'/');
this.showActions(['link','cancel']);
this.showLink(id, row, totalurl+'/'+encodeURIComponent(oc_current_user));
},
showVCF:function(id) {
console.log('showVCF: ', id);
var row = this.adrsettings.find('tr[data-id="'+id+'"]');
this.adractions.find('.link').val(totalurl+'/'+encodeURIComponent(oc_current_user)+'/'+encodeURIComponent(row.data('uri'))+'?export');
this.showActions(['link','cancel']);
var link = totalurl+'/'+encodeURIComponent(oc_current_user)+'/'+encodeURIComponent(row.data('uri'))+'?export';
console.log(link);
this.showLink(id, row, link);
}
}
};

View File

@ -108,6 +108,8 @@
"Next contact in list" => "Nächster Kontakt aus der Liste",
"Previous contact in list" => "Vorheriger Kontakt aus der Liste",
"Expand/collapse current addressbook" => "Ausklappen/Einklappen des Adressbuches",
"Next addressbook" => "Nächstes Adressbuch",
"Previous addressbook" => "Vorheriges Adressbuch",
"Actions" => "Aktionen",
"Refresh contacts list" => "Kontaktliste neu laden",
"Add new contact" => "Neuen Kontakt hinzufügen",

View File

@ -63,6 +63,8 @@
"Result: " => "Résultat :",
" imported, " => "importé,",
" failed." => "échoué.",
"Displayname cannot be empty." => "Le nom d'affichage ne peut pas être vide.",
"Addressbook not found: " => "Carnet d'adresse introuvable : ",
"This is not your addressbook." => "Ce n'est pas votre carnet d'adresses.",
"Contact could not be found." => "Ce contact n'a pu être trouvé.",
"Address" => "Adresse",
@ -97,6 +99,7 @@
"Contact" => "Contact",
"Add Contact" => "Ajouter un Contact",
"Import" => "Importer",
"Settings" => "Paramètres",
"Addressbooks" => "Carnets d'adresses",
"Close" => "Fermer",
"Keyboard shortcuts" => "Raccourcis clavier",
@ -104,6 +107,8 @@
"Next contact in list" => "Contact suivant dans la liste",
"Previous contact in list" => "Contact précédent dans la liste",
"Expand/collapse current addressbook" => "Dé/Replier le carnet d'adresses courant",
"Next addressbook" => "Carnet d'adresses suivant",
"Previous addressbook" => "Carnet d'adresses précédent",
"Actions" => "Actions",
"Refresh contacts list" => "Actualiser la liste des contacts",
"Add new contact" => "Ajouter un nouveau contact",
@ -190,9 +195,13 @@
"more info" => "Plus d'infos",
"Primary address (Kontact et al)" => "Adresse principale",
"iOS/OS X" => "iOS/OS X",
"Show CardDav link" => "Afficher le lien CardDav",
"Download" => "Télécharger",
"Edit" => "Modifier",
"New Address Book" => "Nouveau Carnet d'adresses",
"Name" => "Nom",
"Description" => "Description",
"Save" => "Sauvegarder",
"Cancel" => "Annuler"
"Cancel" => "Annuler",
"More..." => "Plus…"
);

View File

@ -243,6 +243,18 @@ class OC_Contacts_App {
self::getVCategories()->loadFromVObject($contact, true);
}
/**
* @brief Get the last modification time.
* @param $vcard OC_VObject
* $return DateTime | null
*/
public static function lastModified($vcard) {
$rev = $vcard->getAsString('REV');
if ($rev) {
return DateTime::createFromFormat(DateTime::W3C, $rev);
}
}
public static function setLastModifiedHeader($contact) {
$rev = $contact->getAsString('REV');
if ($rev) {

View File

@ -282,12 +282,13 @@ class OC_Contacts_VCard{
/**
* @brief Adds a card
* @param integer $aid Addressbook id
* @param OC_VObject $card vCard file
* @param string $uri the uri of the card, default based on the UID
* @param $aid integer Addressbook id
* @param $card OC_VObject vCard file
* @param $uri string the uri of the card, default based on the UID
* @param $isChecked boolean If the vCard should be checked for validity and version.
* @return insertid on success or false.
*/
public static function add($aid, OC_VObject $card, $uri=null, $isnew=false){
public static function add($aid, OC_VObject $card, $uri=null, $isChecked=false){
if(is_null($card)) {
OCP\Util::writeLog('contacts', 'OC_Contacts_VCard::add. No vCard supplied', OCP\Util::ERROR);
return null;
@ -295,22 +296,13 @@ class OC_Contacts_VCard{
$addressbook = OC_Contacts_Addressbook::find($aid);
if ($addressbook['userid'] != OCP\User::getUser()) {
$sharedAddressbook = OCP\Share::getItemSharedWithBySource('addressbook', $aid);
if (!$sharedAddressbook) {
if (!$sharedAddressbook || !($sharedAddressbook['permissions'] & OCP\Share::PERMISSION_CREATE)) {
return false;
}
} else {
$sharedAddressbook = false;
}
if(!$isnew) {
if ($sharedAddressbook && !($sharedAddressbook['permissions'] & OCP\Share::PERMISSION_UPDATE)) {
return false;
}
if(!$isChecked) {
OC_Contacts_App::loadCategoriesFromVCard($card);
self::updateValuesFromAdd($aid, $card);
} else {
if ($sharedAddressbook && !($sharedAddressbook['permissions'] & OCP\Share::PERMISSION_CREATE)) {
return false;
}
}
$card->setString('VERSION', '3.0');
// Add product ID is missing.

View File

@ -20,14 +20,15 @@ function getStandardImage() {
}
$id = isset($_GET['id']) ? $_GET['id'] : null;
$caching = isset($_GET['refresh']) ? 0 : null;
$etag = null;
$caching = null;
if(is_null($id)) {
getStandardImage();
}
if(!extension_loaded('gd') || !function_exists('gd_info')) {
OCP\Util::writeLog('contacts',
OCP\Util::writeLog('contacts',
'photo.php. GD module not installed', OCP\Util::DEBUG);
getStandardImage();
}
@ -39,25 +40,34 @@ if (!$image) {
}
// invalid vcard
if (is_null($contact)) {
OCP\Util::writeLog('contacts',
'photo.php. The VCard for ID ' . $id . ' is not RFC compatible',
OCP\Util::writeLog('contacts',
'photo.php. The VCard for ID ' . $id . ' is not RFC compatible',
OCP\Util::ERROR);
} else {
OCP\Response::enableCaching($caching);
OC_Contacts_App::setLastModifiedHeader($contact);
// Photo :-)
if ($image->loadFromBase64($contact->getAsString('PHOTO'))) {
// OK
OCP\Response::setETagHeader(md5($contact->getAsString('PHOTO')));
$etag = md5($contact->getAsString('PHOTO'));
}
else
// Logo :-/
if ($image->loadFromBase64($contact->getAsString('LOGO'))) {
// OK
OCP\Response::setETagHeader(md5($contact->getAsString('LOGO')));
$etag = md5($contact->getAsString('LOGO'));
}
if ($image->valid()) {
$modified = OC_Contacts_App::lastModified($contact);
// Force refresh if modified within the last minute.
if(!is_null($modified)) {
$caching = (time() - $modified->format('U') > 60) ? null : 0;
}
OCP\Response::enableCaching($caching);
if(!is_null($modified)) {
OCP\Response::setLastModifiedHeader($modified);
}
if($etag) {
OCP\Response::setETagHeader($etag);
}
$max_size = 200;
if ($image->width() > $max_size || $image->height() > $max_size) {
$image->resize($max_size);

View File

@ -27,8 +27,7 @@
</td>
<td class="action">
<a class="svg action download" title="<?php echo $l->t('Download'); ?>"
href="<?php echo OCP\Util::linkToRemote('carddav').'addressbooks/'.OCP\USER::getUser().'/'
.rawurlencode($addressbook['uri']) ?>?export"></a>
href="<?php echo OCP\Util::linkToAbsolute('contacts', 'export.php'); ?>?bookid=<?php echo $addressbook['id'] ?>"></a>
</td>
<td class="action">
<a class="svg action edit" title="<?php echo $l->t("Edit"); ?>"></a>
@ -44,7 +43,6 @@
<button class="new"><?php echo $l->t('New Address Book') ?></button>
<input class="name hidden" type="text" autofocus="autofocus" placeholder="<?php echo $l->t('Name'); ?>" />
<input class="description hidden" type="text" placeholder="<?php echo $l->t('Description'); ?>" />
<input class="link hidden" style="width: 80%" type="text" autofocus="autofocus" />
<button class="save hidden"><?php echo $l->t('Save') ?></button>
<button class="cancel hidden"><?php echo $l->t('Cancel') ?></button>
</div>

View File

@ -26,27 +26,26 @@ OCP\App::checkAppEnabled('contacts');
session_write_close();
function getStandardImage() {
//OCP\Response::setExpiresHeader('P10D');
OCP\Response::enableCaching();
OCP\Response::redirect(OCP\Util::imagePath('contacts', 'person.png'));
}
if(!extension_loaded('gd') || !function_exists('gd_info')) {
OCP\Util::writeLog('contacts',
OCP\Util::writeLog('contacts',
'thumbnail.php. GD module not installed', OCP\Util::DEBUG);
getStandardImage();
exit();
}
$id = $_GET['id'];
$caching = isset($_GET['refresh']) ? 0 : null;
$caching = null;
$contact = OC_Contacts_App::getContactVCard($id);
// invalid vcard
if(is_null($contact)) {
OCP\Util::writeLog('contacts',
'thumbnail.php. The VCard for ID ' . $id . ' is not RFC compatible',
OCP\Util::writeLog('contacts',
'thumbnail.php. The VCard for ID ' . $id . ' is not RFC compatible',
OCP\Util::ERROR);
getStandardImage();
exit();
@ -60,30 +59,39 @@ $thumbnail_size = 23;
$image = new OC_Image();
$photo = $contact->getAsString('PHOTO');
if($photo) {
OCP\Response::setETagHeader(md5($photo));
if($image->loadFromBase64($photo)) {
if($image->centerCrop()) {
if($image->resize($thumbnail_size)) {
$modified = OC_Contacts_App::lastModified($contact);
// Force refresh if modified within the last minute.
if(!is_null($modified)) {
$caching = (time() - $modified->format('U') > 60) ? null : 0;
}
OCP\Response::enableCaching($caching);
if(!is_null($modified)) {
OCP\Response::setLastModifiedHeader($modified);
}
OCP\Response::setETagHeader(md5($photo));
if($image->show()) {
exit();
} else {
OCP\Util::writeLog('contacts',
'thumbnail.php. Couldn\'t display thumbnail for ID ' . $id,
OCP\Util::writeLog('contacts',
'thumbnail.php. Couldn\'t display thumbnail for ID ' . $id,
OCP\Util::ERROR);
}
} else {
OCP\Util::writeLog('contacts',
'thumbnail.php. Couldn\'t resize thumbnail for ID ' . $id,
OCP\Util::writeLog('contacts',
'thumbnail.php. Couldn\'t resize thumbnail for ID ' . $id,
OCP\Util::ERROR);
}
}else{
OCP\Util::writeLog('contacts',
'thumbnail.php. Couldn\'t crop thumbnail for ID ' . $id,
OCP\Util::writeLog('contacts',
'thumbnail.php. Couldn\'t crop thumbnail for ID ' . $id,
OCP\Util::ERROR);
}
} else {
OCP\Util::writeLog('contacts',
'thumbnail.php. Couldn\'t load image string for ID ' . $id,
OCP\Util::writeLog('contacts',
'thumbnail.php. Couldn\'t load image string for ID ' . $id,
OCP\Util::ERROR);
}
}

View File

@ -1,9 +1,3 @@
<?php
// no need for apps
$RUNTIME_NOAPPS=false;
// Init owncloud
print OC_Helper::mimetypeIcon($_GET['mime']);

View File

@ -9,12 +9,17 @@
"Files" => "Dateien",
"Unshare" => "Nicht mehr teilen",
"Delete" => "Löschen",
"already exists" => "ist bereits vorhanden",
"replace" => "Ersetzen",
"cancel" => "Abbrechen",
"replaced" => "Ersetzt",
"with" => "mit",
"undo" => "rückgängig machen",
"deleted" => "gelöscht",
"generating ZIP-file, it may take some time." => "Erstelle ZIP-Datei. Dies kann eine Weile dauern.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Datei kann nicht hochgeladen werden da sie ein Verzeichniss ist oder 0 bytes hat.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Datei kann nicht hochgeladen werden da sie ein Verzeichnis ist oder 0 Bytes hat.",
"Upload Error" => "Fehler beim Hochladen",
"Pending" => "Anstehend",
"Pending" => "Ausstehend",
"Upload cancelled." => "Hochladen abgebrochen.",
"Invalid name, '/' is not allowed." => "Ungültiger Name, \"/\" ist nicht erlaubt.",
"Size" => "Größe",
@ -36,7 +41,7 @@
"From url" => "Von der URL",
"Upload" => "Hochladen",
"Cancel upload" => "Upload abbrechen",
"Nothing in here. Upload something!" => "Alles leer. Lad was hoch!",
"Nothing in here. Upload something!" => "Alles leer. Lade etwas hoch!",
"Name" => "Name",
"Share" => "Teilen",
"Download" => "Herunterladen",

View File

@ -8,6 +8,8 @@
"Failed to write to disk" => "نوشتن بر روی دیسک سخت ناموفق بود",
"Files" => "فایل ها",
"Delete" => "پاک کردن",
"already exists" => "وجود دارد",
"deleted" => "حذف شده",
"generating ZIP-file, it may take some time." => "در حال ساخت فایل فشرده ممکن است زمان زیادی به طول بیانجامد",
"Unable to upload your file as it is a directory or has 0 bytes" => "ناتوان در بارگذاری یا فایل یک پوشه است یا 0بایت دارد",
"Upload Error" => "خطا در بار گذاری",

View File

@ -9,6 +9,11 @@
"Files" => "Fichiers",
"Unshare" => "Ne plus partager",
"Delete" => "Supprimer",
"already exists" => "existe déjà",
"replace" => "remplacer",
"cancel" => "annuler",
"replaced" => "remplacé",
"with" => "avec",
"undo" => "annuler",
"deleted" => "supprimé",
"generating ZIP-file, it may take some time." => "Générer un fichier ZIP, cela peut prendre du temps",

View File

@ -1,6 +1,4 @@
<?php
$RUNTIME_NOSETUPFS=true; //don't setup the fs yet
// only need authentication apps
$RUNTIME_APPTYPES=array('authentication');
OC_App::loadApps($RUNTIME_APPTYPES);

View File

@ -343,6 +343,25 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
public function fopen($path, $mode) {
if ($source = $this->getSourcePath($path)) {
switch ($mode) {
case 'r+':
case 'rb+':
case 'w+':
case 'wb+':
case 'x+':
case 'xb+':
case 'a+':
case 'ab+':
case 'w':
case 'wb':
case 'x':
case 'xb':
case 'a':
case 'ab':
if (!$this->isUpdatable($path)) {
return false;
}
}
$info = array(
'target' => $this->sharedFolder.$path,
'source' => $source,

View File

@ -23,11 +23,6 @@
header('Content-type: text/html; charset=UTF-8') ;
//no apps or filesystem
$RUNTIME_NOAPPS=true;
$RUNTIME_NOSETUPFS=true;
OCP\JSON::checkAppEnabled('media');
$autoUpdate=(isset($_GET['autoupdate']) and $_GET['autoupdate']=='true');

View File

@ -25,10 +25,6 @@
*
*/
// Do not load FS ...
$RUNTIME_NOSETUPFS = true;
OCP\App::checkAppEnabled('remoteStorage');
require_once('remoteStorage/lib_remoteStorage.php');

View File

@ -27,9 +27,6 @@
header("X-Frame-Options: Sameorigin");
// Do not load FS ...
$RUNTIME_NOSETUPFS = true;
OCP\App::checkAppEnabled('remoteStorage');
require_once('Sabre/autoload.php');
require_once('lib_remoteStorage.php');
@ -60,64 +57,23 @@ if($userId && $appUrl && $categories) {
header('Location: '.$_GET['redirect_uri'].'#access_token='.$existingToken.'&token_type=bearer');
} else {
//params ok, logged in ok, but need to click Allow still:
?>
<!DOCTYPE html>
<html>
<head>
<title>ownCloud</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="shortcut icon" href="../../../core/img/favicon.png" /><link rel="apple-touch-icon-precomposed" href="../../../core/img/favicon-touch.png" />
<link rel="stylesheet" href="../../../core/css/styles.css" type="text/css" media="screen" />
<link rel="stylesheet" href="../../../core/css/auth.css" type="text/css" media="screen" />
</head>
<body id="body-login">
<div id="login">
<header>
<div id="header">
<img src="../../../core/img/logo.png" alt="ownCloud" />
</div>
</header>
<section id="main">
<div id="oauth">
<h2><img src="../../../core/img/remoteStorage-big.png" alt="remoteStorage" /></h2>
<p><strong><?php $appUrlParts = explode('/', $_GET['redirect_uri']); echo htmlentities($appUrlParts[2]); ?></strong>
requests read &amp; write access to your
<?php
$categories = explode(',', htmlentities($_GET['scope']));
if(!count($categories)) {
echo htmlentities($_GET['scope']);
} else {
echo '<em>'.$categories[0].'</em>';
if(count($categories)==2) {
echo ' and <em>'.$categories[1].'</em>';
} else if(count($categories)>2) {
for($i=1; $i<count($categories)-1; $i++) {
echo ', <em>'.$categories[$i].'</em>';
}
echo ', and <em>'.$categories[$i].'</em>';
}
}
?>.
</p>
<form accept-charset="UTF-8" method="post">
<input id="allow-auth" name="allow" type="submit" value="Allow" />
<input id="deny-auth" name="deny" type="submit" value="Deny" />
</form>
</div>
</section>
</div>
<footer><p class="info"><a href="http://owncloud.org/">ownCloud</a> &ndash; web services under your control</p></footer>
</body>
</html>
<?php
}//end 'need to click Allow still'
$appUrlParts = explode('/', $_GET['redirect_uri']);
$host = $appUrlParts[2];
$categories = explode(',', $_GET['scope']);
OCP\Util::addStyle('', 'auth');
OCP\Template::printGuestPage('remoteStorage', 'auth', array(
'host' => $host,
'categories' => $categories,
));
}//end 'need to click Allow still'
} else {//login not ok
if($currUser) {
die('You are logged in as '.$currUser.' instead of '.htmlentities($userId));
} else {
header('Location: /?redirect_url='.urlencode('/apps/remoteStorage/auth.php'.$_SERVER['PATH_INFO'].'?'.$_SERVER['QUERY_STRING']));
// this will display the login page for us
OCP\Util::checkLoggedIn();
}
}
} else {//params not ok
die('please use e.g. /?app=remoteStorage&getfile=auth.php&userid=admin&redirect_uri=http://host/path&scope=...');
die('please use e.g. '.OCP\Util::linkTo('remoteStorage', 'auth.php').'?userid=admin&redirect_uri=http://host/path&scope=...');
}

View File

@ -0,0 +1,28 @@
<section id="main">
<div id="oauth">
<h2><img src="<?php echo image_path('', 'remoteStorage-big.png'); ?>" alt="remoteStorage" /></h2>
<p><strong><?php echo $_['host'] ?></strong>
requests read &amp; write access to your
<?php
$categories = $_['categories'];
if(!count($categories)) {
echo $categories[0];
} else {
echo '<em>'.$categories[0].'</em>';
if(count($categories)==2) {
echo ' and <em>'.$categories[1].'</em>';
} else if(count($categories)>2) {
for($i=1; $i<count($categories)-1; $i++) {
echo ', <em>'.$categories[$i].'</em>';
}
echo ', and <em>'.$categories[$i].'</em>';
}
}
?>.
</p>
<form accept-charset="UTF-8" method="post">
<input id="allow-auth" name="allow" type="submit" value="Allow" />
<input id="deny-auth" name="deny" type="submit" value="Deny" />
</form>
</div>
</section>

View File

@ -39,8 +39,8 @@
"Admin" => "Admin",
"Help" => "Hilfe",
"Access forbidden" => "Zugang verboten",
"Cloud not found" => "Cloud nicht verfügbar",
"Edit categories" => "Kategorien ändern",
"Cloud not found" => "Cloud nicht gefunden",
"Edit categories" => "Kategorien editieren",
"Add" => "Hinzufügen",
"Create an <strong>admin account</strong>" => "<strong>Administrator-Konto</strong> anlegen",
"Password" => "Passwort",
@ -53,7 +53,7 @@
"Database name" => "Datenbank-Name",
"Database host" => "Datenbank-Host",
"Finish setup" => "Installation abschließen",
"web services under your control" => "web services under your control",
"web services under your control" => "Web Services unter ihrer Kontrolle",
"Log out" => "Abmelden",
"Lost your password?" => "Passwort vergessen?",
"remember" => "merken",

View File

@ -23,8 +23,6 @@
*
*/
// Do not load FS ...
$RUNTIME_NOSETUPFS = true;
// only need filesystem apps
$RUNTIME_APPTYPES=array('filesystem','authentication');
require_once('../lib/base.php');

View File

@ -26,98 +26,21 @@ $RUNTIME_NOAPPS = TRUE; //no apps, yet
require_once('lib/base.php');
// Setup required :
$not_installed = !OC_Config::getValue('installed', false);
if($not_installed) {
// Check for autosetup:
$autosetup_file = OC::$SERVERROOT."/config/autoconfig.php";
if( file_exists( $autosetup_file )){
OC_Log::write('core','Autoconfig file found, setting up owncloud...',OC_Log::INFO);
include( $autosetup_file );
$_POST['install'] = 'true';
$_POST = array_merge ($_POST, $AUTOCONFIG);
unlink($autosetup_file);
}
OC_Util::addScript('setup');
require_once('setup.php');
exit();
}
// Handle WebDAV
if($_SERVER['REQUEST_METHOD']=='PROPFIND'){
header('location: '.OC_Helper::linkToRemote('webdav'));
exit();
}
elseif(!OC_User::isLoggedIn() && substr(OC::$REQUESTEDFILE,-3) == 'css'){
OC_App::loadApps();
OC::loadfile();
}
// Someone is logged in :
elseif(OC_User::isLoggedIn()) {
OC_App::loadApps();
if(isset($_GET["logout"]) and ($_GET["logout"])) {
OC_User::logout();
header("Location: ".OC::$WEBROOT.'/');
exit();
}else{
if(is_null(OC::$REQUESTEDFILE)){
OC::loadapp();
}else{
OC::loadfile();
}
}
// For all others cases, we display the guest page :
} else {
if (!OC::handleRequest()) {
// Not handled -> we display the login page:
OC_App::loadApps(array('prelogin'));
$error = false;
// remember was checked after last login
if(isset($_COOKIE["oc_remember_login"]) && isset($_COOKIE["oc_token"]) && isset($_COOKIE["oc_username"]) && $_COOKIE["oc_remember_login"]) {
OC_App::loadApps(array('authentication'));
if(defined("DEBUG") && DEBUG) {
OC_Log::write('core','Trying to login from cookie',OC_Log::DEBUG);
}
// confirm credentials in cookie
if(isset($_COOKIE['oc_token']) && OC_User::userExists($_COOKIE['oc_username']) &&
OC_Preferences::getValue($_COOKIE['oc_username'], "login", "token") == $_COOKIE['oc_token']) {
OC_User::setUserId($_COOKIE['oc_username']);
OC_Util::redirectToDefaultPage();
}
else {
OC_User::unsetMagicInCookie();
}
if (OC::tryRememberLogin()) {
// nothing more to do
// Someone wants to log in :
} elseif(isset($_POST["user"]) and isset($_POST['password']) and isset($_SESSION['sectoken']) and isset($_POST['sectoken']) and ($_SESSION['sectoken']==$_POST['sectoken']) ) {
OC_App::loadApps();
if(OC_User::login($_POST["user"], $_POST["password"])) {
if(!empty($_POST["remember_login"])){
if(defined("DEBUG") && DEBUG) {
OC_Log::write('core','Setting remember login to cookie',OC_Log::DEBUG);
}
$token = md5($_POST["user"].time().$_POST['password']);
OC_Preferences::setValue($_POST['user'], 'login', 'token', $token);
OC_User::setMagicInCookie($_POST["user"], $token);
}
else {
OC_User::unsetMagicInCookie();
}
OC_Util::redirectToDefaultPage();
} else {
$error = true;
}
} elseif (OC::tryFormLogin()) {
$error = true;
// The user is already authenticated using Apaches AuthType Basic... very usable in combination with LDAP
} elseif(isset($_SERVER["PHP_AUTH_USER"]) && isset($_SERVER["PHP_AUTH_PW"])){
OC_App::loadApps(array('authentication'));
if (OC_User::login($_SERVER["PHP_AUTH_USER"],$_SERVER["PHP_AUTH_PW"])) {
//OC_Log::write('core',"Logged in with HTTP Authentication",OC_Log::DEBUG);
OC_User::unsetMagicInCookie();
$_REQUEST['redirect_url'] = (isset($_SERVER['REQUEST_URI'])?$_SERVER['REQUEST_URI']:'');
OC_Util::redirectToDefaultPage();
}else{
$error = true;
}
} elseif(OC::tryBasicAuthLogin()) {
$error = true;
}
if(!array_key_exists('sectoken', $_SESSION) || (array_key_exists('sectoken', $_SESSION) && is_null(OC::$REQUESTEDFILE)) || substr(OC::$REQUESTEDFILE, -3) == 'php'){
$sectoken=rand(1000000,9999999);

View File

@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-05 19:00+0200\n"
"PO-Revision-Date: 2012-08-05 17:01+0000\n"
"Last-Translator: owncloud_robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-08-07 02:05+0200\n"
"PO-Revision-Date: 2012-08-06 07:32+0000\n"
"Last-Translator: rogerc <rcalvoi@yahoo.com>\n"
"Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -21,7 +21,7 @@ msgstr ""
#: ajax/apps/ocs.php:23
msgid "Unable to load list from App Store"
msgstr ""
msgstr "No s'ha pogut carregar la llista des de l'App Store"
#: ajax/lostpassword.php:14
msgid "Email saved"
@ -49,7 +49,7 @@ msgstr "S'ha canviat l'idioma"
#: js/apps.js:18
msgid "Error"
msgstr ""
msgstr "Error"
#: js/apps.js:39 js/apps.js:73
msgid "Disable"

View File

@ -22,8 +22,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-04 02:02+0200\n"
"PO-Revision-Date: 2012-08-04 00:02+0000\n"
"POT-Creation-Date: 2012-08-07 02:04+0200\n"
"PO-Revision-Date: 2012-08-06 16:13+0000\n"
"Last-Translator: owncloud_robot <thomas.mueller@tmit.eu>\n"
"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
@ -489,11 +489,11 @@ msgstr "Ausklappen/Einklappen des Adressbuches"
#: templates/index.php:48
msgid "Next addressbook"
msgstr ""
msgstr "Nächstes Adressbuch"
#: templates/index.php:50
msgid "Previous addressbook"
msgstr ""
msgstr "Vorheriges Adressbuch"
#: templates/index.php:54
msgid "Actions"
@ -545,7 +545,7 @@ msgstr "Name ändern"
#: templates/part.contact.php:40 templates/part.contact.php:42
#: templates/part.contact.php:44 templates/part.contact.php:46
#: templates/part.contact.php:50 templates/settings.php:34
#: templates/part.contact.php:50 templates/settings.php:33
msgid "Delete"
msgstr "Löschen"
@ -856,30 +856,30 @@ msgstr "Schreibgeschützten VCF-Link anzeigen"
msgid "Download"
msgstr "Herunterladen"
#: templates/settings.php:31
#: templates/settings.php:30
msgid "Edit"
msgstr "Bearbeiten"
#: templates/settings.php:41
#: templates/settings.php:40
msgid "New Address Book"
msgstr "Neues Adressbuch"
#: templates/settings.php:42
#: templates/settings.php:41
msgid "Name"
msgstr "Name"
#: templates/settings.php:43
#: templates/settings.php:42
msgid "Description"
msgstr "Beschreibung"
#: templates/settings.php:45
#: templates/settings.php:43
msgid "Save"
msgstr "Speichern"
#: templates/settings.php:46
#: templates/settings.php:44
msgid "Cancel"
msgstr "Abbrechen"
#: templates/settings.php:51
#: templates/settings.php:49
msgid "More..."
msgstr "Mehr..."

View File

@ -15,9 +15,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-02 02:02+0200\n"
"PO-Revision-Date: 2012-08-02 00:03+0000\n"
"Last-Translator: owncloud_robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-08-07 02:04+0200\n"
"PO-Revision-Date: 2012-08-06 19:45+0000\n"
"Last-Translator: designpoint <info@designpoint.ch>\n"
"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -45,51 +45,51 @@ msgstr "ui-datepicker-group';if(i[1]>1)switch(G){case 0:y+="
msgid "Settings"
msgstr "Einstellungen"
#: js/js.js:573
#: js/js.js:572
msgid "January"
msgstr "Januar"
#: js/js.js:573
#: js/js.js:572
msgid "February"
msgstr "Februar"
#: js/js.js:573
#: js/js.js:572
msgid "March"
msgstr "März"
#: js/js.js:573
#: js/js.js:572
msgid "April"
msgstr "April"
#: js/js.js:573
#: js/js.js:572
msgid "May"
msgstr "Mai"
#: js/js.js:573
#: js/js.js:572
msgid "June"
msgstr "Juni"
#: js/js.js:574
#: js/js.js:573
msgid "July"
msgstr "Juli"
#: js/js.js:574
#: js/js.js:573
msgid "August"
msgstr "August"
#: js/js.js:574
#: js/js.js:573
msgid "September"
msgstr "September"
#: js/js.js:574
#: js/js.js:573
msgid "October"
msgstr "Oktober"
#: js/js.js:574
#: js/js.js:573
msgid "November"
msgstr "November"
#: js/js.js:574
#: js/js.js:573
msgid "December"
msgstr "Dezember"
@ -188,11 +188,11 @@ msgstr "Zugang verboten"
#: templates/404.php:12
msgid "Cloud not found"
msgstr "Cloud nicht verfügbar"
msgstr "Cloud nicht gefunden"
#: templates/edit_categories_dialog.php:4
msgid "Edit categories"
msgstr "Kategorien ändern"
msgstr "Kategorien editieren"
#: templates/edit_categories_dialog.php:14
msgid "Add"
@ -245,7 +245,7 @@ msgstr "Installation abschließen"
#: templates/layout.guest.php:42
msgid "web services under your control"
msgstr "web services under your control"
msgstr "Web Services unter ihrer Kontrolle"
#: templates/layout.user.php:49
msgid "Log out"

View File

@ -15,9 +15,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-07-31 22:53+0200\n"
"PO-Revision-Date: 2012-07-31 20:54+0000\n"
"Last-Translator: owncloud_robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-08-07 02:04+0200\n"
"PO-Revision-Date: 2012-08-06 20:04+0000\n"
"Last-Translator: designpoint <info@designpoint.ch>\n"
"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -69,23 +69,23 @@ msgstr "Löschen"
#: js/filelist.js:141
msgid "already exists"
msgstr ""
msgstr "ist bereits vorhanden"
#: js/filelist.js:141
msgid "replace"
msgstr ""
msgstr "Ersetzen"
#: js/filelist.js:141
msgid "cancel"
msgstr ""
msgstr "Abbrechen"
#: js/filelist.js:195
msgid "replaced"
msgstr ""
msgstr "Ersetzt"
#: js/filelist.js:195
msgid "with"
msgstr ""
msgstr "mit"
#: js/filelist.js:195 js/filelist.js:256
msgid "undo"
@ -101,7 +101,7 @@ msgstr "Erstelle ZIP-Datei. Dies kann eine Weile dauern."
#: js/files.js:199
msgid "Unable to upload your file as it is a directory or has 0 bytes"
msgstr "Datei kann nicht hochgeladen werden da sie ein Verzeichniss ist oder 0 bytes hat."
msgstr "Datei kann nicht hochgeladen werden da sie ein Verzeichnis ist oder 0 Bytes hat."
#: js/files.js:199
msgid "Upload Error"
@ -109,7 +109,7 @@ msgstr "Fehler beim Hochladen"
#: js/files.js:227 js/files.js:318 js/files.js:347
msgid "Pending"
msgstr "Anstehend"
msgstr "Ausstehend"
#: js/files.js:332
msgid "Upload cancelled."
@ -119,27 +119,27 @@ msgstr "Hochladen abgebrochen."
msgid "Invalid name, '/' is not allowed."
msgstr "Ungültiger Name, \"/\" ist nicht erlaubt."
#: js/files.js:631 templates/index.php:55
#: js/files.js:694 templates/index.php:55
msgid "Size"
msgstr "Größe"
#: js/files.js:632 templates/index.php:56
#: js/files.js:695 templates/index.php:56
msgid "Modified"
msgstr "Bearbeitet"
#: js/files.js:659
#: js/files.js:722
msgid "folder"
msgstr "Ordner"
#: js/files.js:661
#: js/files.js:724
msgid "folders"
msgstr "Ordner"
#: js/files.js:669
#: js/files.js:732
msgid "file"
msgstr "Datei"
#: js/files.js:671
#: js/files.js:734
msgid "files"
msgstr "Dateien"
@ -197,7 +197,7 @@ msgstr "Upload abbrechen"
#: templates/index.php:39
msgid "Nothing in here. Upload something!"
msgstr "Alles leer. Lad was hoch!"
msgstr "Alles leer. Lade etwas hoch!"
#: templates/index.php:47
msgid "Name"

View File

@ -15,9 +15,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-05 19:00+0200\n"
"PO-Revision-Date: 2012-08-05 17:01+0000\n"
"Last-Translator: owncloud_robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-08-07 02:05+0200\n"
"PO-Revision-Date: 2012-08-06 19:52+0000\n"
"Last-Translator: designpoint <info@designpoint.ch>\n"
"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -27,7 +27,7 @@ msgstr ""
#: ajax/apps/ocs.php:23
msgid "Unable to load list from App Store"
msgstr ""
msgstr "Liste der Apps im Store konnte nicht geladen werden."
#: ajax/lostpassword.php:14
msgid "Email saved"
@ -55,7 +55,7 @@ msgstr "Sprache geändert"
#: js/apps.js:18
msgid "Error"
msgstr ""
msgstr "Fehler"
#: js/apps.js:39 js/apps.js:73
msgid "Disable"
@ -115,7 +115,7 @@ msgstr "Große Dateien verwalten"
#: templates/help.php:10
msgid "Ask a question"
msgstr "Stell' eine Frage"
msgstr "Stell eine Frage"
#: templates/help.php:22
msgid "Problems connecting to help database."

View File

@ -4,13 +4,14 @@
#
# Translators:
# Hossein nag <h.sname@yahoo.com>, 2012.
# vahid chakoshy <vchakoshy@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-07-31 22:53+0200\n"
"PO-Revision-Date: 2012-07-31 20:54+0000\n"
"Last-Translator: owncloud_robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-08-07 02:04+0200\n"
"PO-Revision-Date: 2012-08-06 01:10+0000\n"
"Last-Translator: vahid chakoshy <vchakoshy@gmail.com>\n"
"Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -62,7 +63,7 @@ msgstr "پاک کردن"
#: js/filelist.js:141
msgid "already exists"
msgstr ""
msgstr "وجود دارد"
#: js/filelist.js:141
msgid "replace"
@ -86,7 +87,7 @@ msgstr ""
#: js/filelist.js:256
msgid "deleted"
msgstr ""
msgstr "حذف شده"
#: js/files.js:170
msgid "generating ZIP-file, it may take some time."
@ -112,27 +113,27 @@ msgstr "بار گذاری لغو شد"
msgid "Invalid name, '/' is not allowed."
msgstr "نام نامناسب '/' غیرفعال است"
#: js/files.js:631 templates/index.php:55
#: js/files.js:694 templates/index.php:55
msgid "Size"
msgstr "اندازه"
#: js/files.js:632 templates/index.php:56
#: js/files.js:695 templates/index.php:56
msgid "Modified"
msgstr "تغییر یافته"
#: js/files.js:659
#: js/files.js:722
msgid "folder"
msgstr "پوشه"
#: js/files.js:661
#: js/files.js:724
msgid "folders"
msgstr "پوشه ها"
#: js/files.js:669
#: js/files.js:732
msgid "file"
msgstr "پرونده"
#: js/files.js:671
#: js/files.js:734
msgid "files"
msgstr "پرونده ها"

View File

@ -4,13 +4,14 @@
#
# Translators:
# Hossein nag <h.sname@yahoo.com>, 2012.
# vahid chakoshy <vchakoshy@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-05 19:00+0200\n"
"PO-Revision-Date: 2012-08-05 17:01+0000\n"
"Last-Translator: owncloud_robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-08-07 02:05+0200\n"
"PO-Revision-Date: 2012-08-06 01:13+0000\n"
"Last-Translator: vahid chakoshy <vchakoshy@gmail.com>\n"
"Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -48,7 +49,7 @@ msgstr "زبان تغییر کرد"
#: js/apps.js:18
msgid "Error"
msgstr ""
msgstr "خطا"
#: js/apps.js:39 js/apps.js:73
msgid "Disable"
@ -68,7 +69,7 @@ msgstr "__language_name__"
#: templates/admin.php:14
msgid "Security Warning"
msgstr ""
msgstr "اخطار امنیتی"
#: templates/admin.php:28
msgid "Log"

60
l10n/fi/bookmarks.po Normal file
View File

@ -0,0 +1,60 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: 2012-07-27 22:17+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: appinfo/app.php:14
msgid "Bookmarks"
msgstr ""
#: bookmarksHelper.php:99
msgid "unnamed"
msgstr ""
#: templates/bookmarklet.php:5
msgid ""
"Drag this to your browser bookmarks and click it, when you want to bookmark "
"a webpage quickly:"
msgstr ""
#: templates/bookmarklet.php:7
msgid "Read later"
msgstr ""
#: templates/list.php:13
msgid "Address"
msgstr ""
#: templates/list.php:14
msgid "Title"
msgstr ""
#: templates/list.php:15
msgid "Tags"
msgstr ""
#: templates/list.php:16
msgid "Save bookmark"
msgstr ""
#: templates/list.php:22
msgid "You have no bookmarks"
msgstr ""
#: templates/settings.php:11
msgid "Bookmarklet <br />"
msgstr ""

814
l10n/fi/calendar.po Normal file
View File

@ -0,0 +1,814 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: 2011-09-03 16:52+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: ajax/cache/status.php:19
msgid "Not all calendars are completely cached"
msgstr ""
#: ajax/cache/status.php:21
msgid "Everything seems to be completely cached"
msgstr ""
#: ajax/categories/rescan.php:29
msgid "No calendars found."
msgstr ""
#: ajax/categories/rescan.php:37
msgid "No events found."
msgstr ""
#: ajax/event/edit.form.php:20
msgid "Wrong calendar"
msgstr ""
#: ajax/import/dropimport.php:29 ajax/import/import.php:64
msgid ""
"The file contained either no events or all events are already saved in your "
"calendar."
msgstr ""
#: ajax/import/dropimport.php:31 ajax/import/import.php:67
msgid "events has been saved in the new calendar"
msgstr ""
#: ajax/import/import.php:56
msgid "Import failed"
msgstr ""
#: ajax/import/import.php:69
msgid "events has been saved in your calendar"
msgstr ""
#: ajax/settings/guesstimezone.php:25
msgid "New Timezone:"
msgstr ""
#: ajax/settings/settimezone.php:23
msgid "Timezone changed"
msgstr ""
#: ajax/settings/settimezone.php:25
msgid "Invalid request"
msgstr ""
#: appinfo/app.php:35 templates/calendar.php:15
#: templates/part.eventform.php:33 templates/part.showevent.php:33
#: templates/settings.php:12
msgid "Calendar"
msgstr ""
#: js/calendar.js:828
msgid "ddd"
msgstr ""
#: js/calendar.js:829
msgid "ddd M/d"
msgstr ""
#: js/calendar.js:830
msgid "dddd M/d"
msgstr ""
#: js/calendar.js:833
msgid "MMMM yyyy"
msgstr ""
#: js/calendar.js:835
msgid "MMM d[ yyyy]{ '&#8212;'[ MMM] d yyyy}"
msgstr ""
#: js/calendar.js:837
msgid "dddd, MMM d, yyyy"
msgstr ""
#: lib/app.php:121
msgid "Birthday"
msgstr ""
#: lib/app.php:122
msgid "Business"
msgstr ""
#: lib/app.php:123
msgid "Call"
msgstr ""
#: lib/app.php:124
msgid "Clients"
msgstr ""
#: lib/app.php:125
msgid "Deliverer"
msgstr ""
#: lib/app.php:126
msgid "Holidays"
msgstr ""
#: lib/app.php:127
msgid "Ideas"
msgstr ""
#: lib/app.php:128
msgid "Journey"
msgstr ""
#: lib/app.php:129
msgid "Jubilee"
msgstr ""
#: lib/app.php:130
msgid "Meeting"
msgstr ""
#: lib/app.php:131
msgid "Other"
msgstr ""
#: lib/app.php:132
msgid "Personal"
msgstr ""
#: lib/app.php:133
msgid "Projects"
msgstr ""
#: lib/app.php:134
msgid "Questions"
msgstr ""
#: lib/app.php:135
msgid "Work"
msgstr ""
#: lib/app.php:351 lib/app.php:361
msgid "by"
msgstr ""
#: lib/app.php:359 lib/app.php:399
msgid "unnamed"
msgstr ""
#: lib/import.php:184 templates/calendar.php:12
#: templates/part.choosecalendar.php:22
msgid "New Calendar"
msgstr ""
#: lib/object.php:372
msgid "Does not repeat"
msgstr ""
#: lib/object.php:373
msgid "Daily"
msgstr ""
#: lib/object.php:374
msgid "Weekly"
msgstr ""
#: lib/object.php:375
msgid "Every Weekday"
msgstr ""
#: lib/object.php:376
msgid "Bi-Weekly"
msgstr ""
#: lib/object.php:377
msgid "Monthly"
msgstr ""
#: lib/object.php:378
msgid "Yearly"
msgstr ""
#: lib/object.php:388
msgid "never"
msgstr ""
#: lib/object.php:389
msgid "by occurrences"
msgstr ""
#: lib/object.php:390
msgid "by date"
msgstr ""
#: lib/object.php:400
msgid "by monthday"
msgstr ""
#: lib/object.php:401
msgid "by weekday"
msgstr ""
#: lib/object.php:411 templates/calendar.php:5 templates/settings.php:42
msgid "Monday"
msgstr ""
#: lib/object.php:412 templates/calendar.php:5
msgid "Tuesday"
msgstr ""
#: lib/object.php:413 templates/calendar.php:5
msgid "Wednesday"
msgstr ""
#: lib/object.php:414 templates/calendar.php:5
msgid "Thursday"
msgstr ""
#: lib/object.php:415 templates/calendar.php:5
msgid "Friday"
msgstr ""
#: lib/object.php:416 templates/calendar.php:5
msgid "Saturday"
msgstr ""
#: lib/object.php:417 templates/calendar.php:5 templates/settings.php:43
msgid "Sunday"
msgstr ""
#: lib/object.php:427
msgid "events week of month"
msgstr ""
#: lib/object.php:428
msgid "first"
msgstr ""
#: lib/object.php:429
msgid "second"
msgstr ""
#: lib/object.php:430
msgid "third"
msgstr ""
#: lib/object.php:431
msgid "fourth"
msgstr ""
#: lib/object.php:432
msgid "fifth"
msgstr ""
#: lib/object.php:433
msgid "last"
msgstr ""
#: lib/object.php:467 templates/calendar.php:7
msgid "January"
msgstr ""
#: lib/object.php:468 templates/calendar.php:7
msgid "February"
msgstr ""
#: lib/object.php:469 templates/calendar.php:7
msgid "March"
msgstr ""
#: lib/object.php:470 templates/calendar.php:7
msgid "April"
msgstr ""
#: lib/object.php:471 templates/calendar.php:7
msgid "May"
msgstr ""
#: lib/object.php:472 templates/calendar.php:7
msgid "June"
msgstr ""
#: lib/object.php:473 templates/calendar.php:7
msgid "July"
msgstr ""
#: lib/object.php:474 templates/calendar.php:7
msgid "August"
msgstr ""
#: lib/object.php:475 templates/calendar.php:7
msgid "September"
msgstr ""
#: lib/object.php:476 templates/calendar.php:7
msgid "October"
msgstr ""
#: lib/object.php:477 templates/calendar.php:7
msgid "November"
msgstr ""
#: lib/object.php:478 templates/calendar.php:7
msgid "December"
msgstr ""
#: lib/object.php:488
msgid "by events date"
msgstr ""
#: lib/object.php:489
msgid "by yearday(s)"
msgstr ""
#: lib/object.php:490
msgid "by weeknumber(s)"
msgstr ""
#: lib/object.php:491
msgid "by day and month"
msgstr ""
#: lib/search.php:35 lib/search.php:37 lib/search.php:40
msgid "Date"
msgstr ""
#: lib/search.php:43
msgid "Cal."
msgstr ""
#: templates/calendar.php:6
msgid "Sun."
msgstr ""
#: templates/calendar.php:6
msgid "Mon."
msgstr ""
#: templates/calendar.php:6
msgid "Tue."
msgstr ""
#: templates/calendar.php:6
msgid "Wed."
msgstr ""
#: templates/calendar.php:6
msgid "Thu."
msgstr ""
#: templates/calendar.php:6
msgid "Fri."
msgstr ""
#: templates/calendar.php:6
msgid "Sat."
msgstr ""
#: templates/calendar.php:8
msgid "Jan."
msgstr ""
#: templates/calendar.php:8
msgid "Feb."
msgstr ""
#: templates/calendar.php:8
msgid "Mar."
msgstr ""
#: templates/calendar.php:8
msgid "Apr."
msgstr ""
#: templates/calendar.php:8
msgid "May."
msgstr ""
#: templates/calendar.php:8
msgid "Jun."
msgstr ""
#: templates/calendar.php:8
msgid "Jul."
msgstr ""
#: templates/calendar.php:8
msgid "Aug."
msgstr ""
#: templates/calendar.php:8
msgid "Sep."
msgstr ""
#: templates/calendar.php:8
msgid "Oct."
msgstr ""
#: templates/calendar.php:8
msgid "Nov."
msgstr ""
#: templates/calendar.php:8
msgid "Dec."
msgstr ""
#: templates/calendar.php:11
msgid "All day"
msgstr ""
#: templates/calendar.php:13
msgid "Missing fields"
msgstr ""
#: templates/calendar.php:14 templates/part.eventform.php:19
#: templates/part.showevent.php:11
msgid "Title"
msgstr ""
#: templates/calendar.php:16
msgid "From Date"
msgstr ""
#: templates/calendar.php:17
msgid "From Time"
msgstr ""
#: templates/calendar.php:18
msgid "To Date"
msgstr ""
#: templates/calendar.php:19
msgid "To Time"
msgstr ""
#: templates/calendar.php:20
msgid "The event ends before it starts"
msgstr ""
#: templates/calendar.php:21
msgid "There was a database fail"
msgstr ""
#: templates/calendar.php:38
msgid "Week"
msgstr ""
#: templates/calendar.php:39
msgid "Month"
msgstr ""
#: templates/calendar.php:40
msgid "List"
msgstr ""
#: templates/calendar.php:44
msgid "Today"
msgstr ""
#: templates/calendar.php:45
msgid "Calendars"
msgstr ""
#: templates/calendar.php:59
msgid "There was a fail, while parsing the file."
msgstr ""
#: templates/part.choosecalendar.php:1
msgid "Choose active calendars"
msgstr ""
#: templates/part.choosecalendar.php:2
msgid "Your calendars"
msgstr ""
#: templates/part.choosecalendar.php:27
#: templates/part.choosecalendar.rowfields.php:11
msgid "CalDav Link"
msgstr ""
#: templates/part.choosecalendar.php:31
msgid "Shared calendars"
msgstr ""
#: templates/part.choosecalendar.php:48
msgid "No shared calendars"
msgstr ""
#: templates/part.choosecalendar.rowfields.php:8
msgid "Share Calendar"
msgstr ""
#: templates/part.choosecalendar.rowfields.php:14
msgid "Download"
msgstr ""
#: templates/part.choosecalendar.rowfields.php:17
msgid "Edit"
msgstr ""
#: templates/part.choosecalendar.rowfields.php:20
#: templates/part.editevent.php:9
msgid "Delete"
msgstr ""
#: templates/part.choosecalendar.rowfields.shared.php:4
msgid "shared with you by"
msgstr ""
#: templates/part.editcalendar.php:9
msgid "New calendar"
msgstr ""
#: templates/part.editcalendar.php:9
msgid "Edit calendar"
msgstr ""
#: templates/part.editcalendar.php:12
msgid "Displayname"
msgstr ""
#: templates/part.editcalendar.php:23
msgid "Active"
msgstr ""
#: templates/part.editcalendar.php:29
msgid "Calendar color"
msgstr ""
#: templates/part.editcalendar.php:42
msgid "Save"
msgstr ""
#: templates/part.editcalendar.php:42 templates/part.editevent.php:8
#: templates/part.newevent.php:6
msgid "Submit"
msgstr ""
#: templates/part.editcalendar.php:43
msgid "Cancel"
msgstr ""
#: templates/part.editevent.php:1
msgid "Edit an event"
msgstr ""
#: templates/part.editevent.php:10
msgid "Export"
msgstr ""
#: templates/part.eventform.php:8 templates/part.showevent.php:3
msgid "Eventinfo"
msgstr ""
#: templates/part.eventform.php:9 templates/part.showevent.php:4
msgid "Repeating"
msgstr ""
#: templates/part.eventform.php:10 templates/part.showevent.php:5
msgid "Alarm"
msgstr ""
#: templates/part.eventform.php:11 templates/part.showevent.php:6
msgid "Attendees"
msgstr ""
#: templates/part.eventform.php:13
msgid "Share"
msgstr ""
#: templates/part.eventform.php:21
msgid "Title of the Event"
msgstr ""
#: templates/part.eventform.php:27 templates/part.showevent.php:19
msgid "Category"
msgstr ""
#: templates/part.eventform.php:29
msgid "Separate categories with commas"
msgstr ""
#: templates/part.eventform.php:30
msgid "Edit categories"
msgstr ""
#: templates/part.eventform.php:56 templates/part.showevent.php:52
msgid "All Day Event"
msgstr ""
#: templates/part.eventform.php:60 templates/part.showevent.php:56
msgid "From"
msgstr ""
#: templates/part.eventform.php:68 templates/part.showevent.php:64
msgid "To"
msgstr ""
#: templates/part.eventform.php:76 templates/part.showevent.php:72
msgid "Advanced options"
msgstr ""
#: templates/part.eventform.php:81 templates/part.showevent.php:77
msgid "Location"
msgstr ""
#: templates/part.eventform.php:83
msgid "Location of the Event"
msgstr ""
#: templates/part.eventform.php:89 templates/part.showevent.php:85
msgid "Description"
msgstr ""
#: templates/part.eventform.php:91
msgid "Description of the Event"
msgstr ""
#: templates/part.eventform.php:100 templates/part.showevent.php:95
msgid "Repeat"
msgstr ""
#: templates/part.eventform.php:107 templates/part.showevent.php:102
msgid "Advanced"
msgstr ""
#: templates/part.eventform.php:151 templates/part.showevent.php:146
msgid "Select weekdays"
msgstr ""
#: templates/part.eventform.php:164 templates/part.eventform.php:177
#: templates/part.showevent.php:159 templates/part.showevent.php:172
msgid "Select days"
msgstr ""
#: templates/part.eventform.php:169 templates/part.showevent.php:164
msgid "and the events day of year."
msgstr ""
#: templates/part.eventform.php:182 templates/part.showevent.php:177
msgid "and the events day of month."
msgstr ""
#: templates/part.eventform.php:190 templates/part.showevent.php:185
msgid "Select months"
msgstr ""
#: templates/part.eventform.php:203 templates/part.showevent.php:198
msgid "Select weeks"
msgstr ""
#: templates/part.eventform.php:208 templates/part.showevent.php:203
msgid "and the events week of year."
msgstr ""
#: templates/part.eventform.php:214 templates/part.showevent.php:209
msgid "Interval"
msgstr ""
#: templates/part.eventform.php:220 templates/part.showevent.php:215
msgid "End"
msgstr ""
#: templates/part.eventform.php:233 templates/part.showevent.php:228
msgid "occurrences"
msgstr ""
#: templates/part.import.php:14
msgid "create a new calendar"
msgstr ""
#: templates/part.import.php:17
msgid "Import a calendar file"
msgstr ""
#: templates/part.import.php:24
msgid "Please choose a calendar"
msgstr ""
#: templates/part.import.php:36
msgid "Name of new calendar"
msgstr ""
#: templates/part.import.php:44
msgid "Take an available name!"
msgstr ""
#: templates/part.import.php:45
msgid ""
"A Calendar with this name already exists. If you continue anyhow, these "
"calendars will be merged."
msgstr ""
#: templates/part.import.php:47
msgid "Import"
msgstr ""
#: templates/part.import.php:56
msgid "Close Dialog"
msgstr ""
#: templates/part.newevent.php:1
msgid "Create a new event"
msgstr ""
#: templates/part.showevent.php:1
msgid "View an event"
msgstr ""
#: templates/part.showevent.php:23
msgid "No categories selected"
msgstr ""
#: templates/part.showevent.php:37
msgid "of"
msgstr ""
#: templates/part.showevent.php:59 templates/part.showevent.php:67
msgid "at"
msgstr ""
#: templates/settings.php:14
msgid "Timezone"
msgstr ""
#: templates/settings.php:31
msgid "Check always for changes of the timezone"
msgstr ""
#: templates/settings.php:33
msgid "Timeformat"
msgstr ""
#: templates/settings.php:35
msgid "24h"
msgstr ""
#: templates/settings.php:36
msgid "12h"
msgstr ""
#: templates/settings.php:40
msgid "First day of the week"
msgstr ""
#: templates/settings.php:47
msgid "Cache"
msgstr ""
#: templates/settings.php:48
msgid "Clear cache for repeating events"
msgstr ""
#: templates/settings.php:53
msgid "Calendar CalDAV syncing addresses"
msgstr ""
#: templates/settings.php:53
msgid "more info"
msgstr ""
#: templates/settings.php:55
msgid "Primary address (Kontact et al)"
msgstr ""
#: templates/settings.php:57
msgid "iOS/OS X"
msgstr ""
#: templates/settings.php:59
msgid "Read only iCalendar link(s)"
msgstr ""
#: templates/share.dropdown.php:20
msgid "Users"
msgstr ""
#: templates/share.dropdown.php:21
msgid "select users"
msgstr ""
#: templates/share.dropdown.php:36 templates/share.dropdown.php:62
msgid "Editable"
msgstr ""
#: templates/share.dropdown.php:48
msgid "Groups"
msgstr ""
#: templates/share.dropdown.php:49
msgid "select groups"
msgstr ""
#: templates/share.dropdown.php:75
msgid "make public"
msgstr ""

870
l10n/fi/contacts.po Normal file
View File

@ -0,0 +1,870 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: 2011-09-23 17:10+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: ajax/addressbook/activate.php:24 ajax/addressbook/update.php:32
msgid "Error (de)activating addressbook."
msgstr ""
#: ajax/addressbook/delete.php:31 ajax/addressbook/update.php:20
#: ajax/contact/addproperty.php:42 ajax/contact/delete.php:30
#: ajax/contact/saveproperty.php:37
msgid "id is not set."
msgstr ""
#: ajax/addressbook/update.php:24
msgid "Cannot update addressbook with an empty name."
msgstr ""
#: ajax/addressbook/update.php:28
msgid "Error updating addressbook."
msgstr ""
#: ajax/categories/categoriesfor.php:17
msgid "No ID provided"
msgstr ""
#: ajax/categories/categoriesfor.php:34
msgid "Error setting checksum."
msgstr ""
#: ajax/categories/delete.php:19
msgid "No categories selected for deletion."
msgstr ""
#: ajax/categories/delete.php:26
msgid "No address books found."
msgstr ""
#: ajax/categories/delete.php:34
msgid "No contacts found."
msgstr ""
#: ajax/contact/add.php:47
msgid "There was an error adding the contact."
msgstr ""
#: ajax/contact/addproperty.php:39 ajax/contact/saveproperty.php:34
msgid "element name is not set."
msgstr ""
#: ajax/contact/addproperty.php:46
msgid "Could not parse contact: "
msgstr ""
#: ajax/contact/addproperty.php:56
msgid "Cannot add empty property."
msgstr ""
#: ajax/contact/addproperty.php:67
msgid "At least one of the address fields has to be filled out."
msgstr ""
#: ajax/contact/addproperty.php:76
msgid "Trying to add duplicate property: "
msgstr ""
#: ajax/contact/addproperty.php:144
msgid "Error adding contact property: "
msgstr ""
#: ajax/contact/deleteproperty.php:36
msgid "Information about vCard is incorrect. Please reload the page."
msgstr ""
#: ajax/contact/deleteproperty.php:43
msgid "Error deleting contact property."
msgstr ""
#: ajax/contact/details.php:31
msgid "Missing ID"
msgstr ""
#: ajax/contact/details.php:36
msgid "Error parsing VCard for ID: \""
msgstr ""
#: ajax/contact/saveproperty.php:40
msgid "checksum is not set."
msgstr ""
#: ajax/contact/saveproperty.php:60
msgid "Information about vCard is incorrect. Please reload the page: "
msgstr ""
#: ajax/contact/saveproperty.php:67
msgid "Something went FUBAR. "
msgstr ""
#: ajax/contact/saveproperty.php:142
msgid "Error updating contact property."
msgstr ""
#: ajax/currentphoto.php:30 ajax/oc_photo.php:28 ajax/uploadphoto.php:36
#: ajax/uploadphoto.php:68
msgid "No contact ID was submitted."
msgstr ""
#: ajax/currentphoto.php:36
msgid "Error reading contact photo."
msgstr ""
#: ajax/currentphoto.php:48
msgid "Error saving temporary file."
msgstr ""
#: ajax/currentphoto.php:51
msgid "The loading photo is not valid."
msgstr ""
#: ajax/editname.php:31
msgid "Contact ID is missing."
msgstr ""
#: ajax/oc_photo.php:32
msgid "No photo path was submitted."
msgstr ""
#: ajax/oc_photo.php:39
msgid "File doesn't exist:"
msgstr ""
#: ajax/oc_photo.php:44 ajax/oc_photo.php:47
msgid "Error loading image."
msgstr ""
#: ajax/savecrop.php:69
msgid "Error getting contact object."
msgstr ""
#: ajax/savecrop.php:79
msgid "Error getting PHOTO property."
msgstr ""
#: ajax/savecrop.php:98
msgid "Error saving contact."
msgstr ""
#: ajax/savecrop.php:108
msgid "Error resizing image"
msgstr ""
#: ajax/savecrop.php:111
msgid "Error cropping image"
msgstr ""
#: ajax/savecrop.php:114
msgid "Error creating temporary image"
msgstr ""
#: ajax/savecrop.php:117
msgid "Error finding image: "
msgstr ""
#: ajax/uploadimport.php:44 ajax/uploadimport.php:76
msgid "Error uploading contacts to storage."
msgstr ""
#: ajax/uploadimport.php:61 ajax/uploadphoto.php:77
msgid "There is no error, the file uploaded with success"
msgstr ""
#: ajax/uploadimport.php:62 ajax/uploadphoto.php:78
msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini"
msgstr ""
#: ajax/uploadimport.php:63 ajax/uploadphoto.php:79
msgid ""
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
"the HTML form"
msgstr ""
#: ajax/uploadimport.php:64 ajax/uploadphoto.php:80
msgid "The uploaded file was only partially uploaded"
msgstr ""
#: ajax/uploadimport.php:65 ajax/uploadphoto.php:81
msgid "No file was uploaded"
msgstr ""
#: ajax/uploadimport.php:66 ajax/uploadphoto.php:82
msgid "Missing a temporary folder"
msgstr ""
#: ajax/uploadphoto.php:59 ajax/uploadphoto.php:109
msgid "Couldn't save temporary image: "
msgstr ""
#: ajax/uploadphoto.php:62 ajax/uploadphoto.php:112
msgid "Couldn't load temporary image: "
msgstr ""
#: ajax/uploadphoto.php:71
msgid "No file was uploaded. Unknown error"
msgstr ""
#: appinfo/app.php:19
msgid "Contacts"
msgstr ""
#: js/contacts.js:71
msgid "Sorry, this functionality has not been implemented yet"
msgstr ""
#: js/contacts.js:71
msgid "Not implemented"
msgstr ""
#: js/contacts.js:76
msgid "Couldn't get a valid address."
msgstr ""
#: js/contacts.js:76 js/contacts.js:365 js/contacts.js:381 js/contacts.js:393
#: js/contacts.js:675 js/contacts.js:715 js/contacts.js:741 js/contacts.js:850
#: js/contacts.js:856 js/contacts.js:868 js/contacts.js:902
#: js/contacts.js:1165 js/contacts.js:1173 js/contacts.js:1182
#: js/contacts.js:1217 js/contacts.js:1249 js/contacts.js:1261
#: js/contacts.js:1284 js/contacts.js:1421 js/contacts.js:1452
#: js/settings.js:25 js/settings.js:42 js/settings.js:67
msgid "Error"
msgstr ""
#: js/contacts.js:715
msgid "This property has to be non-empty."
msgstr ""
#: js/contacts.js:741
msgid "Couldn't serialize elements."
msgstr ""
#: js/contacts.js:850 js/contacts.js:868
msgid ""
"'deleteProperty' called without type argument. Please report at "
"bugs.owncloud.org"
msgstr ""
#: js/contacts.js:884
msgid "Edit name"
msgstr ""
#: js/contacts.js:1165
msgid "No files selected for upload."
msgstr ""
#: js/contacts.js:1173
msgid ""
"The file you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
#: js/contacts.js:1337 js/contacts.js:1371
msgid "Select type"
msgstr ""
#: js/contacts.js:1390
msgid ""
"Some contacts are marked for deletion, but not deleted yet. Please wait for "
"them to be deleted."
msgstr ""
#: js/loader.js:49
msgid "Result: "
msgstr ""
#: js/loader.js:49
msgid " imported, "
msgstr ""
#: js/loader.js:49
msgid " failed."
msgstr ""
#: js/settings.js:67
msgid "Displayname cannot be empty."
msgstr ""
#: lib/app.php:36
msgid "Addressbook not found: "
msgstr ""
#: lib/app.php:49
msgid "This is not your addressbook."
msgstr ""
#: lib/app.php:68
msgid "Contact could not be found."
msgstr ""
#: lib/app.php:112 templates/part.contact.php:117
msgid "Address"
msgstr ""
#: lib/app.php:113
msgid "Telephone"
msgstr ""
#: lib/app.php:114 templates/part.contact.php:116
msgid "Email"
msgstr ""
#: lib/app.php:115 templates/part.contact.php:39 templates/part.contact.php:40
#: templates/part.contact.php:112
msgid "Organization"
msgstr ""
#: lib/app.php:127 lib/app.php:134 lib/app.php:144 lib/app.php:197
msgid "Work"
msgstr ""
#: lib/app.php:128 lib/app.php:132 lib/app.php:145
msgid "Home"
msgstr ""
#: lib/app.php:133
msgid "Mobile"
msgstr ""
#: lib/app.php:135
msgid "Text"
msgstr ""
#: lib/app.php:136
msgid "Voice"
msgstr ""
#: lib/app.php:137
msgid "Message"
msgstr ""
#: lib/app.php:138
msgid "Fax"
msgstr ""
#: lib/app.php:139
msgid "Video"
msgstr ""
#: lib/app.php:140
msgid "Pager"
msgstr ""
#: lib/app.php:146
msgid "Internet"
msgstr ""
#: lib/app.php:183 templates/part.contact.php:45
#: templates/part.contact.php:114
msgid "Birthday"
msgstr ""
#: lib/app.php:184
msgid "Business"
msgstr ""
#: lib/app.php:185
msgid "Call"
msgstr ""
#: lib/app.php:186
msgid "Clients"
msgstr ""
#: lib/app.php:187
msgid "Deliverer"
msgstr ""
#: lib/app.php:188
msgid "Holidays"
msgstr ""
#: lib/app.php:189
msgid "Ideas"
msgstr ""
#: lib/app.php:190
msgid "Journey"
msgstr ""
#: lib/app.php:191
msgid "Jubilee"
msgstr ""
#: lib/app.php:192
msgid "Meeting"
msgstr ""
#: lib/app.php:193
msgid "Other"
msgstr ""
#: lib/app.php:194
msgid "Personal"
msgstr ""
#: lib/app.php:195
msgid "Projects"
msgstr ""
#: lib/app.php:196
msgid "Questions"
msgstr ""
#: lib/hooks.php:102
msgid "{name}'s Birthday"
msgstr ""
#: lib/search.php:15
msgid "Contact"
msgstr ""
#: templates/index.php:14
msgid "Add Contact"
msgstr ""
#: templates/index.php:15 templates/index.php:16 templates/part.import.php:17
msgid "Import"
msgstr ""
#: templates/index.php:18
msgid "Settings"
msgstr ""
#: templates/index.php:18 templates/settings.php:9
msgid "Addressbooks"
msgstr ""
#: templates/index.php:36 templates/part.import.php:24
msgid "Close"
msgstr ""
#: templates/index.php:37
msgid "Keyboard shortcuts"
msgstr ""
#: templates/index.php:39
msgid "Navigation"
msgstr ""
#: templates/index.php:42
msgid "Next contact in list"
msgstr ""
#: templates/index.php:44
msgid "Previous contact in list"
msgstr ""
#: templates/index.php:46
msgid "Expand/collapse current addressbook"
msgstr ""
#: templates/index.php:48
msgid "Next addressbook"
msgstr ""
#: templates/index.php:50
msgid "Previous addressbook"
msgstr ""
#: templates/index.php:54
msgid "Actions"
msgstr ""
#: templates/index.php:57
msgid "Refresh contacts list"
msgstr ""
#: templates/index.php:59
msgid "Add new contact"
msgstr ""
#: templates/index.php:61
msgid "Add new addressbook"
msgstr ""
#: templates/index.php:63
msgid "Delete current contact"
msgstr ""
#: templates/part.contact.php:17
msgid "Drop photo to upload"
msgstr ""
#: templates/part.contact.php:19
msgid "Delete current photo"
msgstr ""
#: templates/part.contact.php:20
msgid "Edit current photo"
msgstr ""
#: templates/part.contact.php:21
msgid "Upload new photo"
msgstr ""
#: templates/part.contact.php:22
msgid "Select photo from ownCloud"
msgstr ""
#: templates/part.contact.php:35
msgid "Format custom, Short name, Full name, Reverse or Reverse with comma"
msgstr ""
#: templates/part.contact.php:36
msgid "Edit name details"
msgstr ""
#: templates/part.contact.php:40 templates/part.contact.php:42
#: templates/part.contact.php:44 templates/part.contact.php:46
#: templates/part.contact.php:50 templates/settings.php:33
msgid "Delete"
msgstr ""
#: templates/part.contact.php:41 templates/part.contact.php:113
msgid "Nickname"
msgstr ""
#: templates/part.contact.php:42
msgid "Enter nickname"
msgstr ""
#: templates/part.contact.php:43 templates/part.contact.php:119
msgid "Web site"
msgstr ""
#: templates/part.contact.php:44
msgid "http://www.somesite.com"
msgstr ""
#: templates/part.contact.php:44
msgid "Go to web site"
msgstr ""
#: templates/part.contact.php:46
msgid "dd-mm-yyyy"
msgstr ""
#: templates/part.contact.php:47 templates/part.contact.php:120
msgid "Groups"
msgstr ""
#: templates/part.contact.php:49
msgid "Separate groups with commas"
msgstr ""
#: templates/part.contact.php:50
msgid "Edit groups"
msgstr ""
#: templates/part.contact.php:63 templates/part.contact.php:77
msgid "Preferred"
msgstr ""
#: templates/part.contact.php:64
msgid "Please specify a valid email address."
msgstr ""
#: templates/part.contact.php:64
msgid "Enter email address"
msgstr ""
#: templates/part.contact.php:68
msgid "Mail to address"
msgstr ""
#: templates/part.contact.php:69
msgid "Delete email address"
msgstr ""
#: templates/part.contact.php:78
msgid "Enter phone number"
msgstr ""
#: templates/part.contact.php:82
msgid "Delete phone number"
msgstr ""
#: templates/part.contact.php:92
msgid "View on map"
msgstr ""
#: templates/part.contact.php:92
msgid "Edit address details"
msgstr ""
#: templates/part.contact.php:103
msgid "Add notes here."
msgstr ""
#: templates/part.contact.php:110
msgid "Add field"
msgstr ""
#: templates/part.contact.php:115
msgid "Phone"
msgstr ""
#: templates/part.contact.php:118
msgid "Note"
msgstr ""
#: templates/part.contact.php:123
msgid "Download contact"
msgstr ""
#: templates/part.contact.php:124
msgid "Delete contact"
msgstr ""
#: templates/part.cropphoto.php:65
msgid "The temporary image has been removed from cache."
msgstr ""
#: templates/part.edit_address_dialog.php:6
msgid "Edit address"
msgstr ""
#: templates/part.edit_address_dialog.php:10
msgid "Type"
msgstr ""
#: templates/part.edit_address_dialog.php:18
#: templates/part.edit_address_dialog.php:21
msgid "PO Box"
msgstr ""
#: templates/part.edit_address_dialog.php:24
msgid "Street address"
msgstr ""
#: templates/part.edit_address_dialog.php:27
msgid "Street and number"
msgstr ""
#: templates/part.edit_address_dialog.php:30
msgid "Extended"
msgstr ""
#: templates/part.edit_address_dialog.php:33
msgid "Apartment number etc."
msgstr ""
#: templates/part.edit_address_dialog.php:36
#: templates/part.edit_address_dialog.php:39
msgid "City"
msgstr ""
#: templates/part.edit_address_dialog.php:42
msgid "Region"
msgstr ""
#: templates/part.edit_address_dialog.php:45
msgid "E.g. state or province"
msgstr ""
#: templates/part.edit_address_dialog.php:48
msgid "Zipcode"
msgstr ""
#: templates/part.edit_address_dialog.php:51
msgid "Postal code"
msgstr ""
#: templates/part.edit_address_dialog.php:54
#: templates/part.edit_address_dialog.php:57
msgid "Country"
msgstr ""
#: templates/part.edit_name_dialog.php:16
msgid "Addressbook"
msgstr ""
#: templates/part.edit_name_dialog.php:23
msgid "Hon. prefixes"
msgstr ""
#: templates/part.edit_name_dialog.php:27
msgid "Miss"
msgstr ""
#: templates/part.edit_name_dialog.php:28
msgid "Ms"
msgstr ""
#: templates/part.edit_name_dialog.php:29
msgid "Mr"
msgstr ""
#: templates/part.edit_name_dialog.php:30
msgid "Sir"
msgstr ""
#: templates/part.edit_name_dialog.php:31
msgid "Mrs"
msgstr ""
#: templates/part.edit_name_dialog.php:32
msgid "Dr"
msgstr ""
#: templates/part.edit_name_dialog.php:35
msgid "Given name"
msgstr ""
#: templates/part.edit_name_dialog.php:37
msgid "Additional names"
msgstr ""
#: templates/part.edit_name_dialog.php:39
msgid "Family name"
msgstr ""
#: templates/part.edit_name_dialog.php:41
msgid "Hon. suffixes"
msgstr ""
#: templates/part.edit_name_dialog.php:45
msgid "J.D."
msgstr ""
#: templates/part.edit_name_dialog.php:46
msgid "M.D."
msgstr ""
#: templates/part.edit_name_dialog.php:47
msgid "D.O."
msgstr ""
#: templates/part.edit_name_dialog.php:48
msgid "D.C."
msgstr ""
#: templates/part.edit_name_dialog.php:49
msgid "Ph.D."
msgstr ""
#: templates/part.edit_name_dialog.php:50
msgid "Esq."
msgstr ""
#: templates/part.edit_name_dialog.php:51
msgid "Jr."
msgstr ""
#: templates/part.edit_name_dialog.php:52
msgid "Sn."
msgstr ""
#: templates/part.import.php:1
msgid "Import a contacts file"
msgstr ""
#: templates/part.import.php:6
msgid "Please choose the addressbook"
msgstr ""
#: templates/part.import.php:10
msgid "create a new addressbook"
msgstr ""
#: templates/part.import.php:15
msgid "Name of new addressbook"
msgstr ""
#: templates/part.import.php:20
msgid "Importing contacts"
msgstr ""
#: templates/part.no_contacts.php:3
msgid "You have no contacts in your addressbook."
msgstr ""
#: templates/part.no_contacts.php:5
msgid "Add contact"
msgstr ""
#: templates/part.no_contacts.php:6
msgid "Configure addressbooks"
msgstr ""
#: templates/part.selectaddressbook.php:1
msgid "Select Address Books"
msgstr ""
#: templates/part.selectaddressbook.php:20
msgid "Enter name"
msgstr ""
#: templates/part.selectaddressbook.php:22
msgid "Enter description"
msgstr ""
#: templates/settings.php:3
msgid "CardDAV syncing addresses"
msgstr ""
#: templates/settings.php:3
msgid "more info"
msgstr ""
#: templates/settings.php:5
msgid "Primary address (Kontact et al)"
msgstr ""
#: templates/settings.php:7
msgid "iOS/OS X"
msgstr ""
#: templates/settings.php:20
msgid "Show CardDav link"
msgstr ""
#: templates/settings.php:23
msgid "Show read-only VCF link"
msgstr ""
#: templates/settings.php:26
msgid "Download"
msgstr ""
#: templates/settings.php:30
msgid "Edit"
msgstr ""
#: templates/settings.php:40
msgid "New Address Book"
msgstr ""
#: templates/settings.php:41
msgid "Name"
msgstr ""
#: templates/settings.php:42
msgid "Description"
msgstr ""
#: templates/settings.php:43
msgid "Save"
msgstr ""
#: templates/settings.php:44
msgid "Cancel"
msgstr ""
#: templates/settings.php:49
msgid "More..."
msgstr ""

268
l10n/fi/core.po Normal file
View File

@ -0,0 +1,268 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: 2011-07-25 16:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: ajax/vcategories/add.php:23 ajax/vcategories/delete.php:23
msgid "Application name not provided."
msgstr ""
#: ajax/vcategories/add.php:29
msgid "No category to add?"
msgstr ""
#: ajax/vcategories/add.php:36
msgid "This category already exists: "
msgstr ""
#: js/jquery-ui-1.8.16.custom.min.js:511
msgid "ui-datepicker-group';if(i[1]>1)switch(G){case 0:y+="
msgstr ""
#: js/js.js:185 templates/layout.user.php:64 templates/layout.user.php:65
msgid "Settings"
msgstr ""
#: js/js.js:572
msgid "January"
msgstr ""
#: js/js.js:572
msgid "February"
msgstr ""
#: js/js.js:572
msgid "March"
msgstr ""
#: js/js.js:572
msgid "April"
msgstr ""
#: js/js.js:572
msgid "May"
msgstr ""
#: js/js.js:572
msgid "June"
msgstr ""
#: js/js.js:573
msgid "July"
msgstr ""
#: js/js.js:573
msgid "August"
msgstr ""
#: js/js.js:573
msgid "September"
msgstr ""
#: js/js.js:573
msgid "October"
msgstr ""
#: js/js.js:573
msgid "November"
msgstr ""
#: js/js.js:573
msgid "December"
msgstr ""
#: js/oc-dialogs.js:143 js/oc-dialogs.js:163
msgid "Cancel"
msgstr ""
#: js/oc-dialogs.js:159
msgid "No"
msgstr ""
#: js/oc-dialogs.js:160
msgid "Yes"
msgstr ""
#: js/oc-dialogs.js:177
msgid "Ok"
msgstr ""
#: js/oc-vcategories.js:68
msgid "No categories selected for deletion."
msgstr ""
#: js/oc-vcategories.js:68
msgid "Error"
msgstr ""
#: lostpassword/index.php:26
msgid "ownCloud password reset"
msgstr ""
#: lostpassword/templates/email.php:1
msgid "Use the following link to reset your password: {link}"
msgstr ""
#: lostpassword/templates/lostpassword.php:3
msgid "You will receive a link to reset your password via Email."
msgstr ""
#: lostpassword/templates/lostpassword.php:5
msgid "Requested"
msgstr ""
#: lostpassword/templates/lostpassword.php:8
msgid "Login failed!"
msgstr ""
#: lostpassword/templates/lostpassword.php:11 templates/installation.php:25
#: templates/login.php:9
msgid "Username"
msgstr ""
#: lostpassword/templates/lostpassword.php:15
msgid "Request reset"
msgstr ""
#: lostpassword/templates/resetpassword.php:4
msgid "Your password was reset"
msgstr ""
#: lostpassword/templates/resetpassword.php:5
msgid "To login page"
msgstr ""
#: lostpassword/templates/resetpassword.php:8
msgid "New password"
msgstr ""
#: lostpassword/templates/resetpassword.php:11
msgid "Reset password"
msgstr ""
#: strings.php:5
msgid "Personal"
msgstr ""
#: strings.php:6
msgid "Users"
msgstr ""
#: strings.php:7
msgid "Apps"
msgstr ""
#: strings.php:8
msgid "Admin"
msgstr ""
#: strings.php:9
msgid "Help"
msgstr ""
#: templates/403.php:12
msgid "Access forbidden"
msgstr ""
#: templates/404.php:12
msgid "Cloud not found"
msgstr ""
#: templates/edit_categories_dialog.php:4
msgid "Edit categories"
msgstr ""
#: templates/edit_categories_dialog.php:14
msgid "Add"
msgstr ""
#: templates/installation.php:23
msgid "Create an <strong>admin account</strong>"
msgstr ""
#: templates/installation.php:29 templates/login.php:13
msgid "Password"
msgstr ""
#: templates/installation.php:35
msgid "Advanced"
msgstr ""
#: templates/installation.php:37
msgid "Data folder"
msgstr ""
#: templates/installation.php:44
msgid "Configure the database"
msgstr ""
#: templates/installation.php:49 templates/installation.php:60
#: templates/installation.php:70
msgid "will be used"
msgstr ""
#: templates/installation.php:82
msgid "Database user"
msgstr ""
#: templates/installation.php:86
msgid "Database password"
msgstr ""
#: templates/installation.php:90
msgid "Database name"
msgstr ""
#: templates/installation.php:96
msgid "Database host"
msgstr ""
#: templates/installation.php:101
msgid "Finish setup"
msgstr ""
#: templates/layout.guest.php:42
msgid "web services under your control"
msgstr ""
#: templates/layout.user.php:49
msgid "Log out"
msgstr ""
#: templates/login.php:6
msgid "Lost your password?"
msgstr ""
#: templates/login.php:17
msgid "remember"
msgstr ""
#: templates/login.php:18
msgid "Log in"
msgstr ""
#: templates/logout.php:1
msgid "You are logged out."
msgstr ""
#: templates/part.pagenavi.php:3
msgid "prev"
msgstr ""
#: templates/part.pagenavi.php:20
msgid "next"
msgstr ""

222
l10n/fi/files.po Normal file
View File

@ -0,0 +1,222 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: 2011-08-13 02:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: ajax/upload.php:20
msgid "There is no error, the file uploaded with success"
msgstr ""
#: ajax/upload.php:21
msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini"
msgstr ""
#: ajax/upload.php:22
msgid ""
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
"the HTML form"
msgstr ""
#: ajax/upload.php:23
msgid "The uploaded file was only partially uploaded"
msgstr ""
#: ajax/upload.php:24
msgid "No file was uploaded"
msgstr ""
#: ajax/upload.php:25
msgid "Missing a temporary folder"
msgstr ""
#: ajax/upload.php:26
msgid "Failed to write to disk"
msgstr ""
#: appinfo/app.php:6
msgid "Files"
msgstr ""
#: js/fileactions.js:95
msgid "Unshare"
msgstr ""
#: js/fileactions.js:97 templates/index.php:56
msgid "Delete"
msgstr ""
#: js/filelist.js:141
msgid "already exists"
msgstr ""
#: js/filelist.js:141
msgid "replace"
msgstr ""
#: js/filelist.js:141
msgid "cancel"
msgstr ""
#: js/filelist.js:195
msgid "replaced"
msgstr ""
#: js/filelist.js:195
msgid "with"
msgstr ""
#: js/filelist.js:195 js/filelist.js:256
msgid "undo"
msgstr ""
#: js/filelist.js:256
msgid "deleted"
msgstr ""
#: js/files.js:170
msgid "generating ZIP-file, it may take some time."
msgstr ""
#: js/files.js:199
msgid "Unable to upload your file as it is a directory or has 0 bytes"
msgstr ""
#: js/files.js:199
msgid "Upload Error"
msgstr ""
#: js/files.js:227 js/files.js:318 js/files.js:347
msgid "Pending"
msgstr ""
#: js/files.js:332
msgid "Upload cancelled."
msgstr ""
#: js/files.js:456
msgid "Invalid name, '/' is not allowed."
msgstr ""
#: js/files.js:694 templates/index.php:55
msgid "Size"
msgstr ""
#: js/files.js:695 templates/index.php:56
msgid "Modified"
msgstr ""
#: js/files.js:722
msgid "folder"
msgstr ""
#: js/files.js:724
msgid "folders"
msgstr ""
#: js/files.js:732
msgid "file"
msgstr ""
#: js/files.js:734
msgid "files"
msgstr ""
#: templates/admin.php:5
msgid "File handling"
msgstr ""
#: templates/admin.php:7
msgid "Maximum upload size"
msgstr ""
#: templates/admin.php:7
msgid "max. possible: "
msgstr ""
#: templates/admin.php:9
msgid "Needed for multi-file and folder downloads."
msgstr ""
#: templates/admin.php:9
msgid "Enable ZIP-download"
msgstr ""
#: templates/admin.php:11
msgid "0 is unlimited"
msgstr ""
#: templates/admin.php:12
msgid "Maximum input size for ZIP files"
msgstr ""
#: templates/index.php:7
msgid "New"
msgstr ""
#: templates/index.php:9
msgid "Text file"
msgstr ""
#: templates/index.php:10
msgid "Folder"
msgstr ""
#: templates/index.php:11
msgid "From url"
msgstr ""
#: templates/index.php:21
msgid "Upload"
msgstr ""
#: templates/index.php:27
msgid "Cancel upload"
msgstr ""
#: templates/index.php:39
msgid "Nothing in here. Upload something!"
msgstr ""
#: templates/index.php:47
msgid "Name"
msgstr ""
#: templates/index.php:49
msgid "Share"
msgstr ""
#: templates/index.php:51
msgid "Download"
msgstr ""
#: templates/index.php:64
msgid "Upload too large"
msgstr ""
#: templates/index.php:66
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
#: templates/index.php:71
msgid "Files are being scanned, please wait."
msgstr ""
#: templates/index.php:74
msgid "Current scanning"
msgstr ""

58
l10n/fi/gallery.po Normal file
View File

@ -0,0 +1,58 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: 2012-01-15 13:48+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: appinfo/app.php:39
msgid "Pictures"
msgstr ""
#: js/pictures.js:12
msgid "Share gallery"
msgstr ""
#: js/pictures.js:32
msgid "Error: "
msgstr ""
#: js/pictures.js:32
msgid "Internal error"
msgstr ""
#: templates/index.php:27
msgid "Slideshow"
msgstr ""
#: templates/view_album.php:19
msgid "Back"
msgstr ""
#: templates/view_album.php:36
msgid "Remove confirmation"
msgstr ""
#: templates/view_album.php:37
msgid "Do you want to remove album"
msgstr ""
#: templates/view_album.php:40
msgid "Change album name"
msgstr ""
#: templates/view_album.php:43
msgid "New album name"
msgstr ""

112
l10n/fi/lib.po Normal file
View File

@ -0,0 +1,112 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: 2012-07-27 22:23+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: app.php:288
msgid "Help"
msgstr ""
#: app.php:295
msgid "Personal"
msgstr ""
#: app.php:300
msgid "Settings"
msgstr ""
#: app.php:305
msgid "Users"
msgstr ""
#: app.php:312
msgid "Apps"
msgstr ""
#: app.php:314
msgid "Admin"
msgstr ""
#: files.php:245
msgid "ZIP download is turned off."
msgstr ""
#: files.php:246
msgid "Files need to be downloaded one by one."
msgstr ""
#: files.php:246 files.php:271
msgid "Back to Files"
msgstr ""
#: files.php:270
msgid "Selected files too large to generate zip file."
msgstr ""
#: json.php:28
msgid "Application is not enabled"
msgstr ""
#: json.php:39 json.php:63 json.php:75
msgid "Authentication error"
msgstr ""
#: json.php:51
msgid "Token expired. Please reload page."
msgstr ""
#: template.php:86
msgid "seconds ago"
msgstr ""
#: template.php:87
msgid "1 minute ago"
msgstr ""
#: template.php:88
#, php-format
msgid "%d minutes ago"
msgstr ""
#: template.php:91
msgid "today"
msgstr ""
#: template.php:92
msgid "yesterday"
msgstr ""
#: template.php:93
#, php-format
msgid "%d days ago"
msgstr ""
#: template.php:94
msgid "last month"
msgstr ""
#: template.php:95
msgid "months ago"
msgstr ""
#: template.php:96
msgid "last year"
msgstr ""
#: template.php:97
msgid "years ago"
msgstr ""

66
l10n/fi/media.po Normal file
View File

@ -0,0 +1,66 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: 2011-08-13 02:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: appinfo/app.php:45 templates/player.php:8
msgid "Music"
msgstr ""
#: js/music.js:18
msgid "Add album to playlist"
msgstr ""
#: templates/music.php:3 templates/player.php:12
msgid "Play"
msgstr ""
#: templates/music.php:4 templates/music.php:26 templates/player.php:13
msgid "Pause"
msgstr ""
#: templates/music.php:5
msgid "Previous"
msgstr ""
#: templates/music.php:6 templates/player.php:14
msgid "Next"
msgstr ""
#: templates/music.php:7
msgid "Mute"
msgstr ""
#: templates/music.php:8
msgid "Unmute"
msgstr ""
#: templates/music.php:25
msgid "Rescan Collection"
msgstr ""
#: templates/music.php:37
msgid "Artist"
msgstr ""
#: templates/music.php:38
msgid "Album"
msgstr ""
#: templates/music.php:39
msgid "Title"
msgstr ""

222
l10n/fi/settings.po Normal file
View File

@ -0,0 +1,222 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: 2011-07-25 16:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: ajax/apps/ocs.php:23
msgid "Unable to load list from App Store"
msgstr ""
#: ajax/lostpassword.php:14
msgid "Email saved"
msgstr ""
#: ajax/lostpassword.php:16
msgid "Invalid email"
msgstr ""
#: ajax/openid.php:16
msgid "OpenID Changed"
msgstr ""
#: ajax/openid.php:18 ajax/setlanguage.php:20 ajax/setlanguage.php:23
msgid "Invalid request"
msgstr ""
#: ajax/removeuser.php:13 ajax/setquota.php:18 ajax/togglegroups.php:18
msgid "Authentication error"
msgstr ""
#: ajax/setlanguage.php:18
msgid "Language changed"
msgstr ""
#: js/apps.js:18
msgid "Error"
msgstr ""
#: js/apps.js:39 js/apps.js:73
msgid "Disable"
msgstr ""
#: js/apps.js:39 js/apps.js:62
msgid "Enable"
msgstr ""
#: js/personal.js:69
msgid "Saving..."
msgstr ""
#: personal.php:46 personal.php:47
msgid "__language_name__"
msgstr ""
#: templates/admin.php:14
msgid "Security Warning"
msgstr ""
#: templates/admin.php:28
msgid "Log"
msgstr ""
#: templates/admin.php:56
msgid "More"
msgstr ""
#: templates/apps.php:10
msgid "Add your App"
msgstr ""
#: templates/apps.php:26
msgid "Select an App"
msgstr ""
#: templates/apps.php:29
msgid "See application page at apps.owncloud.com"
msgstr ""
#: templates/apps.php:30
msgid "-licensed"
msgstr ""
#: templates/apps.php:30
msgid "by"
msgstr ""
#: templates/help.php:8
msgid "Documentation"
msgstr ""
#: templates/help.php:9
msgid "Managing Big Files"
msgstr ""
#: templates/help.php:10
msgid "Ask a question"
msgstr ""
#: templates/help.php:22
msgid "Problems connecting to help database."
msgstr ""
#: templates/help.php:23
msgid "Go there manually."
msgstr ""
#: templates/help.php:31
msgid "Answer"
msgstr ""
#: templates/personal.php:8
msgid "You use"
msgstr ""
#: templates/personal.php:8
msgid "of the available"
msgstr ""
#: templates/personal.php:12
msgid "Desktop and Mobile Syncing Clients"
msgstr ""
#: templates/personal.php:13
msgid "Download"
msgstr ""
#: templates/personal.php:19
msgid "Your password got changed"
msgstr ""
#: templates/personal.php:20
msgid "Unable to change your password"
msgstr ""
#: templates/personal.php:21
msgid "Current password"
msgstr ""
#: templates/personal.php:22
msgid "New password"
msgstr ""
#: templates/personal.php:23
msgid "show"
msgstr ""
#: templates/personal.php:24
msgid "Change password"
msgstr ""
#: templates/personal.php:30
msgid "Email"
msgstr ""
#: templates/personal.php:31
msgid "Your email address"
msgstr ""
#: templates/personal.php:32
msgid "Fill in an email address to enable password recovery"
msgstr ""
#: templates/personal.php:38 templates/personal.php:39
msgid "Language"
msgstr ""
#: templates/personal.php:44
msgid "Help translate"
msgstr ""
#: templates/personal.php:51
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
#: templates/users.php:21 templates/users.php:76
msgid "Name"
msgstr ""
#: templates/users.php:23 templates/users.php:77
msgid "Password"
msgstr ""
#: templates/users.php:26 templates/users.php:78 templates/users.php:98
msgid "Groups"
msgstr ""
#: templates/users.php:32
msgid "Create"
msgstr ""
#: templates/users.php:35
msgid "Default Quota"
msgstr ""
#: templates/users.php:55 templates/users.php:138
msgid "Other"
msgstr ""
#: templates/users.php:80 templates/users.php:112
msgid "SubAdmin"
msgstr ""
#: templates/users.php:82
msgid "Quota"
msgstr ""
#: templates/users.php:146
msgid "Delete"
msgstr ""

View File

@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-05 19:00+0200\n"
"PO-Revision-Date: 2012-08-05 17:01+0000\n"
"Last-Translator: owncloud_robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-08-07 02:05+0200\n"
"PO-Revision-Date: 2012-08-06 10:15+0000\n"
"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
"Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -49,7 +49,7 @@ msgstr "Kieli on vaihdettu"
#: js/apps.js:18
msgid "Error"
msgstr ""
msgstr "Virhe"
#: js/apps.js:39 js/apps.js:73
msgid "Disable"

View File

@ -4,6 +4,7 @@
#
# Translators:
# Borjan Tchakaloff <borjan@tchaka.fr>, 2012.
# Cyril Glapa <kyriog@gmail.com>, 2012.
# <fboulogne@april.org>, 2011.
# <gp4004@arghh.org>, 2011.
# <guiguidu31300@gmail.com>, 2012.
@ -17,9 +18,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-04 02:02+0200\n"
"PO-Revision-Date: 2012-08-04 00:02+0000\n"
"Last-Translator: owncloud_robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-08-07 02:04+0200\n"
"PO-Revision-Date: 2012-08-06 20:28+0000\n"
"Last-Translator: Cyril Glapa <kyriog@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -306,11 +307,11 @@ msgstr "échoué."
#: js/settings.js:67
msgid "Displayname cannot be empty."
msgstr ""
msgstr "Le nom d'affichage ne peut pas être vide."
#: lib/app.php:36
msgid "Addressbook not found: "
msgstr ""
msgstr "Carnet d'adresse introuvable : "
#: lib/app.php:49
msgid "This is not your addressbook."
@ -452,7 +453,7 @@ msgstr "Importer"
#: templates/index.php:18
msgid "Settings"
msgstr ""
msgstr "Paramètres"
#: templates/index.php:18 templates/settings.php:9
msgid "Addressbooks"
@ -484,11 +485,11 @@ msgstr "Dé/Replier le carnet d'adresses courant"
#: templates/index.php:48
msgid "Next addressbook"
msgstr ""
msgstr "Carnet d'adresses suivant"
#: templates/index.php:50
msgid "Previous addressbook"
msgstr ""
msgstr "Carnet d'adresses précédent"
#: templates/index.php:54
msgid "Actions"
@ -540,7 +541,7 @@ msgstr "Editer les noms"
#: templates/part.contact.php:40 templates/part.contact.php:42
#: templates/part.contact.php:44 templates/part.contact.php:46
#: templates/part.contact.php:50 templates/settings.php:34
#: templates/part.contact.php:50 templates/settings.php:33
msgid "Delete"
msgstr "Supprimer"
@ -841,7 +842,7 @@ msgstr "iOS/OS X"
#: templates/settings.php:20
msgid "Show CardDav link"
msgstr ""
msgstr "Afficher le lien CardDav"
#: templates/settings.php:23
msgid "Show read-only VCF link"
@ -851,30 +852,30 @@ msgstr ""
msgid "Download"
msgstr "Télécharger"
#: templates/settings.php:31
#: templates/settings.php:30
msgid "Edit"
msgstr "Modifier"
#: templates/settings.php:41
#: templates/settings.php:40
msgid "New Address Book"
msgstr "Nouveau Carnet d'adresses"
#: templates/settings.php:42
#: templates/settings.php:41
msgid "Name"
msgstr ""
msgstr "Nom"
#: templates/settings.php:42
msgid "Description"
msgstr "Description"
#: templates/settings.php:43
msgid "Description"
msgstr ""
#: templates/settings.php:45
msgid "Save"
msgstr "Sauvegarder"
#: templates/settings.php:46
#: templates/settings.php:44
msgid "Cancel"
msgstr "Annuler"
#: templates/settings.php:51
#: templates/settings.php:49
msgid "More..."
msgstr ""
msgstr "Plus…"

View File

@ -3,6 +3,7 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Cyril Glapa <kyriog@gmail.com>, 2012.
# Geoffrey Guerrier <geoffrey.guerrier@gmail.com>, 2012.
# <guiguidu31300@gmail.com>, 2012.
# Nahir Mohamed <nahirmoha@gmail.com>, 2012.
@ -12,9 +13,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-07-31 22:53+0200\n"
"PO-Revision-Date: 2012-07-31 20:54+0000\n"
"Last-Translator: owncloud_robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-08-07 02:04+0200\n"
"PO-Revision-Date: 2012-08-06 20:30+0000\n"
"Last-Translator: Cyril Glapa <kyriog@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -66,23 +67,23 @@ msgstr "Supprimer"
#: js/filelist.js:141
msgid "already exists"
msgstr ""
msgstr "existe déjà"
#: js/filelist.js:141
msgid "replace"
msgstr ""
msgstr "remplacer"
#: js/filelist.js:141
msgid "cancel"
msgstr ""
msgstr "annuler"
#: js/filelist.js:195
msgid "replaced"
msgstr ""
msgstr "remplacé"
#: js/filelist.js:195
msgid "with"
msgstr ""
msgstr "avec"
#: js/filelist.js:195 js/filelist.js:256
msgid "undo"
@ -116,27 +117,27 @@ msgstr "Chargement annulé"
msgid "Invalid name, '/' is not allowed."
msgstr "Nom invalide, '/' n'est pas autorisé."
#: js/files.js:631 templates/index.php:55
#: js/files.js:694 templates/index.php:55
msgid "Size"
msgstr "Taille"
#: js/files.js:632 templates/index.php:56
#: js/files.js:695 templates/index.php:56
msgid "Modified"
msgstr "Modifié"
#: js/files.js:659
#: js/files.js:722
msgid "folder"
msgstr "dossier"
#: js/files.js:661
#: js/files.js:724
msgid "folders"
msgstr "dossiers"
#: js/files.js:669
#: js/files.js:732
msgid "file"
msgstr "fichier"
#: js/files.js:671
#: js/files.js:734
msgid "files"
msgstr "fichiers"

View File

@ -3,6 +3,7 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Cyril Glapa <kyriog@gmail.com>, 2012.
# <fboulogne@april.org>, 2011.
# <guiguidu31300@gmail.com>, 2012.
# Jan-Christoph Borchardt <JanCBorchardt@fsfe.org>, 2011.
@ -14,9 +15,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-08-05 19:00+0200\n"
"PO-Revision-Date: 2012-08-05 17:01+0000\n"
"Last-Translator: owncloud_robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-08-07 02:05+0200\n"
"PO-Revision-Date: 2012-08-06 20:25+0000\n"
"Last-Translator: Cyril Glapa <kyriog@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -26,7 +27,7 @@ msgstr ""
#: ajax/apps/ocs.php:23
msgid "Unable to load list from App Store"
msgstr ""
msgstr "Impossible de charger la liste depuis l'App Store"
#: ajax/lostpassword.php:14
msgid "Email saved"
@ -54,7 +55,7 @@ msgstr "Langue changée"
#: js/apps.js:18
msgid "Error"
msgstr ""
msgstr "Erreur"
#: js/apps.js:39 js/apps.js:73
msgid "Disable"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 02:01+0200\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 02:01+0200\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 02:01+0200\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -530,7 +530,7 @@ msgstr ""
#: templates/part.contact.php:40 templates/part.contact.php:42
#: templates/part.contact.php:44 templates/part.contact.php:46
#: templates/part.contact.php:50 templates/settings.php:34
#: templates/part.contact.php:50 templates/settings.php:33
msgid "Delete"
msgstr ""
@ -841,30 +841,30 @@ msgstr ""
msgid "Download"
msgstr ""
#: templates/settings.php:31
#: templates/settings.php:30
msgid "Edit"
msgstr ""
#: templates/settings.php:41
#: templates/settings.php:40
msgid "New Address Book"
msgstr ""
#: templates/settings.php:42
#: templates/settings.php:41
msgid "Name"
msgstr ""
#: templates/settings.php:43
#: templates/settings.php:42
msgid "Description"
msgstr ""
#: templates/settings.php:45
#: templates/settings.php:43
msgid "Save"
msgstr ""
#: templates/settings.php:46
#: templates/settings.php:44
msgid "Cancel"
msgstr ""
#: templates/settings.php:51
#: templates/settings.php:49
msgid "More..."
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 02:02+0200\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 02:01+0200\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -111,27 +111,27 @@ msgstr ""
msgid "Invalid name, '/' is not allowed."
msgstr ""
#: js/files.js:690 templates/index.php:55
#: js/files.js:694 templates/index.php:55
msgid "Size"
msgstr ""
#: js/files.js:691 templates/index.php:56
#: js/files.js:695 templates/index.php:56
msgid "Modified"
msgstr ""
#: js/files.js:718
#: js/files.js:722
msgid "folder"
msgstr ""
#: js/files.js:720
#: js/files.js:724
msgid "folders"
msgstr ""
#: js/files.js:728
#: js/files.js:732
msgid "file"
msgstr ""
#: js/files.js:730
#: js/files.js:734
msgid "files"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 02:02+0200\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 02:02+0200\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 02:02+0200\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 02:02+0200\n"
"POT-Creation-Date: 2012-08-09 02:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -185,8 +185,8 @@ class OC{
// redirect to https site if configured
if( OC_Config::getValue( "forcessl", false )){
ini_set("session.cookie_secure", "on");
if(OC_Helper::serverProtocol()<>'https' and !OC::$CLI) {
$url = "https://". OC_Helper::serverHost() . $_SERVER['REQUEST_URI'];
if(OC_Request::serverProtocol()<>'https' and !OC::$CLI) {
$url = "https://". OC_Request::serverHost() . $_SERVER['REQUEST_URI'];
header("Location: $url");
exit();
}
@ -373,7 +373,7 @@ class OC{
self::$REQUESTEDAPP = (isset($_GET['app']) && trim($_GET['app']) != '' && !is_null($_GET['app'])?str_replace(array('\0', '/', '\\', '..'), '', strip_tags($_GET['app'])):OC_Config::getValue('defaultapp', 'files'));
if(substr_count(self::$REQUESTEDAPP, '?') != 0){
$app = substr(self::$REQUESTEDAPP, 0, strpos(self::$REQUESTEDAPP, '?'));
$param = substr(self::$REQUESTEDAPP, strpos(self::$REQUESTEDAPP, '?') + 1);
$param = substr($_GET['app'], strpos($_GET['app'], '?') + 1);
parse_str($param, $get);
$_GET = array_merge($_GET, $get);
self::$REQUESTEDAPP = $app;
@ -398,12 +398,121 @@ class OC{
}
}
}
/**
* @brief Try to handle request
* @return true when the request is handled here
*/
public static function handleRequest() {
if (!OC_Config::getValue('installed', false)) {
// Check for autosetup:
$autosetup_file = OC::$SERVERROOT."/config/autoconfig.php";
if( file_exists( $autosetup_file )){
OC_Log::write('core','Autoconfig file found, setting up owncloud...',OC_Log::INFO);
include( $autosetup_file );
$_POST['install'] = 'true';
$_POST = array_merge ($_POST, $AUTOCONFIG);
unlink($autosetup_file);
}
OC_Util::addScript('setup');
require_once('setup.php');
exit();
}
// Handle WebDAV
if($_SERVER['REQUEST_METHOD']=='PROPFIND'){
header('location: '.OC_Helper::linkToRemote('webdav'));
return true;
}
if(!OC_User::isLoggedIn() && substr(OC::$REQUESTEDFILE,-3) == 'css') {
OC_App::loadApps();
OC::loadfile();
return true;
}
// Someone is logged in :
if(OC_User::isLoggedIn()) {
OC_App::loadApps();
if(isset($_GET["logout"]) and ($_GET["logout"])) {
OC_User::logout();
header("Location: ".OC::$WEBROOT.'/');
}else{
if(is_null(OC::$REQUESTEDFILE)) {
OC::loadapp();
}else{
OC::loadfile();
}
}
return true;
}
return false;
}
public static function tryRememberLogin() {
if(!isset($_COOKIE["oc_remember_login"])
|| !isset($_COOKIE["oc_token"])
|| !isset($_COOKIE["oc_username"])
|| !$_COOKIE["oc_remember_login"]) {
return false;
}
OC_App::loadApps(array('authentication'));
if(defined("DEBUG") && DEBUG) {
OC_Log::write('core','Trying to login from cookie',OC_Log::DEBUG);
}
// confirm credentials in cookie
if(isset($_COOKIE['oc_token']) && OC_User::userExists($_COOKIE['oc_username']) &&
OC_Preferences::getValue($_COOKIE['oc_username'], "login", "token") == $_COOKIE['oc_token']) {
OC_User::setUserId($_COOKIE['oc_username']);
OC_Util::redirectToDefaultPage();
}
else {
OC_User::unsetMagicInCookie();
}
return true;
}
public static function tryFormLogin() {
if(!isset($_POST["user"])
|| !isset($_POST['password'])
|| !isset($_SESSION['sectoken'])
|| !isset($_POST['sectoken'])
|| ($_SESSION['sectoken']!=$_POST['sectoken']) ) {
return false;
}
OC_App::loadApps();
if(OC_User::login($_POST["user"], $_POST["password"])) {
if(!empty($_POST["remember_login"])){
if(defined("DEBUG") && DEBUG) {
OC_Log::write('core','Setting remember login to cookie', OC_Log::DEBUG);
}
$token = md5($_POST["user"].time().$_POST['password']);
OC_Preferences::setValue($_POST['user'], 'login', 'token', $token);
OC_User::setMagicInCookie($_POST["user"], $token);
}
else {
OC_User::unsetMagicInCookie();
}
OC_Util::redirectToDefaultPage();
}
return true;
}
public static function tryBasicAuthLogin() {
if (!isset($_SERVER["PHP_AUTH_USER"])
|| !isset($_SERVER["PHP_AUTH_PW"])){
return false;
}
OC_App::loadApps(array('authentication'));
if (OC_User::login($_SERVER["PHP_AUTH_USER"],$_SERVER["PHP_AUTH_PW"])) {
//OC_Log::write('core',"Logged in with HTTP Authentication",OC_Log::DEBUG);
OC_User::unsetMagicInCookie();
$_REQUEST['redirect_url'] = (isset($_SERVER['REQUEST_URI'])?$_SERVER['REQUEST_URI']:'');
OC_Util::redirectToDefaultPage();
}
return true;
}
}
// define runtime variables - unless this already has been done
if( !isset( $RUNTIME_NOSETUPFS )){
$RUNTIME_NOSETUPFS = false;
}
if( !isset( $RUNTIME_NOAPPS )){
$RUNTIME_NOAPPS = false;
}

View File

@ -1,93 +0,0 @@
<?php
/**
* ownCloud
*
* @author Georg Ehrke
* @copyright 2012 georg@owncloud.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
class OC_Exception extends Exception{
function __construct($message = null, $code = 0, $file = null, $line = null){
parent::__construct($message, $code);
if(!is_null($file)){
$this->file = $file;
}
if(!is_null($line)){
$this->line = $line;
}
$this->writelog();
}
private function writelog(){
@OC_Log::write(OC_App::getCurrentApp(), $this->getMessage() . '-' . $this->getFile() . '-' . $this->getLine(), OC_Log::FATAL);
}
private function generatesysinfo(){
return array('phpversion' => PHP_VERSION,
'os' => php_uname('s'),
'osrelease' => php_uname('r'),
'osarchitecture' => php_uname('m'),
'phpserverinterface' => php_sapi_name(),
'serverprotocol' => $_SERVER['SERVER_PROTOCOL'],
'requestmethod' => $_SERVER['REQUEST_METHOD'],
'https' => ($_SERVER['HTTPS']==''?'false':'true'),
'database'=>(@OC_Config::getValue('dbtype')!=''?@OC_Config::getValue('dbtype'):'')
);
}
function __toString(){
$tmpl = new OC_Template('core', 'exception', 'guest');
$tmpl->assign('showsysinfo', true);
$tmpl->assign('message', $this->getMessage());
$tmpl->assign('code', $this->getCode());
$tmpl->assign('file', $this->getFile());
$tmpl->assign('line', $this->getLine());
$tmpl->assign('sysinfo', $this->generatesysinfo());
$tmpl->printPage();
}
}
function oc_exceptionhandler($exception){
switch($exception->getCode()){
case E_NOTICE:
case E_DEPRECATED:
case E_USER_NOTICE:
case E_USER_DEPRECATED:
break;
default:
throw new OC_Exception($exception->getMessage(), $exception->getCode(), $exception->getFile(), $exception->getLine());
break;
}
return true;
}
function oc_errorhandler($errno , $errstr , $errfile , $errline){
switch($errno){
case E_NOTICE:
case E_DEPRECATED:
case E_USER_NOTICE:
case E_USER_DEPRECATED:
break;
default:
throw new OC_Exception($errstr, $errno, $errfile, $errline);
break;
}
return true;
}
set_exception_handler('oc_exceptionhandler');
set_error_handler('oc_errorhandler');
error_reporting(E_ERROR | E_WARNING | E_PARSE);

View File

@ -65,19 +65,27 @@ class OC_FileCache{
if($root===false){
$root=OC_Filesystem::getRoot();
}
$path=$root.$path;
$parent=self::getParentId($path);
$id=self::getId($path,'');
if(isset(OC_FileCache_Cached::$savedData[$path])){
$data=array_merge(OC_FileCache_Cached::$savedData[$path],$data);
unset(OC_FileCache_Cached::$savedData[$path]);
$fullpath=$root.$path;
$parent=self::getParentId($fullpath);
$id=self::getId($fullpath,'');
if(isset(OC_FileCache_Cached::$savedData[$fullpath])){
$data=array_merge(OC_FileCache_Cached::$savedData[$fullpath],$data);
unset(OC_FileCache_Cached::$savedData[$fullpath]);
}
if($id!=-1){
self::update($id,$data);
return;
}
// add parent directory to the file cache if it does not exist yet.
if ($parent == -1 && $fullpath != $root) {
$parentDir = substr(dirname($path), 0, strrpos(dirname($path), DIRECTORY_SEPARATOR));
self::scanFile($parentDir);
$parent = self::getParentId($fullpath);
}
if(!isset($data['size']) or !isset($data['mtime'])){//save incomplete data for the next time we write it
OC_FileCache_Cached::$savedData[$path]=$data;
OC_FileCache_Cached::$savedData[$fullpath]=$data;
return;
}
if(!isset($data['encrypted'])){
@ -94,13 +102,13 @@ class OC_FileCache{
$data['versioned']=(int)$data['versioned'];
$user=OC_User::getUser();
$query=OC_DB::prepare('INSERT INTO *PREFIX*fscache(parent, name, path, path_hash, size, mtime, ctime, mimetype, mimepart,`user`,writable,encrypted,versioned) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)');
$result=$query->execute(array($parent,basename($path),$path,md5($path),$data['size'],$data['mtime'],$data['ctime'],$data['mimetype'],$mimePart,$user,$data['writable'],$data['encrypted'],$data['versioned']));
$result=$query->execute(array($parent,basename($fullpath),$fullpath,md5($fullpath),$data['size'],$data['mtime'],$data['ctime'],$data['mimetype'],$mimePart,$user,$data['writable'],$data['encrypted'],$data['versioned']));
if(OC_DB::isError($result)){
OC_Log::write('files','error while writing file('.$path.') to cache',OC_Log::ERROR);
OC_Log::write('files','error while writing file('.$fullpath.') to cache',OC_Log::ERROR);
}
if($cache=OC_Cache::getUserCache(true)){
$cache->remove('fileid/'.$path);//ensure we don't have -1 cached
$cache->remove('fileid/'.$fullpath);//ensure we don't have -1 cached
}
}
@ -343,7 +351,7 @@ class OC_FileCache{
* @param string $path
* @param OC_EventSource $enventSource (optional)
* @param int count (optional)
* @param string root (optionak)
* @param string root (optional)
*/
public static function scan($path,$eventSource=false,&$count=0,$root=false){
if($eventSource){

View File

@ -152,8 +152,8 @@ class OC_FileCache_Update{
$size=0;
$cached=OC_FileCache_Cached::get($path,$root);
$cachedSize=isset($cached['size'])?$cached['size']:0;
if($mimetype=='httpd/unix-directory'){
if($view->is_dir($path.'/')){
if(OC_FileCache::inCache($path,$root)){
$cachedContent=OC_FileCache_Cached::getFolderContent($path,$root);
foreach($cachedContent as $file){

View File

@ -64,52 +64,6 @@ class OC_Helper {
return $urlLinkTo;
}
/**
* @brief Returns the server host
* @returns the server host
*
* Returns the server host, even if the website uses one or more
* reverse proxies
*/
public static function serverHost() {
if(OC::$CLI){
return 'localhost';
}
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
if (strpos($_SERVER['HTTP_X_FORWARDED_HOST'], ",") !== false) {
$host = trim(array_pop(explode(",", $_SERVER['HTTP_X_FORWARDED_HOST'])));
}
else{
$host=$_SERVER['HTTP_X_FORWARDED_HOST'];
}
}
else{
$host = $_SERVER['HTTP_HOST'];
}
return $host;
}
/**
* @brief Returns the server protocol
* @returns the server protocol
*
* Returns the server protocol. It respects reverse proxy servers and load balancers
*/
public static function serverProtocol() {
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
$proto = strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']);
}else{
if(isset($_SERVER['HTTPS']) and !empty($_SERVER['HTTPS']) and ($_SERVER['HTTPS']!='off')) {
$proto = 'https';
}else{
$proto = 'http';
}
}
return($proto);
}
/**
* @brief Creates an absolute url
* @param $app app
@ -120,8 +74,19 @@ class OC_Helper {
*/
public static function linkToAbsolute( $app, $file ) {
$urlLinkTo = self::linkTo( $app, $file );
$urlLinkTo = self::serverProtocol(). '://' . self::serverHost() . $urlLinkTo;
return $urlLinkTo;
return self::makeURLAbsolute($urlLinkTo);
}
/**
* @brief Makes an $url absolute
* @param $url the url
* @returns the absolute url
*
* Returns a absolute url to the given app and file.
*/
public static function makeURLAbsolute( $url )
{
return OC_Request::serverProtocol(). '://' . OC_Request::serverHost() . $url;
}
/**

View File

@ -165,7 +165,7 @@ class Util {
* reverse proxies
*/
public static function getServerHost() {
return(\OC_Helper::serverHost());
return(\OC_Request::serverHost());
}
/**
@ -175,7 +175,7 @@ class Util {
* Returns the server protocol. It respects reverse proxy servers and load balancers
*/
public static function getServerProtocol() {
return(\OC_Helper::serverProtocol());
return(\OC_Request::serverProtocol());
}
/**

View File

@ -7,6 +7,79 @@
*/
class OC_Request {
/**
* @brief Returns the server host
* @returns the server host
*
* Returns the server host, even if the website uses one or more
* reverse proxies
*/
public static function serverHost() {
if(OC::$CLI){
return 'localhost';
}
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
if (strpos($_SERVER['HTTP_X_FORWARDED_HOST'], ",") !== false) {
$host = trim(array_pop(explode(",", $_SERVER['HTTP_X_FORWARDED_HOST'])));
}
else{
$host=$_SERVER['HTTP_X_FORWARDED_HOST'];
}
}
else{
$host = $_SERVER['HTTP_HOST'];
}
return $host;
}
/**
* @brief Returns the server protocol
* @returns the server protocol
*
* Returns the server protocol. It respects reverse proxy servers and load balancers
*/
public static function serverProtocol() {
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
$proto = strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']);
}else{
if(isset($_SERVER['HTTPS']) and !empty($_SERVER['HTTPS']) and ($_SERVER['HTTPS']!='off')) {
$proto = 'https';
}else{
$proto = 'http';
}
}
return($proto);
}
/**
* @brief get Path info from request
* @returns string Path info or false when not found
*/
public static function getPathInfo() {
if (array_key_exists('PATH_INFO', $_SERVER)){
$path_info = $_SERVER['PATH_INFO'];
}else{
$path_info = substr($_SERVER['REQUEST_URI'], strlen($_SERVER['SCRIPT_NAME']));
// following is taken from Sabre_DAV_URLUtil::decodePathSegment
$path_info = rawurldecode($path_info);
$encoding = mb_detect_encoding($path_info, array('UTF-8','ISO-8859-1'));
switch($encoding) {
case 'ISO-8859-1' :
$path_info = utf8_encode($path_info);
}
// end copy
}
return $path_info;
}
/**
* @brief Check if this is a no-cache request
* @returns true for no-cache
*/
static public function isNoCache() {
if (!isset($_SERVER['HTTP_CACHE_CONTROL'])) {
return false;
@ -14,6 +87,10 @@ class OC_Request {
return $_SERVER['HTTP_CACHE_CONTROL'] == 'no-cache';
}
/**
* @brief Check if the requestor understands gzip
* @returns true for gzip encoding supported
*/
static public function acceptGZip() {
if (!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) {
return false;

View File

@ -348,7 +348,7 @@ class OC_Util {
else {
$defaultpage = OC_Appconfig::getValue('core', 'defaultpage');
if ($defaultpage) {
$location = OC_Helper::serverProtocol().'://'.OC_Helper::serverHost().OC::$WEBROOT.'/'.$defaultpage;
$location = OC_Helper::makeURLAbsolute(OC::$WEBROOT.'/'.$defaultpage);
}
else {
$location = OC_Helper::linkToAbsolute( 'files', 'index.php' );
@ -476,7 +476,7 @@ class OC_Util {
@fclose($fp);
// accessing the file via http
$url = OC_Helper::serverProtocol(). '://' . OC_Helper::serverHost() . OC::$WEBROOT.'/data'.$filename;
$url = OC_Helper::makeURLAbsolute(OC::$WEBROOT.'/data'.$filename);
$fp = @fopen($url, 'r');
$content=@fread($fp, 2048);
@fclose($fp);

View File

@ -1,5 +1,4 @@
<?php
$RUNTIME_NOSETUPFS = true;
$RUNTIME_NOAPPS = TRUE;
require_once('lib/base.php');
$file = OCP\CONFIG::getAppValue('core', 'public_' . strip_tags($_GET['service']));

View File

@ -1,12 +1,7 @@
<?php
$RUNTIME_NOSETUPFS = true;
$RUNTIME_NOAPPS = TRUE;
require_once('lib/base.php');
if (array_key_exists('PATH_INFO', $_SERVER)){
$path_info = $_SERVER['PATH_INFO'];
}else{
$path_info = substr($_SERVER['REQUEST_URI'], strlen($_SERVER['SCRIPT_NAME']));
}
$path_info = OC_Request::getPathInfo();
if ($path_info === false) {
OC_Response::setStatus(OC_Response::STATUS_NOT_FOUND);
exit;

View File

@ -1,10 +1,12 @@
<?php $TRANSLATIONS = array(
"Unable to load list from App Store" => "No s'ha pogut carregar la llista des de l'App Store",
"Email saved" => "S'ha desat el correu electrònic",
"Invalid email" => "El correu electrònic no és vàlid",
"OpenID Changed" => "OpenID ha canviat",
"Invalid request" => "Sol.licitud no vàlida",
"Authentication error" => "Error d'autenticació",
"Language changed" => "S'ha canviat l'idioma",
"Error" => "Error",
"Disable" => "Desactiva",
"Enable" => "Activa",
"Saving..." => "S'està desant...",

View File

@ -1,10 +1,12 @@
<?php $TRANSLATIONS = array(
"Unable to load list from App Store" => "Liste der Apps im Store konnte nicht geladen werden.",
"Email saved" => "E-Mail gespeichert",
"Invalid email" => "Ungültige E-Mail",
"OpenID Changed" => "OpenID geändert",
"Invalid request" => "Ungültige Anfrage",
"Authentication error" => "Anmeldungsfehler",
"Language changed" => "Sprache geändert",
"Error" => "Fehler",
"Disable" => "Deaktivieren",
"Enable" => "Aktivieren",
"Saving..." => "Speichern...",
@ -19,7 +21,7 @@
"by" => "von",
"Documentation" => "Dokumentation",
"Managing Big Files" => "Große Dateien verwalten",
"Ask a question" => "Stell' eine Frage",
"Ask a question" => "Stell eine Frage",
"Problems connecting to help database." => "Probleme bei der Verbindung zur Hilfe-Datenbank.",
"Go there manually." => "Datenbank direkt besuchen.",
"Answer" => "Antwort",

View File

@ -4,10 +4,12 @@
"OpenID Changed" => "OpenID تغییر کرد",
"Invalid request" => "درخواست غیر قابل قبول",
"Language changed" => "زبان تغییر کرد",
"Error" => "خطا",
"Disable" => "غیرفعال",
"Enable" => "فعال",
"Saving..." => "درحال ذخیره ...",
"__language_name__" => "__language_name__",
"Security Warning" => "اخطار امنیتی",
"Log" => "کارنامه",
"More" => "بیشتر",
"Add your App" => "برنامه خود را بیافزایید",

View File

@ -5,6 +5,7 @@
"Invalid request" => "Virheellinen pyyntö",
"Authentication error" => "Todennusvirhe",
"Language changed" => "Kieli on vaihdettu",
"Error" => "Virhe",
"Disable" => "Poista käytöstä",
"Enable" => "Käytä",
"Saving..." => "Tallennetaan...",

View File

@ -1,10 +1,12 @@
<?php $TRANSLATIONS = array(
"Unable to load list from App Store" => "Impossible de charger la liste depuis l'App Store",
"Email saved" => "E-mail sauvegardé",
"Invalid email" => "E-mail invalide",
"OpenID Changed" => "Identifiant OpenID changé",
"Invalid request" => "Requête invalide",
"Authentication error" => "Erreur d'authentification",
"Language changed" => "Langue changée",
"Error" => "Erreur",
"Disable" => "Désactiver",
"Enable" => "Activer",
"Saving..." => "Sauvegarde...",