add list of shared files to filemanager and translation of sharing stuff

This commit is contained in:
Ralf Becker 2014-12-08 16:04:20 +00:00
parent 052a1e8d9f
commit 13257f09a4
9 changed files with 229 additions and 4 deletions

View File

@ -90,6 +90,7 @@ class filemanager_hooks
}
}
$file['Placeholders'] = egw::link('/index.php','menuaction=filemanager.filemanager_merge.show_replacements');
$file['Shared files'] = egw::link('/index.php','menuaction=filemanager.filemanager_shares.index&ajax=true');
display_sidebox(self::$appname,$title,$file);
}
if ($GLOBALS['egw_info']['user']['apps']['admin']) self::admin(self::$appname);

View File

@ -0,0 +1,181 @@
<?php
/**
* Filemanager: shares
*
* @link http://www.egroupware.org/
* @package filemanager
* @author Ralf Becker <rb-AT-stylite.de>
* @copyright (c) 2014 by Ralf Becker <rb-AT-stylite.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
/**
* Filemanager: shares
*/
class filemanager_shares extends filemanager_ui
{
/**
* Functions callable via menuaction
*
* @var array
*/
public $public_functions = array(
'index' => true,
);
/**
* Autheticated user is setup config user
*
* @var boolean
*/
static protected $is_setup = false;
static protected $tmp_dir;
/**
* Constructor
*/
function __construct()
{
// sudo handling
parent::__construct();
self::$is_setup = egw_session::appsession('is_setup','filemanager');
self::$tmp_dir = '/home/'.$GLOBALS['egw_info']['user']['account_lid'].'/.tmp/';
}
/**
* Callback to fetch the rows for the nextmatch widget
*
* @param array $query with keys 'start', 'search', 'order', 'sort', 'col_filter'
* For other keys like 'filter', 'cat_id' you have to reimplement this method in a derived class.
* @param array &$rows returned rows/competitions
* @param array &$readonlys eg. to disable buttons based on acl, not use here, maybe in a derived class
* @return int total number of rows
*/
public function get_rows($query, &$rows)
{
switch ($query['col_filter']['type'])
{
case egw_sharing::LINK:
$query['col_filter'][] = "share_path LIKE ".$GLOBALS['egw']->db->quote(self::$tmp_dir.'%');
break;
case egw_sharing::READONLY:
$query['col_filter'][] = "share_path NOT LIKE ".$GLOBALS['egw']->db->quote(self::$tmp_dir.'%');
$query['col_filter']['share_writable'] = false;
break;
case egw_sharing::WRITABLE:
$query['col_filter']['share_writable'] = true;
break;
}
unset($query['col_filter']['type']);
if ((string)$query['col_filter']['share_passwd'] !== '')
{
$query['col_filter'][] = $query['col_filter']['share_passwd'] === 'yes' ?
'share_passwd IS NOT NULL' : 'share_passwd IS NULL';
}
unset($query['col_filter']['share_passwd']);
$query['col_filter']['share_owner'] = $GLOBALS['egw_info']['user']['account_id'];
$readonlys = null;
$total = egw_sharing::so()->get_rows($query, $rows, $readonlys);
foreach($rows as &$row)
{
if (substr($row['share_path'], 0, strlen(self::$tmp_dir)) === self::$tmp_dir)
{
$row['share_path'] = substr($row['share_path'], strlen(self::$tmp_dir));
$row['type'] = egw_sharing::LINK;
}
else
{
$row['type'] = $row['share_writable'] ? egw_sharing::WRITABLE : egw_sharing::READONLY;
}
$row['share_passwd'] = (boolean)$row['share_passwd'];
if ($row['share_with']) $row['share_with'] = preg_replace('/,([^ ])/', ', $1', $row['share_with']);
}
return $total;
}
/**
* Context menu
*
* @return array
*/
public static function get_actions()
{
$group = 1;
$actions = array(
'delete' => array(
'caption' => lang('Delete'),
'group' => ++$group,
'confirm' => 'Delete these shares?',
),
);
return $actions;
}
/**
* Show files shared
*
* @param array $content=null
* @param string $msg=''
*/
public function index(array $content=null)
{
if (!is_array($content))
{
$content = array(
'nm' => array(
'get_rows' => 'filemanager.filemanager_shares.get_rows', // I method/callback to request the data for the rows eg. 'notes.bo.get_rows'
'no_filter' => True, // current dir only
'no_filter2' => True, // I disable the 2. filter (params are the same as for filter)
'no_cat' => True, // I disable the cat-selectbox
'lettersearch' => false, // I show a lettersearch
'searchletter' => false, // I0 active letter of the lettersearch or false for [all]
'start' => 0, // IO position in list
'order' => 'share_created', // IO name of the column to sort after (optional for the sortheaders)
'sort' => 'DESC', // IO direction of the sort: 'ASC' or 'DESC'
//'default_cols' => '!', // I columns to use if there's no user or default pref (! as first char uses all but the named columns), default all columns
'csv_fields' => false, // I false=disable csv export, true or unset=enable it with auto-detected fieldnames,
//or array with name=>label or name=>array('label'=>label,'type'=>type) pairs (type is a eT widget-type)
'actions' => self::get_actions(),
'row_id' => 'share_id',
'dataStorePrefix' => 'egw_shares',
),
);
}
elseif ($content['nm']['action'])
{
switch($content['nm']['action'])
{
case 'delete':
$where = $content['nm']['select_all'] ? array('share_owner' => $GLOBALS['egw_info']['user']['account_id']) :
array('share_id' => $content['nm']['selected']);
$deleted = egw_sharing::so()->delete($where);
egw_framework::message(lang('%1 shares deleted.', $deleted), 'success');
break;
default:
throw new egw_exception_wrong_parameter("Unknown action '{$content['nm']['action']}'!");
}
unset($content['nm']['action']);
}
$content['is_setup'] = self::$is_setup;
$sel_options = array(
'type' => egw_sharing::$modes,
'share_passwd' => array(
'no' => lang('No'),
'yes' => lang('Yes'),
)
);
unset($sel_options['type'][egw_sharing::ATTACH]);
$tpl = new etemplate_new('filemanager.shares');
$tpl->exec('filemanager.filemanager_shares.index', $content, $sel_options, null, $content);
}
}

View File

@ -64,6 +64,7 @@ app.classes.filemanager = AppJS.extend(
* make sure to clean it up in destroy().
*
* @param et2 etemplate2 Newly ready object
* @param {string} name template name
*/
et2_ready: function(et2,name)
{
@ -149,6 +150,7 @@ app.classes.filemanager = AppJS.extend(
/**
* Get current working directory
*
* @param {string} etemplate_name
* @return string
*/
get_path: function(etemplate_name)
@ -578,7 +580,8 @@ app.classes.filemanager = AppJS.extend(
/**
* Change directory
*
* @param _dir directory to change to incl. '..' for one up
* @param {string} _dir directory to change to incl. '..' for one up
* @param {et2_widget} widget
*/
change_dir: function(_dir, widget)
{

View File

@ -12,6 +12,7 @@
%1 files copied. filemanager de %1 Dateien kopiert.
%1 files deleted. filemanager de %1 Dateien gelöscht.
%1 files moved. filemanager de %1 Dateien verschoben.
%1 shares deleted. filemanager de %1 Freigaben gelöscht.
%1 starts with '%2' filemanager de %1 beginnt mit '%2'
%1 successful unmounted. filemanager de %1 erfolgreich unmounted.
%1 successful uploaded. filemanager de %1 erfolgreich hochgeladen.
@ -30,6 +31,7 @@ actions filemanager de Befehle
add to clipboard filemanager de In die Zwischenablage hinzufügen
administrators filemanager de Administratoren
all files filemanager de Alle Dateien
all types filemanager de Alle Typen
allow a maximum of the above configured folderlinks to be configured in settings admin de Erlaube das oben eingestellte Maximum an Einstellungen für Verzeichnisverweise
and all it's childeren filemanager de und alle seine Kinderelemente
application fields filemanager de Anwendungsfelder
@ -73,6 +75,7 @@ cut to clipboard filemanager de Ausschneiden in die Zwischenablage
default behavior is no. the link will not be shown, but you are still able to navigate to this location, or configure this paricular location as startfolder or folderlink. filemanager de Vorgabe ist NEIN. Der Verweis wird nicht angezeigt, Sie können aber immer zu diesem Verzeichnis navigieren, Sie können aber das Verzeichnis als Startverzeichnis oder als Verzeichnisverweis konfigurieren.
default document to insert entries filemanager de Standarddokument zum Einfügen von Daten
delete these files or directories? filemanager de Diese Dateien oder Verzeichnisse löschen?
delete these shares? filemanager de Diese Freigaben löschen?
delete this file or directory filemanager de Datei oder Verzeichnis löschen
deleted %1 filemanager de %1 gelöscht
directories sorted in filemanager de Verzeichnisse einsortiert
@ -110,6 +113,7 @@ example {{letterprefixcustom n_prefix title n_family}} - example: mr dr. james m
example {{nelf role}} - if field role is not empty, you will get a new line with the value of field role filemanager de Beispiel: {{NELF role}} - Wenn das Feld "role" nicht leer ist, dann wird der Inhalt des Feldes "role" in eine neue Zeile geschrieben.
example {{nelfnv role}} - if field role is not empty, set a lf without any value of the field filemanager de Beispiel: {{NELFNV role}} - Wenn das Feld "role" nicht leer ist, dann wird eine neue Zeile angelegt ohne den Inhalt des Feldes "role" einzufügen.
executable filemanager de Ausführbar
expires filemanager de Läuft ab
export definition to use for nextmatch export filemanager de Exportdefinition für den nextmatch Export
extended access control list filemanager de Erweiterte Zugriffsrechte
extended acl filemanager de Erweiterte Zugriffsrechte
@ -151,6 +155,7 @@ if you specify a document (full vfs path) here, %1 displays an extra document ic
if you specify an export definition, it will be used when you export filemanager de Wenn Sie eine Exportdefinition angeben wird diese für den Export angewendet.
if you specify an export definition, it will be used when you export* filemanager de Wenn Sie eine Exportdefinition angeben wird diese für den Export angewendet.
inherited filemanager de Geerbt
last accessed filemanager de Letzter Zugriff
link filemanager de verknüpfen
link %1: %2 filemanager de %1. Verknüpfung: %2
link target filemanager de Ziel der Verknüpfung
@ -221,6 +226,8 @@ select action... filemanager de Befehl auswählen...
select file to upload in current directory filemanager de Datei zum hochladen in das aktuelle Verzeichnis auswählen.
select file(s) from vfs common de Datein aus dem VFS wählen
setting for document merge saved. filemanager de Einstellungen für Serienbriefe gespeichert.
shared files filemanager de Freigegebene Dateien
shared with filemanager de Geteilt mit
show filemanager de Zeige
show hidden files filemanager de Zeige versteckte Dateien
show link "%1" in side box menu? filemanager de Zeige die Verknüpfung "%1" im Seitenmenü

View File

@ -12,6 +12,7 @@
%1 files copied. filemanager en %1 files copied.
%1 files deleted. filemanager en %1 files deleted.
%1 files moved. filemanager en %1 files moved.
%1 shares deleted. filemanager en %1 shares deleted.
%1 starts with '%2' filemanager en %1 starts with '%2'
%1 successful unmounted. filemanager en %1 successful unmounted.
%1 successful uploaded. filemanager en %1 successfully uploaded.
@ -30,6 +31,7 @@ actions filemanager en Actions
add to clipboard filemanager en Add to clipboard
administrators filemanager en Administrators
all files filemanager en All files
all types filemanager en All types
allow a maximum of the above configured folderlinks to be configured in settings admin en Maximum number of folder links to be configured in preferences.
and all it's childeren filemanager en and all it's children
application fields filemanager en Application fields
@ -73,6 +75,7 @@ cut to clipboard filemanager en Cut to clipboard
default behavior is no. the link will not be shown, but you are still able to navigate to this location, or configure this paricular location as startfolder or folderlink. filemanager en Default = No. The link will not be shown, but you are still able to navigate to this location, or configure this particular location as start folder or folder link.
default document to insert entries filemanager en Default document to insert entries
delete these files or directories? filemanager en Delete these files or directories?
delete these shares? filemanager en Delete these shares?
delete this file or directory filemanager en Delete this file or directory
deleted %1 filemanager en Deleted %1
directories sorted in filemanager en Directories sorted in
@ -110,6 +113,7 @@ example {{letterprefixcustom n_prefix title n_family}} - example: mr dr. james m
example {{nelf role}} - if field role is not empty, you will get a new line with the value of field role filemanager en Example {{NELF role}} - if field role is not empty, you will get a new line with the value of field role
example {{nelfnv role}} - if field role is not empty, set a lf without any value of the field filemanager en Example {{NELFNV role}} - if field role is not empty, set a LF without any value of the field
executable filemanager en Executable
expires filemanager en Expires
export definition to use for nextmatch export filemanager en Export definition to use for nextmatch export
extended access control list filemanager en Extended access control list
extended acl filemanager en Extended ACL
@ -151,6 +155,7 @@ if you specify a document (full vfs path) here, %1 displays an extra document ic
if you specify an export definition, it will be used when you export filemanager en If you specify an export definition, it will be used when you export
if you specify an export definition, it will be used when you export* filemanager en If you specify an export definition, it will be used when you export*
inherited filemanager en Inherited
last accessed filemanager en Last accessed
link filemanager en Link
link %1: %2 filemanager en Link %1: %2
link target filemanager en Link target
@ -221,6 +226,8 @@ select action... filemanager en Select action...
select file to upload in current directory filemanager en Select file to upload in current directory
select file(s) from vfs common en Select file(s) from VFS
setting for document merge saved. filemanager en Setting for document merge saved.
shared files filemanager en Shared files
shared with filemanager en Shared with
show filemanager en Show
show hidden files filemanager en Show hidden files
show link "%1" in side box menu? filemanager en Show link "%1" in side menu

View File

@ -83,6 +83,7 @@ deleted mail de gelöscht
deleted %1 messages in %2 mail de Es wurden %1 Nachricht(en) in %2 gelöscht
deleted! mail de gelöscht!
deny certain groups access to following features mail de Den Zugriff auf bestimmte Funktionen im E-Mail Modul einschränken.
directories have to be shared. mail de Verzeichnisse müssen freigegeben werden.
disable mail de Deaktivieren
disable ruler for separation of mailbody and signature mail de Signatur-Trennzeichen ausblenden
disabled! mail de deaktiviert
@ -282,6 +283,7 @@ notify about new mail in this folders mail de Über neue Mails in diesem Ordner
notify when new mails arrive in these folders mail de Benachrichtigung, sobald neue E-Mails in den folgenden Ordnern ankommen
on mail de am
one address is not valid mail de Eine Adresse ist ungültig
only makes sense, if you transport password through a different channel / outside of this mail to recipients! mail de Macht nur dann Sinn, wenn das Passwort auf einem andren Weg, außerhalb dieser Mail, den Empfängern mitgeteilt wird!
only one window mail de nur ein einziges Fenster
only send message, do not copy a version of the message to the configured sent folder mail de Versende Nachricht, kopiere sie nicht in den konfigurierten Gesendet Ordner
open in html mode mail de In HTML Modus öffnen
@ -290,6 +292,7 @@ organisation admin de Organisation
organization mail de Organisation
original message mail de ursprüngliche Nachricht
outbox mail de Postausgang
password protect mail de Passwort geschützt
please configure access to an existing individual imap account. mail de Bitte konfigurieren Sie hier den Zugang zu einem existierenden IMAP Account.
please contact your administrator to validate if your server supports serverside filterrules, and how to enable them in egroupware for your active account (%1) with id:%2. mail de Bitte kontaktieren Sie ihren Administrator um sicherzustellen dass ihr Server serverseitige Filterregeln unterstützt und wie diese in EGroupware für Ihr aktives Konto (%1) mit der ID %2 erlaubt werden.
please select a address mail de Bitte wählen Sie eine Adresse
@ -360,6 +363,7 @@ select file to import into folder mail de Wählen Sie ein E-Mail als Datei aus,
select file(s) from vfs mail de Dateien aus dem EGroupware Dateimanager auswählen
selected mail de ausgewählt
send a reject message: mail de Ablehnungs-E-Mail senden:
send files as mail de Dateien versenden als
send message and move to send folder (if configured) mail de Versende Nachricht, und kopiere diese in den konfigurierten Gesendet Ordner
sender mail de Absender
sent mail de Gesendet

View File

@ -83,6 +83,7 @@ deleted mail en deleted
deleted %1 messages in %2 mail en deleted %1 messages in %2
deleted! mail en deleted!
deny certain groups access to following features mail en Deny certain groups access to following features
directories have to be shared. mail en Directories have to be shared.
disable mail en Disable
disable ruler for separation of mailbody and signature mail en disable Ruler for separation of mailbody and signature
disabled! mail en disabled!
@ -284,6 +285,7 @@ notify about new mail in this folders mail en Notify about new mail in this fold
notify when new mails arrive in these folders mail en notify when new mails arrive in these folders
on mail en on
one address is not valid mail en One address is not valid
only makes sense, if you transport password through a different channel / outside of this mail to recipients! mail en Only makes sense, if you transport password through a different channel / outside of this mail to recipients!
only one window mail en only one window
only send message, do not copy a version of the message to the configured sent folder mail en only send message, do not copy a version of the message to the configured sent folder
open in html mode mail en Open in HTML mode
@ -292,6 +294,7 @@ organisation admin en organisation
organization mail en organization
original message mail en original message
outbox mail en Outbox
password protect mail en password protect
please configure access to an existing individual imap account. mail en Please configure access to an existing individual IMAP account.
please contact your administrator to validate if your server supports serverside filterrules, and how to enable them in egroupware for your active account (%1) with id:%2. mail en Please contact your Administrator to validate if your Server supports Serverside Filterrules, and how to enable them in EGroupware for your active Account (%1) with ID:%2.
please select a address mail en Please select a address
@ -324,7 +327,6 @@ remove immediately mail en remove immediately
rename folder mail en Rename Folder
rename folder %1 ? mail en Rename Folder %1 ?
rename folder %1 to: mail en Rename Folder %1 to:
resend again after how many days? mail en Resend again after how many days?
replied mail en replied
reply mail en Reply
reply all mail en Reply All
@ -332,6 +334,7 @@ reply message type mail en Reply message type
reply to mail en Reply to
replyto mail en replyto
required pear class mail/mimedecode.php not found. mail en Required PEAR class Mail/mimeDecode.php not found.
resend after how many days? mail en Resend after how many days?
respond to mail sent to: mail en Respond to mail sent to:
restrict acl management admin en restrict acl management
row order style mail en row order style
@ -362,6 +365,7 @@ select file to import into folder mail en Select file to import into Folder
select file(s) from vfs mail en Select file(s) from VFS
selected mail en selected
send a reject message: mail en Send a reject message:
send files as mail en Send files as
send message and move to send folder (if configured) mail en send message and move to send folder (if configured)
sender mail en sender
sent mail en Sent

View File

@ -259,6 +259,7 @@ dominican republic common de DOMINIKANISCHE REPUBLIK
done common de Fertig
dos international common de DOS International
download common de Herunterladen
download link common de Link zum Herunterladen
drag to move jscalendar de Ziehen um zu Bewegen
e-mail common de E-Mail
east timor common de OST TIMOR
@ -287,6 +288,7 @@ enter the location of egroupware's url.<br>example: http://www.domain.com/egroup
entry has been deleted sucessfully common de Eintrag wurde erfolgreich gelöscht
entry not found! common de Eintrag nicht gefunden!
entry updated sucessfully common de Eintrag wurde erfolgreich aktualisiert
epl only common de nur EPL
equatorial guinea common de EQUATORIAL GUINEA
eritrea common de ERITREA
error common de Fehler
@ -298,6 +300,7 @@ etag common de ETag
ethiopia common de ÄTHIOPIEN
everything common de Alles
exact common de exakt
expiration common de Ablaufdatum
failed to change mode of required directory "%1" to %2! admin de Ändern der Zugriffsrechte für benötigtes Verzeichnis "%1" zu %2 fehlgeschlagen!
failed to change password. common de Ändern des Passworts fehlgeschlagen.
failed to contact server or invalid response from server. try to relogin. contact admin in case of faliure. common de Konnte Server nicht erreichen oder ungültige Antwort vom Server. Versuchen Sie sich nochmals anzumelden. Benachrichtigen Sie Ihren Administrator wenn dies fehlschlägt.
@ -456,6 +459,9 @@ license common de Lizenz
liechtenstein common de LIECHTENSTEIN
line %1: '%2'<br><b>csv data does contain ##last-check-run## of table %3 ==> ignored</b> common de Zeile %1: '%2'<br /><b>CSV enthalten ##last-check-run## der Tabelle %3 ==> ignoriert</b>
line %1: '%2'<br><b>csv data does not match column-count of table %3 ==> ignored</b> common de Zeile %1: '%2'<br /><b>CSV haben andere Spaltenanzahl als Tabelle %3 ==> ignoriert</b>
link is appended to mail allowing recipients to download currently attached version of files common de Link wird an die Mail anfügt und erlaubt Adressaten den jetzigen Inhalt der angehangen Dateien herunter zu laden
link is appended to mail allowing recipients to download or modify up to date version of files (epl only) common de Link wird an die Mail anfügt und erlaubt Adressaten den aktuellen Inhalt der angehangen Dateien zu bearbeiten (nur EPL)
link is appended to mail allowing recipients to download up to date version of files common de Link wird an die Mail anfügt und erlaubt Adressaten den aktuellen Inhalt der angehangen Dateien herunter zu laden
list common de Liste
list members common de Mitglieder anzeigen
lithuania common de LITAUEN
@ -650,6 +656,7 @@ qatar common de QATAR
read common de Lesen
read this list of methods. common de Diese Liste der Methoden lesen.
reading common de lesen
readonly share common de Nur lesebare Freigabe
register common de Registrieren
regular common de Normal
reject common de Zurückweisen
@ -890,7 +897,9 @@ whole query common de Gesamte Abfrage
width common de Breite
wk jscalendar de KW
work email common de geschäftliche E-Mail
works reliable for total size up to 1-2 mb, might work for 5-10 mb, most likely to fail for >10mb common de Arbeitet zuverlässig für eine Gesamtgröße von 1-2 MB, kann auch für 5-10 MB funktionieren, wird wahrscheinlich für >10MB fehlschlagen
would you like to display the page generation time at the bottom of every window? common de Möchten Sie die Zeit zur Erstellung der Seite am Ende jedes Fensters anzeigen?
writable share common de Beschreibbare Freigabe
writing common de schreiben
written by: common de geschrieben von:
year common de Jahr

View File

@ -259,6 +259,7 @@ dominican republic common en DOMINICAN REPUBLIC
done common en Done
dos international common en DOS International
download common en Download
download link common en Download link
drag to move jscalendar en Drag to move
e-mail common en Email
east timor common en EAST TIMOR
@ -287,6 +288,7 @@ enter the location of egroupware's url.<br>example: http://www.domain.com/egroup
entry has been deleted sucessfully common en Entry has been deleted successfully.
entry not found! common en Entry not found!
entry updated sucessfully common en Entry updated successfully.
epl only common en EPL only
equatorial guinea common en EQUATORIAL GUINEA
eritrea common en ERITREA
error common en Error
@ -298,6 +300,7 @@ etag common en ETag
ethiopia common en ETHIOPIA
everything common en Everything
exact common en Exact
expiration common en Expiration
failed to change mode of required directory "%1" to %2! admin en Failed to change mode of required directory "%1" to %2!
failed to change password. common en Failed to change password.
failed to contact server or invalid response from server. try to relogin. contact admin in case of faliure. common en Failed to contact server or invalid response from server. Try to re-login. Contact administrator in case of failure.
@ -456,6 +459,9 @@ license common en License
liechtenstein common en LIECHTENSTEIN
line %1: '%2'<br><b>csv data does contain ##last-check-run## of table %3 ==> ignored</b> common en Line %1: '%2'<br><b>csv data does contain ##last-check-run## of table %3 ==> ignored</b>
line %1: '%2'<br><b>csv data does not match column-count of table %3 ==> ignored</b> common en Line %1: '%2'<br><b>csv data does not match column-count of table %3 ==> ignored</b>
link is appended to mail allowing recipients to download currently attached version of files common en Link is appended to mail allowing recipients to download currently attached version of files
link is appended to mail allowing recipients to download or modify up to date version of files (epl only) common en Link is appended to mail allowing recipients to download or modify up to date version of files (EPL only)
link is appended to mail allowing recipients to download up to date version of files common en Link is appended to mail allowing recipients to download up to date version of files
list common en List
list members common en List members
lithuania common en LITHUANIA
@ -650,6 +656,7 @@ qatar common en QATAR
read common en Read
read this list of methods. common en Read this list of methods
reading common en Reading
readonly share common en Readonly share
register common en Register
regular common en Regular
reject common en Reject
@ -890,7 +897,9 @@ whole query common en Whole query
width common en Width
wk jscalendar en wk
work email common en Work email
works reliable for total size up to 1-2 mb, might work for 5-10 mb, most likely to fail for >10mb common en Works reliable for total size up to 1-2 MB, might work for 5-10 MB, most likely to fail for >10MB
would you like to display the page generation time at the bottom of every window? common en Display the page generation time at the bottom of every window
writable share common en Writable share
writing common en Writing
written by: common en Written by:
year common en Year