summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/css/apps.css13
-rw-r--r--core/css/fixes.css12
-rw-r--r--core/css/fonts.css13
-rw-r--r--core/css/share.css2
-rw-r--r--core/css/styles.css46
-rw-r--r--core/fonts/LICENSE.txt202
-rw-r--r--core/fonts/OpenSans-Bold.woffbin0 -> 21272 bytes
-rw-r--r--core/fonts/OpenSans-Regular.woffbin0 -> 20544 bytes
-rw-r--r--core/js/apps.js76
-rw-r--r--core/js/core.json1
-rw-r--r--core/js/jquery.infieldlabel.js177
-rw-r--r--core/js/js.js5
-rw-r--r--core/js/multiselect.js7
-rw-r--r--core/js/placeholders.js459
-rw-r--r--core/l10n/af_ZA.php1
-rw-r--r--core/l10n/ar.php1
-rw-r--r--core/l10n/ast.php1
-rw-r--r--core/l10n/bg_BG.php1
-rw-r--r--core/l10n/bn_BD.php1
-rw-r--r--core/l10n/ca.php1
-rw-r--r--core/l10n/cs_CZ.php1
-rw-r--r--core/l10n/cy_GB.php1
-rw-r--r--core/l10n/da.php1
-rw-r--r--core/l10n/de.php1
-rw-r--r--core/l10n/de_CH.php1
-rw-r--r--core/l10n/de_DE.php1
-rw-r--r--core/l10n/el.php1
-rw-r--r--core/l10n/en_GB.php1
-rw-r--r--core/l10n/eo.php1
-rw-r--r--core/l10n/es.php1
-rw-r--r--core/l10n/es_AR.php1
-rw-r--r--core/l10n/es_MX.php1
-rw-r--r--core/l10n/et_EE.php1
-rw-r--r--core/l10n/eu.php1
-rw-r--r--core/l10n/fa.php1
-rw-r--r--core/l10n/fi_FI.php1
-rw-r--r--core/l10n/fr.php1
-rw-r--r--core/l10n/gl.php1
-rw-r--r--core/l10n/he.php1
-rw-r--r--core/l10n/hi.php1
-rw-r--r--core/l10n/hr.php1
-rw-r--r--core/l10n/hu_HU.php1
-rw-r--r--core/l10n/ia.php1
-rw-r--r--core/l10n/id.php1
-rw-r--r--core/l10n/is.php1
-rw-r--r--core/l10n/it.php1
-rw-r--r--core/l10n/ja.php1
-rw-r--r--core/l10n/ka_GE.php1
-rw-r--r--core/l10n/km.php1
-rw-r--r--core/l10n/ko.php1
-rw-r--r--core/l10n/lb.php1
-rw-r--r--core/l10n/lt_LT.php1
-rw-r--r--core/l10n/lv.php1
-rw-r--r--core/l10n/mk.php1
-rw-r--r--core/l10n/ms_MY.php1
-rw-r--r--core/l10n/nb_NO.php1
-rw-r--r--core/l10n/nl.php1
-rw-r--r--core/l10n/nn_NO.php1
-rw-r--r--core/l10n/oc.php1
-rw-r--r--core/l10n/pl.php9
-rw-r--r--core/l10n/pt_BR.php1
-rw-r--r--core/l10n/pt_PT.php1
-rw-r--r--core/l10n/ro.php1
-rw-r--r--core/l10n/ru.php1
-rw-r--r--core/l10n/si_LK.php1
-rw-r--r--core/l10n/sk_SK.php1
-rw-r--r--core/l10n/sl.php1
-rw-r--r--core/l10n/sq.php1
-rw-r--r--core/l10n/sr.php1
-rw-r--r--core/l10n/sr@latin.php1
-rw-r--r--core/l10n/sv.php1
-rw-r--r--core/l10n/ta_LK.php1
-rw-r--r--core/l10n/th_TH.php1
-rw-r--r--core/l10n/tr.php1
-rw-r--r--core/l10n/uk.php1
-rw-r--r--core/l10n/ur_PK.php1
-rw-r--r--core/l10n/vi.php1
-rw-r--r--core/l10n/zh_CN.php1
-rw-r--r--core/l10n/zh_HK.php1
-rw-r--r--core/l10n/zh_TW.php1
-rw-r--r--core/lostpassword/templates/lostpassword.php6
-rw-r--r--core/lostpassword/templates/resetpassword.php6
-rw-r--r--core/templates/installation.php35
-rw-r--r--core/templates/layout.base.php12
-rw-r--r--core/templates/layout.guest.php12
-rw-r--r--core/templates/layout.user.php12
-rw-r--r--core/templates/login.php20
87 files changed, 860 insertions, 330 deletions
diff --git a/core/css/apps.css b/core/css/apps.css
index 83569398cec..18e299552e5 100644
--- a/core/css/apps.css
+++ b/core/css/apps.css
@@ -10,7 +10,7 @@
/* Navigation: folder like structure */
#app-navigation {
- width: 300px;
+ width: 230px;
height: 100%;
float: left;
-moz-box-sizing: border-box; box-sizing: border-box;
@@ -175,7 +175,7 @@
/* settings area */
#app-settings {
position: fixed;
- width: 299px;
+ width: 229px;
bottom: 0;
border-top: 1px solid #ccc;
}
@@ -278,3 +278,12 @@ button.loading {
.appear.transparent {
opacity: 0;
}
+
+
+/* do not use italic typeface style, instead lighter color */
+em {
+ font-style: normal;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
+ filter: alpha(opacity=50);
+ opacity: .5;
+}
diff --git a/core/css/fixes.css b/core/css/fixes.css
index 0f18f0a56cd..acea53258eb 100644
--- a/core/css/fixes.css
+++ b/core/css/fixes.css
@@ -10,6 +10,11 @@ select {
height: 32px;
}
+/* reset typeface for IE8 because OpenSans renders too small */
+.ie8 body {
+ font-family: Frutiger, Calibri, 'Myriad Pro', Myriad, Arial, sans-serif;
+}
+
.lte8 .delete-icon { background-image: url('../img/actions/delete.png'); }
.lte8 .delete-icon:hover, .delete-icon:focus {
background-image: url('../img/actions/delete-hover.png');
@@ -42,10 +47,6 @@ select {
border-bottom: 1px solid lightgrey;
background-color: white; /* don't change background on hover */
}
-.lte9 #body-login form label.infield {
- background-color: white; /* don't change background on hover */
- -ms-filter: "progid:DXImageTransform.Microsoft.Chroma(color='white')";
-}
/* disable opacity of info text on gradient
since we cannot set a good backround color to use the filter&background hack as with the input labels */
@@ -76,7 +77,7 @@ select {
/* IE8 isn't able to display transparent background. So it is specified using a gradient */
.ie8 #nojavascript {
- filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4c320000', endColorstr='#4c320000'); /* IE */
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4c320000', endColorstr='#4c320000');
}
/* IE8 doesn't have rounded corners, so the strengthify bar should be wider */
@@ -84,3 +85,4 @@ select {
width: 271px;
left: 6px;
}
+
diff --git a/core/css/fonts.css b/core/css/fonts.css
new file mode 100644
index 00000000000..aa6e71bef21
--- /dev/null
+++ b/core/css/fonts.css
@@ -0,0 +1,13 @@
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: normal;
+ src: local('Open Sans'), local('OpenSans'), url(../fonts/OpenSans-Regular.woff) format('woff');
+}
+
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: bold;
+ src: local('Open Sans Bold'), local('OpenSans-Bold'), url(../fonts/OpenSans-Bold.woff) format('woff');
+} \ No newline at end of file
diff --git a/core/css/share.css b/core/css/share.css
index 1527a3a0c0f..0859c195858 100644
--- a/core/css/share.css
+++ b/core/css/share.css
@@ -8,7 +8,7 @@
border-bottom-right-radius: 5px;
box-shadow:0 1px 1px #777;
display:block;
- margin-right:112px;
+ margin-right: 0;
position:absolute;
right:0;
width:420px;
diff --git a/core/css/styles.css b/core/css/styles.css
index a9ffd83629b..595b5532674 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -16,7 +16,10 @@ ul { list-style:none; }
body {
background: #fefefe;
- font: normal .8em/1.6em "Helvetica Neue",Helvetica,Arial,FreeSans,sans-serif;
+ font-weight: normal;
+ font-size: .8em;
+ line-height: 1.6em;
+ font-family: 'Open Sans', Frutiger, Calibri, 'Myriad Pro', Myriad, sans-serif;
color: #000;
height: auto;
}
@@ -469,14 +472,14 @@ input[name='password-clone'] {
#user+label+img,
#password-icon {
position: absolute;
- left: 1.25em;
- top: 1.65em;
+ left: 16px;
+ top: 20px;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
filter: alpha(opacity=30);
opacity: .3;
}
#adminpass-icon, #password-icon {
- top: 1.1em;
+ top: 15px;
}
/* General new input field look */
@@ -489,6 +492,11 @@ input[name='password-clone'] {
}
/* Nicely grouping input field sets */
+.grouptop,
+.groupmiddle,
+.groupbottom {
+ position: relative;
+}
#body-login .grouptop input {
margin-bottom: 0;
border-bottom: 0;
@@ -511,23 +519,11 @@ input[name='password-clone'] {
box-shadow: 0 1px 0 rgba(0,0,0,.1) inset !important;
}
-/* In field labels. No, HTML placeholder does not work as well. */
-#body-login .groupmiddle label, #body-login .groupbottom label { top:.65em; }
-p.infield { position:relative; }
-label.infield { cursor:text !important; top:1.05em; left:.85em; }
-#body-login form label.infield { /* labels are ellipsized when too long, keep them short */
- position: absolute;
- width: 82%;
- margin-left: 26px;
- font-size: 19px;
- color: #aaa;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-#body-login #databaseField .infield {
- margin-left: 0;
+/* keep the labels for screen readers but hide them since we use placeholders */
+label.infield {
+ display: none;
}
+
#body-login form input[type="checkbox"]+label {
position: relative;
margin: 0;
@@ -585,7 +581,7 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
}
#show + label, #dbpassword + label, #personal-show + label {
position: absolute !important;
- height: 14px;
+ height: 20px;
width: 24px;
background-image: url("../img/actions/toggle.png");
background-repeat: no-repeat;
@@ -599,8 +595,9 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
width: 8em;
}
#personal-show + label {
- margin-top: 1em;
- margin-left: -3em;
+ height: 14px;
+ margin-top: 14px;
+ margin-left: -36px;
}
#passwordbutton {
margin-left: .5em;
@@ -685,7 +682,7 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
#body-login input {
font-size: 20px;
margin: 5px;
- padding: 12px 10px 8px;
+ padding: 11px 10px 9px;
}
#body-login input[type="text"],
#body-login input[type="password"] {
@@ -808,7 +805,6 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
display: block;
padding: 7px 12px 6px 7px;
cursor: pointer;
- font-weight: bold;
}
#expand:hover, #expand:focus, #expand:active { color:#fff; }
#expand img { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; filter:alpha(opacity=70); opacity:.7; margin-bottom:-2px; }
diff --git a/core/fonts/LICENSE.txt b/core/fonts/LICENSE.txt
new file mode 100644
index 00000000000..75b52484ea4
--- /dev/null
+++ b/core/fonts/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/core/fonts/OpenSans-Bold.woff b/core/fonts/OpenSans-Bold.woff
new file mode 100644
index 00000000000..ee2ea797d1c
--- /dev/null
+++ b/core/fonts/OpenSans-Bold.woff
Binary files differ
diff --git a/core/fonts/OpenSans-Regular.woff b/core/fonts/OpenSans-Regular.woff
new file mode 100644
index 00000000000..2abc3ed69fd
--- /dev/null
+++ b/core/fonts/OpenSans-Regular.woff
Binary files differ
diff --git a/core/js/apps.js b/core/js/apps.js
new file mode 100644
index 00000000000..5f221bb9826
--- /dev/null
+++ b/core/js/apps.js
@@ -0,0 +1,76 @@
+/**
+ * ownCloud - core
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Bernhard Posselt <dev@bernhard-posselt.com>
+ * @copyright Bernhard Posselt 2014
+ */
+
+(function (document, $, exports) {
+
+ 'use strict';
+
+ var dynamicSlideToggleEnabled = false;
+
+ exports.Apps = {
+ enableDynamicSlideToggle: function () {
+ dynamicSlideToggleEnabled = true;
+ }
+ };
+
+ /**
+ * Provides a way to slide down a target area through a button and slide it
+ * up if the user clicks somewhere else. Used for the news app settings and
+ * add new field.
+ *
+ * Usage:
+ * <button data-apps-slide-toggle=".slide-area">slide</button>
+ * <div class=".slide-area" class="hidden">I'm sliding up</div>
+ */
+ var registerAppsSlideToggle = function () {
+ var buttons = $('[data-apps-slide-toggle]');
+
+ $(document).click(function (event) {
+
+ if (dynamicSlideToggleEnabled) {
+ buttons = $('[data-apps-slide-toggle]');
+ }
+
+ buttons.each(function (index, button) {
+
+ var areaSelector = $(button).data('apps-slide-toggle');
+ var area = $(areaSelector);
+
+ // do nothing if the area is animated
+ if (!area.is(':animated')) {
+
+ // button toggles the area
+ if (button === event.target) {
+ if (area.is(':visible')) {
+ area.slideUp();
+ } else {
+ area.slideDown();
+ }
+
+ // all other areas that have not been clicked but are open
+ // should be slid up
+ } else {
+ var closest = $(event.target).closest(areaSelector);
+ if (area.is(':visible') && closest[0] !== area[0]) {
+ area.slideUp();
+ }
+ }
+ }
+ });
+
+ });
+ };
+
+
+ $(document).ready(function () {
+ registerAppsSlideToggle();
+ });
+
+}(document, jQuery, OC)); \ No newline at end of file
diff --git a/core/js/core.json b/core/js/core.json
index f1e0ba883d0..4815116c338 100644
--- a/core/js/core.json
+++ b/core/js/core.json
@@ -4,7 +4,6 @@
"jquery-migrate-1.2.1.min.js",
"jquery-ui-1.10.0.custom.js",
"jquery-showpassword.js",
- "jquery.infieldlabel.js",
"jquery.placeholder.js",
"jquery-tipsy.js",
"underscore.js"
diff --git a/core/js/jquery.infieldlabel.js b/core/js/jquery.infieldlabel.js
deleted file mode 100644
index fad15102bcb..00000000000
--- a/core/js/jquery.infieldlabel.js
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * jquery.infieldlabel
- * A simple jQuery plugin for adding labels that sit over a form field and fade away when the fields are populated.
- *
- * Copyright (c) 2009 - 2013 Doug Neiner <doug@dougneiner.com> (http://code.dougneiner.com)
- * Source: https://github.com/dcneiner/In-Field-Labels-jQuery-Plugin
- * Dual licensed MIT or GPL
- * MIT (http://www.opensource.org/licenses/mit-license)
- * GPL (http://www.opensource.org/licenses/gpl-license)
- *
- * @version 0.1.3
- */
-(function ($) {
-
- $.InFieldLabels = function (label, field, options) {
- // To avoid scope issues, use 'base' instead of 'this'
- // to reference this class from internal events and functions.
- var base = this;
-
- // Access to jQuery and DOM versions of each element
- base.$label = $(label);
- base.label = label;
-
- base.$field = $(field);
- base.field = field;
-
- base.$label.data("InFieldLabels", base);
- base.showing = true;
-
- base.init = function () {
- var initialSet;
-
- // Merge supplied options with default options
- base.options = $.extend({}, $.InFieldLabels.defaultOptions, options);
-
- // Check if the field is already filled in
- // add a short delay to handle autocomplete
- setTimeout(function() {
- if (base.$field.val() !== "") {
- base.$label.hide();
- base.showing = false;
- } else {
- base.$label.show();
- base.showing = true;
- }
- }, 200);
-
- base.$field.focus(function () {
- base.fadeOnFocus();
- }).blur(function () {
- base.checkForEmpty(true);
- }).bind('keydown.infieldlabel', function (e) {
- // Use of a namespace (.infieldlabel) allows us to
- // unbind just this method later
- base.hideOnChange(e);
- }).bind('paste', function () {
- // Since you can not paste an empty string we can assume
- // that the fieldis not empty and the label can be cleared.
- base.setOpacity(0.0);
- }).change(function () {
- base.checkForEmpty();
- }).bind('onPropertyChange', function () {
- base.checkForEmpty();
- }).bind('keyup.infieldlabel', function () {
- base.checkForEmpty();
- });
-
- if ( base.options.pollDuration > 0 ) {
- initialSet = setInterval( function () {
- if (base.$field.val() !== "") {
- base.$label.hide();
- base.showing = false;
- clearInterval( initialSet );
- }
- }, base.options.pollDuration );
-
- }
- };
-
- // If the label is currently showing
- // then fade it down to the amount
- // specified in the settings
- base.fadeOnFocus = function () {
- if (base.showing) {
- base.setOpacity(base.options.fadeOpacity);
- }
- };
-
- base.setOpacity = function (opacity) {
- base.$label.stop().animate({ opacity: opacity }, base.options.fadeDuration);
- base.showing = (opacity > 0.0);
- };
-
- // Checks for empty as a fail safe
- // set blur to true when passing from
- // the blur event
- base.checkForEmpty = function (blur) {
- if (base.$field.val() === "") {
- base.prepForShow();
- base.setOpacity(blur ? 1.0 : base.options.fadeOpacity);
- } else {
- base.setOpacity(0.0);
- }
- };
-
- base.prepForShow = function () {
- if (!base.showing) {
- // Prepare for a animate in...
- base.$label.css({opacity: 0.0}).show();
-
- // Reattach the keydown event
- base.$field.bind('keydown.infieldlabel', function (e) {
- base.hideOnChange(e);
- });
- }
- };
-
- base.hideOnChange = function (e) {
- if (
- (e.keyCode === 16) || // Skip Shift
- (e.keyCode === 9) // Skip Tab
- ) {
- return;
- }
-
- if (base.showing) {
- base.$label.hide();
- base.showing = false;
- }
-
- // Remove keydown event to save on CPU processing
- base.$field.unbind('keydown.infieldlabel');
- };
-
- // Run the initialization method
- base.init();
- };
-
- $.InFieldLabels.defaultOptions = {
- fadeOpacity: 0.5, // Once a field has focus, how transparent should the label be
- fadeDuration: 300, // How long should it take to animate from 1.0 opacity to the fadeOpacity
- pollDuration: 0, // If set to a number greater than zero, this will poll until content is detected in a field
- enabledInputTypes: [ "text", "search", "tel", "url", "email", "password", "number", "textarea" ]
- };
-
-
- $.fn.inFieldLabels = function (options) {
- var allowed_types = options && options.enabledInputTypes || $.InFieldLabels.defaultOptions.enabledInputTypes;
-
- return this.each(function () {
- // Find input or textarea based on for= attribute
- // The for attribute on the label must contain the ID
- // of the input or textarea element
- var for_attr = $(this).attr('for'), field, restrict_type;
- if (!for_attr) {
- return; // Nothing to attach, since the for field wasn't used
- }
-
- // Find the referenced input or textarea element
- field = document.getElementById( for_attr );
- if ( !field ) {
- return; // No element found
- }
-
- // Restrict input type
- restrict_type = $.inArray( field.type, allowed_types );
-
- if ( restrict_type === -1 && field.nodeName !== "TEXTAREA" ) {
- return; // Again, nothing to attach
- }
-
- // Only create object for matched input types and textarea
- (new $.InFieldLabels(this, field, options));
- });
- };
-
-}(jQuery));
diff --git a/core/js/js.js b/core/js/js.js
index 1c4fb98c60c..834916b2e3f 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -1039,11 +1039,6 @@ function initCore() {
setShowPassword($('#pass2'), $('label[for=personal-show]'));
setShowPassword($('#dbpass'), $('label[for=dbpassword]'));
- //use infield labels
- $("label.infield").inFieldLabels({
- pollDuration: 100
- });
-
var checkShowCredentials = function() {
var empty = false;
$('input#user, input#password').each(function() {
diff --git a/core/js/multiselect.js b/core/js/multiselect.js
index dac39b6acf5..565b793200f 100644
--- a/core/js/multiselect.js
+++ b/core/js/multiselect.js
@@ -175,7 +175,8 @@
button.animate({'width':newWidth},undefined,undefined,function(){
button.css('width','');
});
- list.animate({'width':newOuterWidth,'left':pos.left+3});
+ list.animate({'width':newOuterWidth,'left':pos.left});
+ self.change();
});
var li=$('<li></li>');
li.append(input).append(label);
@@ -285,7 +286,7 @@
) {
list.css({
top:pos.top+button.outerHeight()-5,
- left:pos.left+3,
+ left:pos.left,
width:(button.outerWidth()-2)+'px',
'max-height':($(document).height()-(button.offset().top+button.outerHeight()+10))+'px'
});
@@ -296,7 +297,7 @@
list.css('max-height', $(document).height()-($(document).height()-(pos.top)+50)+'px');
list.css({
top:pos.top - list.height(),
- left:pos.left+3,
+ left:pos.left,
width:(button.outerWidth()-2)+'px'
});
diff --git a/core/js/placeholders.js b/core/js/placeholders.js
new file mode 100644
index 00000000000..e63f429d40f
--- /dev/null
+++ b/core/js/placeholders.js
@@ -0,0 +1,459 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 James Allardice
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+// Defines the global Placeholders object along with various utility methods
+(function (global) {
+
+ "use strict";
+
+ // Cross-browser DOM event binding
+ function addEventListener(elem, event, fn) {
+ if (elem.addEventListener) {
+ return elem.addEventListener(event, fn, false);
+ }
+ if (elem.attachEvent) {
+ return elem.attachEvent("on" + event, fn);
+ }
+ }
+
+ // Check whether an item is in an array (we don't use Array.prototype.indexOf so we don't clobber any existing polyfills - this is a really simple alternative)
+ function inArray(arr, item) {
+ var i, len;
+ for (i = 0, len = arr.length; i < len; i++) {
+ if (arr[i] === item) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ // Move the caret to the index position specified. Assumes that the element has focus
+ function moveCaret(elem, index) {
+ var range;
+ if (elem.createTextRange) {
+ range = elem.createTextRange();
+ range.move("character", index);
+ range.select();
+ } else if (elem.selectionStart) {
+ elem.focus();
+ elem.setSelectionRange(index, index);
+ }
+ }
+
+ // Attempt to change the type property of an input element
+ function changeType(elem, type) {
+ try {
+ elem.type = type;
+ return true;
+ } catch (e) {
+ // You can't change input type in IE8 and below
+ return false;
+ }
+ }
+
+ // Expose public methods
+ global.Placeholders = {
+ Utils: {
+ addEventListener: addEventListener,
+ inArray: inArray,
+ moveCaret: moveCaret,
+ changeType: changeType
+ }
+ };
+
+}(this));
+
+(function (global) {
+
+ "use strict";
+
+ var validTypes = [
+ "text",
+ "search",
+ "url",
+ "tel",
+ "email",
+ "password",
+ "number",
+ "textarea"
+ ],
+
+ // The list of keycodes that are not allowed when the polyfill is configured to hide-on-input
+ badKeys = [
+
+ // The following keys all cause the caret to jump to the end of the input value
+ 27, // Escape
+ 33, // Page up
+ 34, // Page down
+ 35, // End
+ 36, // Home
+
+ // Arrow keys allow you to move the caret manually, which should be prevented when the placeholder is visible
+ 37, // Left
+ 38, // Up
+ 39, // Right
+ 40, // Down
+
+ // The following keys allow you to modify the placeholder text by removing characters, which should be prevented when the placeholder is visible
+ 8, // Backspace
+ 46 // Delete
+ ],
+
+ // Styling variables
+ placeholderStyleColor = "#ccc",
+ placeholderClassName = "placeholdersjs",
+ classNameRegExp = new RegExp("(?:^|\\s)" + placeholderClassName + "(?!\\S)"),
+
+ // These will hold references to all elements that can be affected. NodeList objects are live, so we only need to get those references once
+ inputs, textareas,
+
+ // The various data-* attributes used by the polyfill
+ ATTR_CURRENT_VAL = "data-placeholder-value",
+ ATTR_ACTIVE = "data-placeholder-active",
+ ATTR_INPUT_TYPE = "data-placeholder-type",
+ ATTR_FORM_HANDLED = "data-placeholder-submit",
+ ATTR_EVENTS_BOUND = "data-placeholder-bound",
+ ATTR_OPTION_FOCUS = "data-placeholder-focus",
+ ATTR_OPTION_LIVE = "data-placeholder-live",
+ ATTR_MAXLENGTH = "data-placeholder-maxlength",
+
+ // Various other variables used throughout the rest of the script
+ test = document.createElement("input"),
+ head = document.getElementsByTagName("head")[0],
+ root = document.documentElement,
+ Placeholders = global.Placeholders,
+ Utils = Placeholders.Utils,
+ hideOnInput, liveUpdates, keydownVal, styleElem, styleRules, placeholder, timer, form, elem, len, i;
+
+ // No-op (used in place of public methods when native support is detected)
+ function noop() {}
+
+ // Avoid IE9 activeElement of death when an iframe is used.
+ // More info:
+ // http://bugs.jquery.com/ticket/13393
+ // https://github.com/jquery/jquery/commit/85fc5878b3c6af73f42d61eedf73013e7faae408
+ function safeActiveElement() {
+ try {
+ return document.activeElement;
+ } catch (err) {}
+ }
+
+ // Hide the placeholder value on a single element. Returns true if the placeholder was hidden and false if it was not (because it wasn't visible in the first place)
+ function hidePlaceholder(elem, keydownValue) {
+ var type,
+ maxLength,
+ valueChanged = (!!keydownValue && elem.value !== keydownValue),
+ isPlaceholderValue = (elem.value === elem.getAttribute(ATTR_CURRENT_VAL));
+
+ if ((valueChanged || isPlaceholderValue) && elem.getAttribute(ATTR_ACTIVE) === "true") {
+ elem.removeAttribute(ATTR_ACTIVE);
+ elem.value = elem.value.replace(elem.getAttribute(ATTR_CURRENT_VAL), "");
+ elem.className = elem.className.replace(classNameRegExp, "");
+
+ // Restore the maxlength value
+ maxLength = elem.getAttribute(ATTR_MAXLENGTH);
+ if (parseInt(maxLength, 10) >= 0) { // Old FF returns -1 if attribute not set (see GH-56)
+ elem.setAttribute("maxLength", maxLength);
+ elem.removeAttribute(ATTR_MAXLENGTH);
+ }
+
+ // If the polyfill has changed the type of the element we need to change it back
+ type = elem.getAttribute(ATTR_INPUT_TYPE);
+ if (type) {
+ elem.type = type;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ // Show the placeholder value on a single element. Returns true if the placeholder was shown and false if it was not (because it was already visible)
+ function showPlaceholder(elem) {
+ var type,
+ maxLength,
+ val = elem.getAttribute(ATTR_CURRENT_VAL);
+ if (elem.value === "" && val) {
+ elem.setAttribute(ATTR_ACTIVE, "true");
+ elem.value = val;
+ elem.className += " " + placeholderClassName;
+
+ // Store and remove the maxlength value
+ maxLength = elem.getAttribute(ATTR_MAXLENGTH);
+ if (!maxLength) {
+ elem.setAttribute(ATTR_MAXLENGTH, elem.maxLength);
+ elem.removeAttribute("maxLength");
+ }
+
+ // If the type of element needs to change, change it (e.g. password inputs)
+ type = elem.getAttribute(ATTR_INPUT_TYPE);
+ if (type) {
+ elem.type = "text";
+ } else if (elem.type === "password") {
+ if (Utils.changeType(elem, "text")) {
+ elem.setAttribute(ATTR_INPUT_TYPE, "password");
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
+ function handleElem(node, callback) {
+
+ var handleInputsLength, handleTextareasLength, handleInputs, handleTextareas, elem, len, i;
+
+ // Check if the passed in node is an input/textarea (in which case it can't have any affected descendants)
+ if (node && node.getAttribute(ATTR_CURRENT_VAL)) {
+ callback(node);
+ } else {
+
+ // If an element was passed in, get all affected descendants. Otherwise, get all affected elements in document
+ handleInputs = node ? node.getElementsByTagName("input") : inputs;
+ handleTextareas = node ? node.getElementsByTagName("textarea") : textareas;
+
+ handleInputsLength = handleInputs ? handleInputs.length : 0;
+ handleTextareasLength = handleTextareas ? handleTextareas.length : 0;
+
+ // Run the callback for each element
+ for (i = 0, len = handleInputsLength + handleTextareasLength; i < len; i++) {
+ elem = i < handleInputsLength ? handleInputs[i] : handleTextareas[i - handleInputsLength];
+ callback(elem);
+ }
+ }
+ }
+
+ // Return all affected elements to their normal state (remove placeholder value if present)
+ function disablePlaceholders(node) {
+ handleElem(node, hidePlaceholder);
+ }
+
+ // Show the placeholder value on all appropriate elements
+ function enablePlaceholders(node) {
+ handleElem(node, showPlaceholder);
+ }
+
+ // Returns a function that is used as a focus event handler
+ function makeFocusHandler(elem) {
+ return function () {
+
+ // Only hide the placeholder value if the (default) hide-on-focus behaviour is enabled
+ if (hideOnInput && elem.value === elem.getAttribute(ATTR_CURRENT_VAL) && elem.getAttribute(ATTR_ACTIVE) === "true") {
+
+ // Move the caret to the start of the input (this mimics the behaviour of all browsers that do not hide the placeholder on focus)
+ Utils.moveCaret(elem, 0);
+
+ } else {
+
+ // Remove the placeholder
+ hidePlaceholder(elem);
+ }
+ };
+ }
+
+ // Returns a function that is used as a blur event handler
+ function makeBlurHandler(elem) {
+ return function () {
+ showPlaceholder(elem);
+ };
+ }
+
+ // Functions that are used as a event handlers when the hide-on-input behaviour has been activated - very basic implementation of the "input" event
+ function makeKeydownHandler(elem) {
+ return function (e) {
+ keydownVal = elem.value;
+
+ //Prevent the use of the arrow keys (try to keep the cursor before the placeholder)
+ if (elem.getAttribute(ATTR_ACTIVE) === "true") {
+ if (keydownVal === elem.getAttribute(ATTR_CURRENT_VAL) && Utils.inArray(badKeys, e.keyCode)) {
+ if (e.preventDefault) {
+ e.preventDefault();
+ }
+ return false;
+ }
+ }
+ };
+ }
+ function makeKeyupHandler(elem) {
+ return function () {
+ hidePlaceholder(elem, keydownVal);
+
+ // If the element is now empty we need to show the placeholder
+ if (elem.value === "") {
+ elem.blur();
+ Utils.moveCaret(elem, 0);
+ }
+ };
+ }
+ function makeClickHandler(elem) {
+ return function () {
+ if (elem === safeActiveElement() && elem.value === elem.getAttribute(ATTR_CURRENT_VAL) && elem.getAttribute(ATTR_ACTIVE) === "true") {
+ Utils.moveCaret(elem, 0);
+ }
+ };
+ }
+
+ // Returns a function that is used as a submit event handler on form elements that have children affected by this polyfill
+ function makeSubmitHandler(form) {
+ return function () {
+
+ // Turn off placeholders on all appropriate descendant elements
+ disablePlaceholders(form);
+ };
+ }
+
+ // Bind event handlers to an element that we need to affect with the polyfill
+ function newElement(elem) {
+
+ // If the element is part of a form, make sure the placeholder string is not submitted as a value
+ if (elem.form) {
+ form = elem.form;
+
+ // If the type of the property is a string then we have a "form" attribute and need to get the real form
+ if (typeof form === "string") {
+ form = document.getElementById(form);
+ }
+
+ // Set a flag on the form so we know it's been handled (forms can contain multiple inputs)
+ if (!form.getAttribute(ATTR_FORM_HANDLED)) {
+ Utils.addEventListener(form, "submit", makeSubmitHandler(form));
+ form.setAttribute(ATTR_FORM_HANDLED, "true");
+ }
+ }
+
+ // Bind event handlers to the element so we can hide/show the placeholder as appropriate
+ Utils.addEventListener(elem, "focus", makeFocusHandler(elem));
+ Utils.addEventListener(elem, "blur", makeBlurHandler(elem));
+
+ // If the placeholder should hide on input rather than on focus we need additional event handlers
+ if (hideOnInput) {
+ Utils.addEventListener(elem, "keydown", makeKeydownHandler(elem));
+ Utils.addEventListener(elem, "keyup", makeKeyupHandler(elem));
+ Utils.addEventListener(elem, "click", makeClickHandler(elem));
+ }
+
+ // Remember that we've bound event handlers to this element
+ elem.setAttribute(ATTR_EVENTS_BOUND, "true");
+ elem.setAttribute(ATTR_CURRENT_VAL, placeholder);
+
+ // If the element doesn't have a value and is not focussed, set it to the placeholder string
+ if (hideOnInput || elem !== safeActiveElement()) {
+ showPlaceholder(elem);
+ }
+ }
+
+ Placeholders.nativeSupport = test.placeholder !== void 0;
+
+ if (!Placeholders.nativeSupport) {
+
+ // Get references to all the input and textarea elements currently in the DOM (live NodeList objects to we only need to do this once)
+ inputs = document.getElementsByTagName("input");
+ textareas = document.getElementsByTagName("textarea");
+
+ // Get any settings declared as data-* attributes on the root element (currently the only options are whether to hide the placeholder on focus or input and whether to auto-update)
+ hideOnInput = root.getAttribute(ATTR_OPTION_FOCUS) === "false";
+ liveUpdates = root.getAttribute(ATTR_OPTION_LIVE) !== "false";
+
+ // Create style element for placeholder styles (instead of directly setting style properties on elements - allows for better flexibility alongside user-defined styles)
+ styleElem = document.createElement("style");
+ styleElem.type = "text/css";
+
+ // Create style rules as text node
+ styleRules = document.createTextNode("." + placeholderClassName + " { color:" + placeholderStyleColor + "; }");
+
+ // Append style rules to newly created stylesheet
+ if (styleElem.styleSheet) {
+ styleElem.styleSheet.cssText = styleRules.nodeValue;
+ } else {
+ styleElem.appendChild(styleRules);
+ }
+
+ // Prepend new style element to the head (before any existing stylesheets, so user-defined rules take precedence)
+ head.insertBefore(styleElem, head.firstChild);
+
+ // Set up the placeholders
+ for (i = 0, len = inputs.length + textareas.length; i < len; i++) {
+ elem = i < inputs.length ? inputs[i] : textareas[i - inputs.length];
+
+ // Get the value of the placeholder attribute, if any. IE10 emulating IE7 fails with getAttribute, hence the use of the attributes node
+ placeholder = elem.attributes.placeholder;
+ if (placeholder) {
+
+ // IE returns an empty object instead of undefined if the attribute is not present
+ placeholder = placeholder.nodeValue;
+
+ // Only apply the polyfill if this element is of a type that supports placeholders, and has a placeholder attribute with a non-empty value
+ if (placeholder && Utils.inArray(validTypes, elem.type)) {
+ newElement(elem);
+ }
+ }
+ }
+
+ // If enabled, the polyfill will repeatedly check for changed/added elements and apply to those as well
+ timer = setInterval(function () {
+ for (i = 0, len = inputs.length + textareas.length; i < len; i++) {
+ elem = i < inputs.length ? inputs[i] : textareas[i - inputs.length];
+
+ // Only apply the polyfill if this element is of a type that supports placeholders, and has a placeholder attribute with a non-empty value
+ placeholder = elem.attributes.placeholder;
+ if (placeholder) {
+ placeholder = placeholder.nodeValue;
+ if (placeholder && Utils.inArray(validTypes, elem.type)) {
+
+ // If the element hasn't had event handlers bound to it then add them
+ if (!elem.getAttribute(ATTR_EVENTS_BOUND)) {
+ newElement(elem);
+ }
+
+ // If the placeholder value has changed or not been initialised yet we need to update the display
+ if (placeholder !== elem.getAttribute(ATTR_CURRENT_VAL) || (elem.type === "password" && !elem.getAttribute(ATTR_INPUT_TYPE))) {
+
+ // Attempt to change the type of password inputs (fails in IE < 9)
+ if (elem.type === "password" && !elem.getAttribute(ATTR_INPUT_TYPE) && Utils.changeType(elem, "text")) {
+ elem.setAttribute(ATTR_INPUT_TYPE, "password");
+ }
+
+ // If the placeholder value has changed and the placeholder is currently on display we need to change it
+ if (elem.value === elem.getAttribute(ATTR_CURRENT_VAL)) {
+ elem.value = placeholder;
+ }
+
+ // Keep a reference to the current placeholder value in case it changes via another script
+ elem.setAttribute(ATTR_CURRENT_VAL, placeholder);
+ }
+ }
+ } else if (elem.getAttribute(ATTR_ACTIVE)) {
+ hidePlaceholder(elem);
+ elem.removeAttribute(ATTR_CURRENT_VAL);
+ }
+ }
+
+ // If live updates are not enabled cancel the timer
+ if (!liveUpdates) {
+ clearInterval(timer);
+ }
+ }, 100);
+ }
+
+ Utils.addEventListener(global, "beforeunload", function () {
+ Placeholders.disable();
+ });
+
+ // Expose public methods
+ Placeholders.disable = Placeholders.nativeSupport ? noop : disablePlaceholders;
+ Placeholders.enable = Placeholders.nativeSupport ? noop : enablePlaceholders;
+
+}(this));
diff --git a/core/l10n/af_ZA.php b/core/l10n/af_ZA.php
index a5facc4f9ef..978bbb0fc01 100644
--- a/core/l10n/af_ZA.php
+++ b/core/l10n/af_ZA.php
@@ -115,7 +115,6 @@ $TRANSLATIONS = array(
"Password" => "Wagwoord",
"Data folder" => "Data vouer",
"Configure the database" => "Stel databasis op",
-"will be used" => "sal gebruik word",
"Database user" => "Databasis-gebruiker",
"Database password" => "Databasis-wagwoord",
"Database name" => "Databasis naam",
diff --git a/core/l10n/ar.php b/core/l10n/ar.php
index 8905516c42d..4bb07293f5d 100644
--- a/core/l10n/ar.php
+++ b/core/l10n/ar.php
@@ -110,7 +110,6 @@ $TRANSLATIONS = array(
"Password" => "كلمة المرور",
"Data folder" => "مجلد المعلومات",
"Configure the database" => "أسس قاعدة البيانات",
-"will be used" => "سيتم استخدمه",
"Database user" => "مستخدم قاعدة البيانات",
"Database password" => "كلمة سر مستخدم قاعدة البيانات",
"Database name" => "إسم قاعدة البيانات",
diff --git a/core/l10n/ast.php b/core/l10n/ast.php
index 0624b2bbf31..65ec8192744 100644
--- a/core/l10n/ast.php
+++ b/core/l10n/ast.php
@@ -137,7 +137,6 @@ $TRANSLATIONS = array(
"Password" => "Contraseña",
"Data folder" => "Carpeta de datos",
"Configure the database" => "Configura la base de datos",
-"will be used" => "usaráse",
"Database user" => "Usuariu de la base de datos",
"Database password" => "Contraseña de la base de datos",
"Database name" => "Nome de la base de datos",
diff --git a/core/l10n/bg_BG.php b/core/l10n/bg_BG.php
index 8653f2435cd..320c6d21708 100644
--- a/core/l10n/bg_BG.php
+++ b/core/l10n/bg_BG.php
@@ -87,7 +87,6 @@ $TRANSLATIONS = array(
"Password" => "Парола",
"Data folder" => "Директория за данни",
"Configure the database" => "Конфигуриране на базата",
-"will be used" => "ще се ползва",
"Database user" => "Потребител за базата",
"Database password" => "Парола за базата",
"Database name" => "Име на базата",
diff --git a/core/l10n/bn_BD.php b/core/l10n/bn_BD.php
index 90540d6ef8a..f0b86c23ae7 100644
--- a/core/l10n/bn_BD.php
+++ b/core/l10n/bn_BD.php
@@ -89,7 +89,6 @@ $TRANSLATIONS = array(
"Password" => "কূটশব্দ",
"Data folder" => "ডাটা ফোল্ডার ",
"Configure the database" => "ডাটাবেচ কনফিগার করুন",
-"will be used" => "ব্যবহৃত হবে",
"Database user" => "ডাটাবেজ ব্যবহারকারী",
"Database password" => "ডাটাবেজ কূটশব্দ",
"Database name" => "ডাটাবেজের নাম",
diff --git a/core/l10n/ca.php b/core/l10n/ca.php
index b7866bcbeb7..31217c9fe01 100644
--- a/core/l10n/ca.php
+++ b/core/l10n/ca.php
@@ -152,7 +152,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Emmagatzematge i base de dades",
"Data folder" => "Carpeta de dades",
"Configure the database" => "Configura la base de dades",
-"will be used" => "s'usarà",
"Database user" => "Usuari de la base de dades",
"Database password" => "Contrasenya de la base de dades",
"Database name" => "Nom de la base de dades",
diff --git a/core/l10n/cs_CZ.php b/core/l10n/cs_CZ.php
index 54ba2b4b94f..c8b81262d2b 100644
--- a/core/l10n/cs_CZ.php
+++ b/core/l10n/cs_CZ.php
@@ -155,7 +155,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Úložiště & databáze",
"Data folder" => "Složka s daty",
"Configure the database" => "Nastavit databázi",
-"will be used" => "bude použito",
"Database user" => "Uživatel databáze",
"Database password" => "Heslo databáze",
"Database name" => "Název databáze",
diff --git a/core/l10n/cy_GB.php b/core/l10n/cy_GB.php
index ade2eeb5641..ccf6f5fae98 100644
--- a/core/l10n/cy_GB.php
+++ b/core/l10n/cy_GB.php
@@ -97,7 +97,6 @@ $TRANSLATIONS = array(
"Password" => "Cyfrinair",
"Data folder" => "Plygell data",
"Configure the database" => "Cyflunio'r gronfa ddata",
-"will be used" => "ddefnyddir",
"Database user" => "Defnyddiwr cronfa ddata",
"Database password" => "Cyfrinair cronfa ddata",
"Database name" => "Enw cronfa ddata",
diff --git a/core/l10n/da.php b/core/l10n/da.php
index 9facf96ea4d..73e1791fab5 100644
--- a/core/l10n/da.php
+++ b/core/l10n/da.php
@@ -152,7 +152,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Lager & database",
"Data folder" => "Datamappe",
"Configure the database" => "Konfigurer databasen",
-"will be used" => "vil blive brugt",
"Database user" => "Databasebruger",
"Database password" => "Databasekodeord",
"Database name" => "Navn på database",
diff --git a/core/l10n/de.php b/core/l10n/de.php
index 20b7c8004ed..b3a30a228ef 100644
--- a/core/l10n/de.php
+++ b/core/l10n/de.php
@@ -158,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Speicher & Datenbank",
"Data folder" => "Datenverzeichnis",
"Configure the database" => "Datenbank einrichten",
-"will be used" => "wird verwendet",
"Database user" => "Datenbank-Benutzer",
"Database password" => "Datenbank-Passwort",
"Database name" => "Datenbank-Name",
diff --git a/core/l10n/de_CH.php b/core/l10n/de_CH.php
index 84ef4085d55..3d377a6f821 100644
--- a/core/l10n/de_CH.php
+++ b/core/l10n/de_CH.php
@@ -108,7 +108,6 @@ $TRANSLATIONS = array(
"Password" => "Passwort",
"Data folder" => "Datenverzeichnis",
"Configure the database" => "Datenbank einrichten",
-"will be used" => "wird verwendet",
"Database user" => "Datenbank-Benutzer",
"Database password" => "Datenbank-Passwort",
"Database name" => "Datenbank-Name",
diff --git a/core/l10n/de_DE.php b/core/l10n/de_DE.php
index b145700bfdd..dfceff4113f 100644
--- a/core/l10n/de_DE.php
+++ b/core/l10n/de_DE.php
@@ -158,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Speicher & Datenbank",
"Data folder" => "Datenverzeichnis",
"Configure the database" => "Datenbank einrichten",
-"will be used" => "wird verwendet",
"Database user" => "Datenbank-Benutzer",
"Database password" => "Datenbank-Passwort",
"Database name" => "Datenbank-Name",
diff --git a/core/l10n/el.php b/core/l10n/el.php
index ec47f40ad98..500b4df3c10 100644
--- a/core/l10n/el.php
+++ b/core/l10n/el.php
@@ -158,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Αποθήκευση & βάση δεδομένων",
"Data folder" => "Φάκελος δεδομένων",
"Configure the database" => "Ρύθμιση της βάσης δεδομένων",
-"will be used" => "θα χρησιμοποιηθούν",
"Database user" => "Χρήστης της βάσης δεδομένων",
"Database password" => "Συνθηματικό βάσης δεδομένων",
"Database name" => "Όνομα βάσης δεδομένων",
diff --git a/core/l10n/en_GB.php b/core/l10n/en_GB.php
index 36753fb884e..ad55d831d65 100644
--- a/core/l10n/en_GB.php
+++ b/core/l10n/en_GB.php
@@ -158,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Storage & database",
"Data folder" => "Data folder",
"Configure the database" => "Configure the database",
-"will be used" => "will be used",
"Database user" => "Database user",
"Database password" => "Database password",
"Database name" => "Database name",
diff --git a/core/l10n/eo.php b/core/l10n/eo.php
index f5844f9469b..9efd1dfd8e7 100644
--- a/core/l10n/eo.php
+++ b/core/l10n/eo.php
@@ -122,7 +122,6 @@ $TRANSLATIONS = array(
"Password" => "Pasvorto",
"Data folder" => "Datuma dosierujo",
"Configure the database" => "Agordi la datumbazon",
-"will be used" => "estos uzata",
"Database user" => "Datumbaza uzanto",
"Database password" => "Datumbaza pasvorto",
"Database name" => "Datumbaza nomo",
diff --git a/core/l10n/es.php b/core/l10n/es.php
index fcdafb213e7..1cb5d0f2b2c 100644
--- a/core/l10n/es.php
+++ b/core/l10n/es.php
@@ -158,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Almacenamiento y base de datos",
"Data folder" => "Directorio de datos",
"Configure the database" => "Configurar la base de datos",
-"will be used" => "se utilizarán",
"Database user" => "Usuario de la base de datos",
"Database password" => "Contraseña de la base de datos",
"Database name" => "Nombre de la base de datos",
diff --git a/core/l10n/es_AR.php b/core/l10n/es_AR.php
index 5548476e872..d8f78ee4a28 100644
--- a/core/l10n/es_AR.php
+++ b/core/l10n/es_AR.php
@@ -146,7 +146,6 @@ $TRANSLATIONS = array(
"Password" => "Contraseña",
"Data folder" => "Directorio de almacenamiento",
"Configure the database" => "Configurar la base de datos",
-"will be used" => "se usarán",
"Database user" => "Usuario de la base de datos",
"Database password" => "Contraseña de la base de datos",
"Database name" => "Nombre de la base de datos",
diff --git a/core/l10n/es_MX.php b/core/l10n/es_MX.php
index b4c9939c5c9..152b1812b3b 100644
--- a/core/l10n/es_MX.php
+++ b/core/l10n/es_MX.php
@@ -140,7 +140,6 @@ $TRANSLATIONS = array(
"Password" => "Contraseña",
"Data folder" => "Directorio de datos",
"Configure the database" => "Configurar la base de datos",
-"will be used" => "se utilizarán",
"Database user" => "Usuario de la base de datos",
"Database password" => "Contraseña de la base de datos",
"Database name" => "Nombre de la base de datos",
diff --git a/core/l10n/et_EE.php b/core/l10n/et_EE.php
index 559fc2215a1..f39d78b4d58 100644
--- a/core/l10n/et_EE.php
+++ b/core/l10n/et_EE.php
@@ -155,7 +155,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Andmehoidla ja andmebaas",
"Data folder" => "Andmete kaust",
"Configure the database" => "Seadista andmebaasi",
-"will be used" => "kasutatakse",
"Database user" => "Andmebaasi kasutaja",
"Database password" => "Andmebaasi parool",
"Database name" => "Andmebasi nimi",
diff --git a/core/l10n/eu.php b/core/l10n/eu.php
index 7c696f50f58..88d94241c7a 100644
--- a/core/l10n/eu.php
+++ b/core/l10n/eu.php
@@ -151,7 +151,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Biltegia & datubasea",
"Data folder" => "Datuen karpeta",
"Configure the database" => "Konfiguratu datu basea",
-"will be used" => "erabiliko da",
"Database user" => "Datubasearen erabiltzailea",
"Database password" => "Datubasearen pasahitza",
"Database name" => "Datubasearen izena",
diff --git a/core/l10n/fa.php b/core/l10n/fa.php
index cfde371e467..661a54f19ef 100644
--- a/core/l10n/fa.php
+++ b/core/l10n/fa.php
@@ -112,7 +112,6 @@ $TRANSLATIONS = array(
"Storage & database" => "انبارش و پایگاه داده",
"Data folder" => "پوشه اطلاعاتی",
"Configure the database" => "پایگاه داده برنامه ریزی شدند",
-"will be used" => "استفاده خواهد شد",
"Database user" => "شناسه پایگاه داده",
"Database password" => "پسورد پایگاه داده",
"Database name" => "نام پایگاه داده",
diff --git a/core/l10n/fi_FI.php b/core/l10n/fi_FI.php
index 7bfae86a230..716f6fdd4a8 100644
--- a/core/l10n/fi_FI.php
+++ b/core/l10n/fi_FI.php
@@ -158,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Tallennus ja tietokanta",
"Data folder" => "Datakansio",
"Configure the database" => "Muokkaa tietokantaa",
-"will be used" => "käytetään",
"Database user" => "Tietokannan käyttäjä",
"Database password" => "Tietokannan salasana",
"Database name" => "Tietokannan nimi",
diff --git a/core/l10n/fr.php b/core/l10n/fr.php
index f24f0ec2590..6b628e03dda 100644
--- a/core/l10n/fr.php
+++ b/core/l10n/fr.php
@@ -158,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Support de stockage & base de données",
"Data folder" => "Répertoire des données",
"Configure the database" => "Configurer la base de données",
-"will be used" => "sera utilisé",
"Database user" => "Utilisateur pour la base de données",
"Database password" => "Mot de passe de la base de données",
"Database name" => "Nom de la base de données",
diff --git a/core/l10n/gl.php b/core/l10n/gl.php
index e43ca0423c1..a6dd114c021 100644
--- a/core/l10n/gl.php
+++ b/core/l10n/gl.php
@@ -158,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Almacenamento e base de datos",
"Data folder" => "Cartafol de datos",
"Configure the database" => "Configurar a base de datos",
-"will be used" => "vai ser utilizado",
"Database user" => "Usuario da base de datos",
"Database password" => "Contrasinal da base de datos",
"Database name" => "Nome da base de datos",
diff --git a/core/l10n/he.php b/core/l10n/he.php
index d139056ec87..d4d2824aed6 100644
--- a/core/l10n/he.php
+++ b/core/l10n/he.php
@@ -100,7 +100,6 @@ $TRANSLATIONS = array(
"Password" => "סיסמא",
"Data folder" => "תיקיית נתונים",
"Configure the database" => "הגדרת מסד הנתונים",
-"will be used" => "ינוצלו",
"Database user" => "שם משתמש במסד הנתונים",
"Database password" => "ססמת מסד הנתונים",
"Database name" => "שם מסד הנתונים",
diff --git a/core/l10n/hi.php b/core/l10n/hi.php
index 1b156291681..ada4970a029 100644
--- a/core/l10n/hi.php
+++ b/core/l10n/hi.php
@@ -48,7 +48,6 @@ $TRANSLATIONS = array(
"Password" => "पासवर्ड",
"Data folder" => "डाटा फोल्डर",
"Configure the database" => "डेटाबेस कॉन्फ़िगर करें ",
-"will be used" => "उपयोग होगा",
"Database user" => "डेटाबेस उपयोगकर्ता",
"Database password" => "डेटाबेस पासवर्ड",
"Database name" => "डेटाबेस का नाम",
diff --git a/core/l10n/hr.php b/core/l10n/hr.php
index 248a56e4fa1..f85e4a5175f 100644
--- a/core/l10n/hr.php
+++ b/core/l10n/hr.php
@@ -78,7 +78,6 @@ $TRANSLATIONS = array(
"Password" => "Lozinka",
"Data folder" => "Mapa baze podataka",
"Configure the database" => "Konfiguriraj bazu podataka",
-"will be used" => "će se koristiti",
"Database user" => "Korisnik baze podataka",
"Database password" => "Lozinka baze podataka",
"Database name" => "Ime baze podataka",
diff --git a/core/l10n/hu_HU.php b/core/l10n/hu_HU.php
index 7ceb0b41641..d0c6fae6581 100644
--- a/core/l10n/hu_HU.php
+++ b/core/l10n/hu_HU.php
@@ -155,7 +155,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Tárolás és adatbázis",
"Data folder" => "Adatkönyvtár",
"Configure the database" => "Adatbázis konfigurálása",
-"will be used" => "adatbázist fogunk használni",
"Database user" => "Adatbázis felhasználónév",
"Database password" => "Adatbázis jelszó",
"Database name" => "Az adatbázis neve",
diff --git a/core/l10n/ia.php b/core/l10n/ia.php
index 6db312b0556..e2f32407e0d 100644
--- a/core/l10n/ia.php
+++ b/core/l10n/ia.php
@@ -125,7 +125,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Immagazinage & base de datos",
"Data folder" => "Dossier de datos",
"Configure the database" => "Configurar le base de datos",
-"will be used" => "essera usate",
"Database user" => "Usator de base de datos",
"Database password" => "Contrasigno de base de datos",
"Database name" => "Nomine de base de datos",
diff --git a/core/l10n/id.php b/core/l10n/id.php
index 29da84c8e5b..b69ea283de9 100644
--- a/core/l10n/id.php
+++ b/core/l10n/id.php
@@ -151,7 +151,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Penyimpanan & Basis data",
"Data folder" => "Folder data",
"Configure the database" => "Konfigurasikan basis data",
-"will be used" => "akan digunakan",
"Database user" => "Pengguna basis data",
"Database password" => "Sandi basis data",
"Database name" => "Nama basis data",
diff --git a/core/l10n/is.php b/core/l10n/is.php
index aa1aee6d290..e592352e599 100644
--- a/core/l10n/is.php
+++ b/core/l10n/is.php
@@ -92,7 +92,6 @@ $TRANSLATIONS = array(
"Password" => "Lykilorð",
"Data folder" => "Gagnamappa",
"Configure the database" => "Stilla gagnagrunn",
-"will be used" => "verður notað",
"Database user" => "Gagnagrunns notandi",
"Database password" => "Gagnagrunns lykilorð",
"Database name" => "Nafn gagnagrunns",
diff --git a/core/l10n/it.php b/core/l10n/it.php
index 9e5a30cbe64..3aa35741d49 100644
--- a/core/l10n/it.php
+++ b/core/l10n/it.php
@@ -155,7 +155,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Archiviazione e database",
"Data folder" => "Cartella dati",
"Configure the database" => "Configura il database",
-"will be used" => "sarà utilizzato",
"Database user" => "Utente del database",
"Database password" => "Password del database",
"Database name" => "Nome del database",
diff --git a/core/l10n/ja.php b/core/l10n/ja.php
index 187fe575e91..7c2c40dc509 100644
--- a/core/l10n/ja.php
+++ b/core/l10n/ja.php
@@ -155,7 +155,6 @@ $TRANSLATIONS = array(
"Storage & database" => "ストレージとデータベース",
"Data folder" => "データフォルダー",
"Configure the database" => "データベースを設定してください",
-"will be used" => "が使用されます",
"Database user" => "データベースのユーザー名",
"Database password" => "データベースのパスワード",
"Database name" => "データベース名",
diff --git a/core/l10n/ka_GE.php b/core/l10n/ka_GE.php
index c753ef4e1d5..7091d86b53f 100644
--- a/core/l10n/ka_GE.php
+++ b/core/l10n/ka_GE.php
@@ -96,7 +96,6 @@ $TRANSLATIONS = array(
"Password" => "პაროლი",
"Data folder" => "მონაცემთა საქაღალდე",
"Configure the database" => "მონაცემთა ბაზის კონფიგურირება",
-"will be used" => "გამოყენებული იქნება",
"Database user" => "მონაცემთა ბაზის მომხმარებელი",
"Database password" => "მონაცემთა ბაზის პაროლი",
"Database name" => "მონაცემთა ბაზის სახელი",
diff --git a/core/l10n/km.php b/core/l10n/km.php
index 0be6738284b..0b55a81a72c 100644
--- a/core/l10n/km.php
+++ b/core/l10n/km.php
@@ -101,7 +101,6 @@ $TRANSLATIONS = array(
"Storage & database" => "ឃ្លាំង​ផ្ទុក & មូលដ្ឋាន​ទិន្នន័យ",
"Data folder" => "ថត​ទិន្នន័យ",
"Configure the database" => "កំណត់​សណ្ឋាន​មូលដ្ឋាន​ទិន្នន័យ",
-"will be used" => "នឹង​ត្រូវ​បាន​ប្រើ",
"Database user" => "អ្នក​ប្រើ​មូលដ្ឋាន​ទិន្នន័យ",
"Database password" => "ពាក្យ​សម្ងាត់​មូលដ្ឋាន​ទិន្នន័យ",
"Database name" => "ឈ្មោះ​មូលដ្ឋាន​ទិន្នន័យ",
diff --git a/core/l10n/ko.php b/core/l10n/ko.php
index 7fd17d465be..3137ec9ed2a 100644
--- a/core/l10n/ko.php
+++ b/core/l10n/ko.php
@@ -146,7 +146,6 @@ $TRANSLATIONS = array(
"Storage & database" => "스토리지 & 데이터베이스",
"Data folder" => "데이터 폴더",
"Configure the database" => "데이터베이스 설정",
-"will be used" => "사용될 예정",
"Database user" => "데이터베이스 사용자",
"Database password" => "데이터베이스 암호",
"Database name" => "데이터베이스 이름",
diff --git a/core/l10n/lb.php b/core/l10n/lb.php
index 16b9ab5fe91..88891bf4571 100644
--- a/core/l10n/lb.php
+++ b/core/l10n/lb.php
@@ -120,7 +120,6 @@ $TRANSLATIONS = array(
"Password" => "Passwuert",
"Data folder" => "Daten-Dossier",
"Configure the database" => "D'Datebank konfiguréieren",
-"will be used" => "wärt benotzt ginn",
"Database user" => "Datebank-Benotzer",
"Database password" => "Datebank-Passwuert",
"Database name" => "Datebank Numm",
diff --git a/core/l10n/lt_LT.php b/core/l10n/lt_LT.php
index bde6285969f..81ff611ecf1 100644
--- a/core/l10n/lt_LT.php
+++ b/core/l10n/lt_LT.php
@@ -140,7 +140,6 @@ $TRANSLATIONS = array(
"Password" => "Slaptažodis",
"Data folder" => "Duomenų katalogas",
"Configure the database" => "Nustatyti duomenų bazę",
-"will be used" => "bus naudojama",
"Database user" => "Duomenų bazės vartotojas",
"Database password" => "Duomenų bazės slaptažodis",
"Database name" => "Duomenų bazės pavadinimas",
diff --git a/core/l10n/lv.php b/core/l10n/lv.php
index d395a8c9138..3b038b355fe 100644
--- a/core/l10n/lv.php
+++ b/core/l10n/lv.php
@@ -104,7 +104,6 @@ $TRANSLATIONS = array(
"Password" => "Parole",
"Data folder" => "Datu mape",
"Configure the database" => "Konfigurēt datubāzi",
-"will be used" => "tiks izmantots",
"Database user" => "Datubāzes lietotājs",
"Database password" => "Datubāzes parole",
"Database name" => "Datubāzes nosaukums",
diff --git a/core/l10n/mk.php b/core/l10n/mk.php
index a32b4e79236..d12ff0203b3 100644
--- a/core/l10n/mk.php
+++ b/core/l10n/mk.php
@@ -122,7 +122,6 @@ $TRANSLATIONS = array(
"Password" => "Лозинка",
"Data folder" => "Фолдер со податоци",
"Configure the database" => "Конфигурирај ја базата",
-"will be used" => "ќе биде користено",
"Database user" => "Корисник на база",
"Database password" => "Лозинка на база",
"Database name" => "Име на база",
diff --git a/core/l10n/ms_MY.php b/core/l10n/ms_MY.php
index b32888238c1..745e63402e9 100644
--- a/core/l10n/ms_MY.php
+++ b/core/l10n/ms_MY.php
@@ -54,7 +54,6 @@ $TRANSLATIONS = array(
"Password" => "Kata laluan",
"Data folder" => "Fail data",
"Configure the database" => "Konfigurasi pangkalan data",
-"will be used" => "akan digunakan",
"Database user" => "Nama pengguna pangkalan data",
"Database password" => "Kata laluan pangkalan data",
"Database name" => "Nama pangkalan data",
diff --git a/core/l10n/nb_NO.php b/core/l10n/nb_NO.php
index 3bed1b550a9..b714b739ce4 100644
--- a/core/l10n/nb_NO.php
+++ b/core/l10n/nb_NO.php
@@ -158,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Lagring og database",
"Data folder" => "Datamappe",
"Configure the database" => "Konfigurer databasen",
-"will be used" => "vil bli brukt",
"Database user" => "Databasebruker",
"Database password" => "Databasepassord",
"Database name" => "Databasenavn",
diff --git a/core/l10n/nl.php b/core/l10n/nl.php
index 90b5a53817a..1a5ee85a14e 100644
--- a/core/l10n/nl.php
+++ b/core/l10n/nl.php
@@ -158,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Opslag & database",
"Data folder" => "Gegevensmap",
"Configure the database" => "Configureer de database",
-"will be used" => "zal gebruikt worden",
"Database user" => "Gebruiker database",
"Database password" => "Wachtwoord database",
"Database name" => "Naam database",
diff --git a/core/l10n/nn_NO.php b/core/l10n/nn_NO.php
index 042c3cebd08..cc61caf3a38 100644
--- a/core/l10n/nn_NO.php
+++ b/core/l10n/nn_NO.php
@@ -121,7 +121,6 @@ $TRANSLATIONS = array(
"Password" => "Passord",
"Data folder" => "Datamappe",
"Configure the database" => "Set opp databasen",
-"will be used" => "vil verta nytta",
"Database user" => "Databasebrukar",
"Database password" => "Databasepassord",
"Database name" => "Databasenamn",
diff --git a/core/l10n/oc.php b/core/l10n/oc.php
index f4dc0a01263..4ef1442012d 100644
--- a/core/l10n/oc.php
+++ b/core/l10n/oc.php
@@ -80,7 +80,6 @@ $TRANSLATIONS = array(
"Password" => "Senhal",
"Data folder" => "Dorsièr de donadas",
"Configure the database" => "Configura la basa de donadas",
-"will be used" => "serà utilizat",
"Database user" => "Usancièr de la basa de donadas",
"Database password" => "Senhal de la basa de donadas",
"Database name" => "Nom de la basa de donadas",
diff --git a/core/l10n/pl.php b/core/l10n/pl.php
index fd67d8dc7c6..028c82008d2 100644
--- a/core/l10n/pl.php
+++ b/core/l10n/pl.php
@@ -5,6 +5,7 @@ $TRANSLATIONS = array(
"Turned on maintenance mode" => "Włączony tryb konserwacji",
"Turned off maintenance mode" => "Wyłączony tryb konserwacji",
"Updated database" => "Zaktualizuj bazę",
+"Disabled incompatible apps: %s" => "Wyłączone niekompatybilne aplikacja: %s",
"No image or file provided" => "Brak obrazu lub pliku dostarczonego",
"Unknown filetype" => "Nieznany typ pliku",
"Invalid image" => "Nieprawidłowe zdjęcie",
@@ -108,7 +109,9 @@ $TRANSLATIONS = array(
"Edit tags" => "Edytuj tagi",
"Error loading dialog template: {error}" => "Błąd podczas ładowania szablonu dialogu: {error}",
"No tags selected for deletion." => "Nie zaznaczono tagów do usunięcia.",
+"Updating {productName} to version {version}, this may take a while." => "Aktualizuję {productName} do wersji {version}, to może chwilę potrwać.",
"Please reload the page." => "Proszę przeładować stronę",
+"The update was unsuccessful." => "Aktualizacja nie powiodła się.",
"The update was successful. Redirecting you to ownCloud now." => "Aktualizacji zakończyła się powodzeniem. Przekierowuję do ownCloud.",
"%s password reset" => "%s reset hasła",
"A problem has occurred whilst sending the email, please contact your administrator." => "Pojawił się problem podczas wysyłania wiadomości email, skontaktuj się z administratorem",
@@ -155,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Zasoby dysku & baza danych",
"Data folder" => "Katalog danych",
"Configure the database" => "Skonfiguruj bazę danych",
-"will be used" => "zostanie użyte",
"Database user" => "Użytkownik bazy danych",
"Database password" => "Hasło do bazy danych",
"Database name" => "Nazwa bazy danych",
@@ -180,6 +182,11 @@ $TRANSLATIONS = array(
"This means only administrators can use the instance." => "To oznacza, że tylko administratorzy mogą w tej chwili używać aplikacji.",
"Contact your system administrator if this message persists or appeared unexpectedly." => "Skontaktuj się z administratorem, jeśli ten komunikat pojawił się nieoczekiwanie lub wyświetla się ciągle.",
"Thank you for your patience." => "Dziękuję za cierpliwość.",
+"%s will be updated to version %s." => "%s zostanie zaktualizowane do wersji %s.",
+"The following apps will be disabled:" => "Następujące aplikacje zostaną zablokowane:",
+"The theme %s has been disabled." => "Motyw %s został wyłączony.",
+"Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Proszę się upewnić, że baza danych, folder konfiguracji oraz folder danych zostały zarchiwizowane przed przejściem dalej.",
+"Start update" => "Rozpocznij aktualizację",
"This ownCloud instance is currently being updated, which may take a while." => "Ta instalacja ownCloud jest w tej chwili aktualizowana, co może chwilę potrwać",
"Please reload this page after a short time to continue using ownCloud." => "Proszę przeładować tę stronę za chwilę, aby kontynuować pracę w ownCloud"
);
diff --git a/core/l10n/pt_BR.php b/core/l10n/pt_BR.php
index 2ef3ce47299..a139b22d9e4 100644
--- a/core/l10n/pt_BR.php
+++ b/core/l10n/pt_BR.php
@@ -158,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Armazenamento & banco de dados",
"Data folder" => "Pasta de dados",
"Configure the database" => "Configurar o banco de dados",
-"will be used" => "será usado",
"Database user" => "Usuário do banco de dados",
"Database password" => "Senha do banco de dados",
"Database name" => "Nome do banco de dados",
diff --git a/core/l10n/pt_PT.php b/core/l10n/pt_PT.php
index 82b25620e17..e78bfe1617f 100644
--- a/core/l10n/pt_PT.php
+++ b/core/l10n/pt_PT.php
@@ -155,7 +155,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Armazenamento e base de dados",
"Data folder" => "Pasta de dados",
"Configure the database" => "Configure a base de dados",
-"will be used" => "vai ser usada",
"Database user" => "Utilizador da base de dados",
"Database password" => "Password da base de dados",
"Database name" => "Nome da base de dados",
diff --git a/core/l10n/ro.php b/core/l10n/ro.php
index e8d6fac3338..3816625772c 100644
--- a/core/l10n/ro.php
+++ b/core/l10n/ro.php
@@ -111,7 +111,6 @@ $TRANSLATIONS = array(
"Password" => "Parolă",
"Data folder" => "Director date",
"Configure the database" => "Configurează baza de date",
-"will be used" => "vor fi folosite",
"Database user" => "Utilizatorul bazei de date",
"Database password" => "Parola bazei de date",
"Database name" => "Numele bazei de date",
diff --git a/core/l10n/ru.php b/core/l10n/ru.php
index ce1e14993e7..4fcdaeec185 100644
--- a/core/l10n/ru.php
+++ b/core/l10n/ru.php
@@ -155,7 +155,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Система хранения данных & база данных",
"Data folder" => "Директория с данными",
"Configure the database" => "Настройка базы данных",
-"will be used" => "будет использовано",
"Database user" => "Пользователь базы данных",
"Database password" => "Пароль базы данных",
"Database name" => "Название базы данных",
diff --git a/core/l10n/si_LK.php b/core/l10n/si_LK.php
index 1ce41214e91..cd9d1011487 100644
--- a/core/l10n/si_LK.php
+++ b/core/l10n/si_LK.php
@@ -75,7 +75,6 @@ $TRANSLATIONS = array(
"Password" => "මුර පදය",
"Data folder" => "දත්ත ෆෝල්ඩරය",
"Configure the database" => "දත්ත සමුදාය හැඩගැසීම",
-"will be used" => "භාවිතා වනු ඇත",
"Database user" => "දත්තගබඩා භාවිතාකරු",
"Database password" => "දත්තගබඩාවේ මුරපදය",
"Database name" => "දත්තගබඩාවේ නම",
diff --git a/core/l10n/sk_SK.php b/core/l10n/sk_SK.php
index 9abcce3d3ae..68fd163e871 100644
--- a/core/l10n/sk_SK.php
+++ b/core/l10n/sk_SK.php
@@ -152,7 +152,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Úložislo & databáza",
"Data folder" => "Priečinok dát",
"Configure the database" => "Nastaviť databázu",
-"will be used" => "bude použité",
"Database user" => "Používateľ databázy",
"Database password" => "Heslo databázy",
"Database name" => "Meno databázy",
diff --git a/core/l10n/sl.php b/core/l10n/sl.php
index 02ed13077a8..f0b09ca3a17 100644
--- a/core/l10n/sl.php
+++ b/core/l10n/sl.php
@@ -152,7 +152,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Shramba in podatkovna zbirka",
"Data folder" => "Podatkovna mapa",
"Configure the database" => "Nastavi podatkovno zbirko",
-"will be used" => "bo uporabljen",
"Database user" => "Uporabnik podatkovne zbirke",
"Database password" => "Geslo podatkovne zbirke",
"Database name" => "Ime podatkovne zbirke",
diff --git a/core/l10n/sq.php b/core/l10n/sq.php
index 9891f36c7aa..3fce8e9d84a 100644
--- a/core/l10n/sq.php
+++ b/core/l10n/sq.php
@@ -105,7 +105,6 @@ $TRANSLATIONS = array(
"Password" => "Kodi",
"Data folder" => "Emri i dosjes",
"Configure the database" => "Konfiguro database-in",
-"will be used" => "do të përdoret",
"Database user" => "Përdoruesi i database-it",
"Database password" => "Kodi i database-it",
"Database name" => "Emri i database-it",
diff --git a/core/l10n/sr.php b/core/l10n/sr.php
index 0030be353aa..e41bd5ae717 100644
--- a/core/l10n/sr.php
+++ b/core/l10n/sr.php
@@ -90,7 +90,6 @@ $TRANSLATIONS = array(
"Password" => "Лозинка",
"Data folder" => "Фацикла података",
"Configure the database" => "Подешавање базе",
-"will be used" => "ће бити коришћен",
"Database user" => "Корисник базе",
"Database password" => "Лозинка базе",
"Database name" => "Име базе",
diff --git a/core/l10n/sr@latin.php b/core/l10n/sr@latin.php
index 32e9479fb3f..40c37b5b079 100644
--- a/core/l10n/sr@latin.php
+++ b/core/l10n/sr@latin.php
@@ -92,7 +92,6 @@ $TRANSLATIONS = array(
"Password" => "Lozinka",
"Data folder" => "Fascikla podataka",
"Configure the database" => "Podešavanje baze",
-"will be used" => "će biti korišćen",
"Database user" => "Korisnik baze",
"Database password" => "Lozinka baze",
"Database name" => "Ime baze",
diff --git a/core/l10n/sv.php b/core/l10n/sv.php
index 22348aeda3d..d965a5618c0 100644
--- a/core/l10n/sv.php
+++ b/core/l10n/sv.php
@@ -158,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Lagring & databas",
"Data folder" => "Datamapp",
"Configure the database" => "Konfigurera databasen",
-"will be used" => "kommer att användas",
"Database user" => "Databasanvändare",
"Database password" => "Lösenord till databasen",
"Database name" => "Databasnamn",
diff --git a/core/l10n/ta_LK.php b/core/l10n/ta_LK.php
index 53c8cb13333..2e0db9e973d 100644
--- a/core/l10n/ta_LK.php
+++ b/core/l10n/ta_LK.php
@@ -87,7 +87,6 @@ $TRANSLATIONS = array(
"Password" => "கடவுச்சொல்",
"Data folder" => "தரவு கோப்புறை",
"Configure the database" => "தரவுத்தளத்தை தகவமைக்க",
-"will be used" => "பயன்படுத்தப்படும்",
"Database user" => "தரவுத்தள பயனாளர்",
"Database password" => "தரவுத்தள கடவுச்சொல்",
"Database name" => "தரவுத்தள பெயர்",
diff --git a/core/l10n/th_TH.php b/core/l10n/th_TH.php
index 21bc6a7067e..7b7396b7ab2 100644
--- a/core/l10n/th_TH.php
+++ b/core/l10n/th_TH.php
@@ -94,7 +94,6 @@ $TRANSLATIONS = array(
"Password" => "รหัสผ่าน",
"Data folder" => "โฟลเดอร์เก็บข้อมูล",
"Configure the database" => "กำหนดค่าฐานข้อมูล",
-"will be used" => "จะถูกใช้",
"Database user" => "ชื่อผู้ใช้งานฐานข้อมูล",
"Database password" => "รหัสผ่านฐานข้อมูล",
"Database name" => "ชื่อฐานข้อมูล",
diff --git a/core/l10n/tr.php b/core/l10n/tr.php
index 0ccc009ef71..c13420e87c0 100644
--- a/core/l10n/tr.php
+++ b/core/l10n/tr.php
@@ -158,7 +158,6 @@ $TRANSLATIONS = array(
"Storage & database" => "Depolama ve veritabanı",
"Data folder" => "Veri klasörü",
"Configure the database" => "Veritabanını yapılandır",
-"will be used" => "kullanılacak",
"Database user" => "Veritabanı kullanıcı adı",
"Database password" => "Veritabanı parolası",
"Database name" => "Veritabanı adı",
diff --git a/core/l10n/uk.php b/core/l10n/uk.php
index 490140940cf..d3017f35a2d 100644
--- a/core/l10n/uk.php
+++ b/core/l10n/uk.php
@@ -147,7 +147,6 @@ $TRANSLATIONS = array(
"Password" => "Пароль",
"Data folder" => "Каталог даних",
"Configure the database" => "Налаштування бази даних",
-"will be used" => "буде використано",
"Database user" => "Користувач бази даних",
"Database password" => "Пароль для бази даних",
"Database name" => "Назва бази даних",
diff --git a/core/l10n/ur_PK.php b/core/l10n/ur_PK.php
index cdec1ace288..25b80daf777 100644
--- a/core/l10n/ur_PK.php
+++ b/core/l10n/ur_PK.php
@@ -132,7 +132,6 @@ $TRANSLATIONS = array(
"Storage & database" => "ذخیرہ اور ڈیٹا بیس",
"Data folder" => "ڈیٹا فولڈر",
"Configure the database" => "ڈیٹا بیس کونفگر کریں",
-"will be used" => "استعمال ہو گا",
"Database user" => "ڈیٹابیس یوزر",
"Database password" => "ڈیٹابیس پاسورڈ",
"Database name" => "ڈیٹابیس کا نام",
diff --git a/core/l10n/vi.php b/core/l10n/vi.php
index fc00a5573e4..7aca8549fad 100644
--- a/core/l10n/vi.php
+++ b/core/l10n/vi.php
@@ -139,7 +139,6 @@ $TRANSLATIONS = array(
"Password" => "Mật khẩu",
"Data folder" => "Thư mục dữ liệu",
"Configure the database" => "Cấu hình cơ sở dữ liệu",
-"will be used" => "được sử dụng",
"Database user" => "Người dùng cơ sở dữ liệu",
"Database password" => "Mật khẩu cơ sở dữ liệu",
"Database name" => "Tên cơ sở dữ liệu",
diff --git a/core/l10n/zh_CN.php b/core/l10n/zh_CN.php
index f7ea54359cf..d30dc0f0fbd 100644
--- a/core/l10n/zh_CN.php
+++ b/core/l10n/zh_CN.php
@@ -155,7 +155,6 @@ $TRANSLATIONS = array(
"Storage & database" => "存储 & 数据库",
"Data folder" => "数据目录",
"Configure the database" => "配置数据库",
-"will be used" => "将被使用",
"Database user" => "数据库用户",
"Database password" => "数据库密码",
"Database name" => "数据库名",
diff --git a/core/l10n/zh_HK.php b/core/l10n/zh_HK.php
index e47d3a8d400..8b210e68851 100644
--- a/core/l10n/zh_HK.php
+++ b/core/l10n/zh_HK.php
@@ -73,7 +73,6 @@ $TRANSLATIONS = array(
"Create an <strong>admin account</strong>" => "建立管理員帳戶",
"Password" => "密碼",
"Configure the database" => "設定資料庫",
-"will be used" => "將被使用",
"Database user" => "資料庫帳戶",
"Database password" => "資料庫密碼",
"Database name" => "資料庫名稱",
diff --git a/core/l10n/zh_TW.php b/core/l10n/zh_TW.php
index 833c295679a..38503f2a09c 100644
--- a/core/l10n/zh_TW.php
+++ b/core/l10n/zh_TW.php
@@ -143,7 +143,6 @@ $TRANSLATIONS = array(
"Password" => "密碼",
"Data folder" => "資料儲存位置",
"Configure the database" => "設定資料庫",
-"will be used" => "將會使用",
"Database user" => "資料庫使用者",
"Database password" => "資料庫密碼",
"Database name" => "資料庫名稱",
diff --git a/core/lostpassword/templates/lostpassword.php b/core/lostpassword/templates/lostpassword.php
index d0fed38ee27..fdfa32344ec 100644
--- a/core/lostpassword/templates/lostpassword.php
+++ b/core/lostpassword/templates/lostpassword.php
@@ -16,8 +16,10 @@ OCP\Util::addStyle('lostpassword', 'lostpassword');
</p></div>
<?php endif; ?>
<div class="update"><?php print_unescaped($l->t('You will receive a link to reset your password via Email.')); ?></div>
- <p class="infield">
- <input type="text" name="user" id="user" placeholder="" value="" autocomplete="off" required autofocus />
+ <p>
+ <input type="text" name="user" id="user"
+ placeholder="<?php print_unescaped($l->t( 'Username' )); ?>"
+ value="" autocomplete="off" required autofocus />
<label for="user" class="infield"><?php print_unescaped($l->t( 'Username' )); ?></label>
<img class="svg" src="<?php print_unescaped(image_path('', 'actions/user.svg')); ?>" alt=""/>
<?php if ($_['isEncrypted']): ?>
diff --git a/core/lostpassword/templates/resetpassword.php b/core/lostpassword/templates/resetpassword.php
index 881455f5a9d..11dce9f112b 100644
--- a/core/lostpassword/templates/resetpassword.php
+++ b/core/lostpassword/templates/resetpassword.php
@@ -4,9 +4,11 @@
<h1><?php p($l->t('Your password was reset')); ?></h1>
<p><a href="<?php print_unescaped(OC_Helper::linkTo('', 'index.php')) ?>/"><?php p($l->t('To login page')); ?></a></p>
<?php else: ?>
- <p class="infield">
+ <p>
<label for="password" class="infield"><?php p($l->t('New password')); ?></label>
- <input type="password" name="password" id="password" value="" required />
+ <input type="password" name="password" id="password"
+ placeholder="<?php p($l->t('New password')); ?>"
+ value="" required />
</p>
<input type="submit" id="submit" value="<?php p($l->t('Reset password')); ?>" />
<?php endif; ?>
diff --git a/core/templates/installation.php b/core/templates/installation.php
index 6d73fb431f5..f934e3a86c2 100644
--- a/core/templates/installation.php
+++ b/core/templates/installation.php
@@ -46,15 +46,17 @@
<?php endif; ?>
<fieldset id="adminaccount">
<legend><?php print_unescaped($l->t( 'Create an <strong>admin account</strong>' )); ?></legend>
- <p class="infield grouptop">
- <input type="text" name="adminlogin" id="adminlogin" placeholder=""
+ <p class="grouptop">
+ <input type="text" name="adminlogin" id="adminlogin"
+ placeholder="<?php p($l->t( 'Username' )); ?>"
value="<?php p($_['adminlogin']); ?>"
autocomplete="off" autocapitalize="off" autocorrect="off" autofocus required />
<label for="adminlogin" class="infield"><?php p($l->t( 'Username' )); ?></label>
<img class="svg" src="<?php p(image_path('', 'actions/user.svg')); ?>" alt="" />
</p>
- <p class="infield groupbottom">
- <input type="password" name="adminpass" data-typetoggle="#show" id="adminpass" placeholder=""
+ <p class="groupbottom">
+ <input type="password" name="adminpass" data-typetoggle="#show" id="adminpass"
+ placeholder="<?php p($l->t( 'Password' )); ?>"
value="<?php p($_['adminpass']); ?>"
autocomplete="off" autocapitalize="off" autocorrect="off" required />
<label for="adminpass" class="infield"><?php p($l->t( 'Password' )); ?></label>
@@ -105,40 +107,45 @@
<?php if($hasOtherDB): ?>
<fieldset id='databaseField'>
<div id="use_other_db">
- <p class="infield grouptop">
+ <p class="grouptop">
<label for="dbuser" class="infield"><?php p($l->t( 'Database user' )); ?></label>
- <input type="text" name="dbuser" id="dbuser" placeholder=""
+ <input type="text" name="dbuser" id="dbuser"
+ placeholder="<?php p($l->t( 'Database user' )); ?>"
value="<?php p($_['dbuser']); ?>"
autocomplete="off" autocapitalize="off" autocorrect="off" />
</p>
- <p class="infield groupmiddle">
- <input type="password" name="dbpass" id="dbpass" placeholder="" data-typetoggle="#dbpassword"
+ <p class="groupmiddle">
+ <input type="password" name="dbpass" id="dbpass" data-typetoggle="#dbpassword"
+ placeholder="<?php p($l->t( 'Database password' )); ?>"
value="<?php p($_['dbpass']); ?>"
autocomplete="off" autocapitalize="off" autocorrect="off" />
<label for="dbpass" class="infield"><?php p($l->t( 'Database password' )); ?></label>
<input type="checkbox" id="dbpassword" name="dbpassword" />
<label for="dbpassword"></label>
</p>
- <p class="infield groupmiddle">
+ <p class="groupmiddle">
<label for="dbname" class="infield"><?php p($l->t( 'Database name' )); ?></label>
- <input type="text" name="dbname" id="dbname" placeholder=""
+ <input type="text" name="dbname" id="dbname"
+ placeholder="<?php p($l->t( 'Database name' )); ?>"
value="<?php p($_['dbname']); ?>"
autocomplete="off" autocapitalize="off" autocorrect="off"
pattern="[0-9a-zA-Z$_-]+" />
</p>
<?php if($_['hasOracle']): ?>
<div id="use_oracle_db">
- <p class="infield groupmiddle">
+ <p class="groupmiddle">
<label for="dbtablespace" class="infield"><?php p($l->t( 'Database tablespace' )); ?></label>
- <input type="text" name="dbtablespace" id="dbtablespace" placeholder=""
+ <input type="text" name="dbtablespace" id="dbtablespace"
+ placeholder="<?php p($l->t( 'Database tablespace' )); ?>"
value="<?php p($_['dbtablespace']); ?>"
autocomplete="off" autocapitalize="off" autocorrect="off" />
</p>
</div>
<?php endif; ?>
- <p class="infield groupbottom">
+ <p class="groupbottom">
<label for="dbhost" class="infield"><?php p($l->t( 'Database host' )); ?></label>
- <input type="text" name="dbhost" id="dbhost" placeholder=""
+ <input type="text" name="dbhost" id="dbhost"
+ placeholder="<?php p($l->t( 'Database host' )); ?>"
value="<?php p($_['dbhost']); ?>"
autocomplete="off" autocapitalize="off" autocorrect="off" />
</p>
diff --git a/core/templates/layout.base.php b/core/templates/layout.base.php
index c519388fa3b..b99f603fe0b 100644
--- a/core/templates/layout.base.php
+++ b/core/templates/layout.base.php
@@ -1,10 +1,10 @@
<!DOCTYPE html>
-<!--[if lt IE 7]><html class="ng-csp ie ie6 lte9 lte8 lte7"><![endif]-->
-<!--[if IE 7]><html class="ng-csp ie ie7 lte9 lte8 lte7"><![endif]-->
-<!--[if IE 8]><html class="ng-csp ie ie8 lte9 lte8"><![endif]-->
-<!--[if IE 9]><html class="ng-csp ie ie9 lte9"><![endif]-->
-<!--[if gt IE 9]><html class="ng-csp ie"><![endif]-->
-<!--[if !IE]><!--><html class="ng-csp"><!--<![endif]-->
+<!--[if lt IE 7]><html class="ng-csp ie ie6 lte9 lte8 lte7" data-placeholder-focus="false"><![endif]-->
+<!--[if IE 7]><html class="ng-csp ie ie7 lte9 lte8 lte7" data-placeholder-focus="false"><![endif]-->
+<!--[if IE 8]><html class="ng-csp ie ie8 lte9 lte8" data-placeholder-focus="false"><![endif]-->
+<!--[if IE 9]><html class="ng-csp ie ie9 lte9" data-placeholder-focus="false"><![endif]-->
+<!--[if gt IE 9]><html class="ng-csp ie" data-placeholder-focus="false"><![endif]-->
+<!--[if !IE]><!--><html class="ng-csp" data-placeholder-focus="false"><!--<![endif]-->
<head>
<title>
diff --git a/core/templates/layout.guest.php b/core/templates/layout.guest.php
index d38dc24d9ce..c4b69a950a0 100644
--- a/core/templates/layout.guest.php
+++ b/core/templates/layout.guest.php
@@ -1,10 +1,10 @@
<!DOCTYPE html>
-<!--[if lt IE 7]><html class="ng-csp ie ie6 lte9 lte8 lte7"><![endif]-->
-<!--[if IE 7]><html class="ng-csp ie ie7 lte9 lte8 lte7"><![endif]-->
-<!--[if IE 8]><html class="ng-csp ie ie8 lte9 lte8"><![endif]-->
-<!--[if IE 9]><html class="ng-csp ie ie9 lte9"><![endif]-->
-<!--[if gt IE 9]><html class="ng-csp ie"><![endif]-->
-<!--[if !IE]><!--><html class="ng-csp"><!--<![endif]-->
+<!--[if lt IE 7]><html class="ng-csp ie ie6 lte9 lte8 lte7" data-placeholder-focus="false"><![endif]-->
+<!--[if IE 7]><html class="ng-csp ie ie7 lte9 lte8 lte7" data-placeholder-focus="false"><![endif]-->
+<!--[if IE 8]><html class="ng-csp ie ie8 lte9 lte8" data-placeholder-focus="false"><![endif]-->
+<!--[if IE 9]><html class="ng-csp ie ie9 lte9" data-placeholder-focus="false"><![endif]-->
+<!--[if gt IE 9]><html class="ng-csp ie" data-placeholder-focus="false"><![endif]-->
+<!--[if !IE]><!--><html class="ng-csp" data-placeholder-focus="false"><!--<![endif]-->
<head data-requesttoken="<?php p($_['requesttoken']); ?>">
<title>
diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php
index b0ae8637acc..d551c53521b 100644
--- a/core/templates/layout.user.php
+++ b/core/templates/layout.user.php
@@ -1,10 +1,10 @@
<!DOCTYPE html>
-<!--[if lt IE 7]><html class="ng-csp ie ie6 lte9 lte8 lte7"><![endif]-->
-<!--[if IE 7]><html class="ng-csp ie ie7 lte9 lte8 lte7"><![endif]-->
-<!--[if IE 8]><html class="ng-csp ie ie8 lte9 lte8"><![endif]-->
-<!--[if IE 9]><html class="ng-csp ie ie9 lte9"><![endif]-->
-<!--[if gt IE 9]><html class="ng-csp ie"><![endif]-->
-<!--[if !IE]><!--><html class="ng-csp"><!--<![endif]-->
+<!--[if lt IE 7]><html class="ng-csp ie ie6 lte9 lte8 lte7" data-placeholder-focus="false"><![endif]-->
+<!--[if IE 7]><html class="ng-csp ie ie7 lte9 lte8 lte7" data-placeholder-focus="false"><![endif]-->
+<!--[if IE 8]><html class="ng-csp ie ie8 lte9 lte8" data-placeholder-focus="false"><![endif]-->
+<!--[if IE 9]><html class="ng-csp ie ie9 lte9" data-placeholder-focus="false"><![endif]-->
+<!--[if gt IE 9]><html class="ng-csp ie" data-placeholder-focus="false"><![endif]-->
+<!--[if !IE]><!--><html class="ng-csp" data-placeholder-focus="false"><!--<![endif]-->
<head data-user="<?php p($_['user_uid']); ?>" data-requesttoken="<?php p($_['requesttoken']); ?>">
<title>
diff --git a/core/templates/login.php b/core/templates/login.php
index 0f25f853b02..6af3d769690 100644
--- a/core/templates/login.php
+++ b/core/templates/login.php
@@ -26,19 +26,21 @@
<!-- the following div ensures that the spinner is always inside the #message div -->
<div style="clear: both;"></div>
</p>
- <p class="infield grouptop">
- <input type="text" name="user" id="user" placeholder=""
- value="<?php p($_['username']); ?>"
- <?php p($_['user_autofocus'] ? 'autofocus' : ''); ?>
- autocomplete="on" autocapitalize="off" autocorrect="off" required />
+ <p class="grouptop">
+ <input type="text" name="user" id="user"
+ placeholder="<?php p($l->t('Username')); ?>"
+ value="<?php p($_['username']); ?>"
+ <?php p($_['user_autofocus'] ? 'autofocus' : ''); ?>
+ autocomplete="on" autocapitalize="off" autocorrect="off" required />
<label for="user" class="infield"><?php p($l->t('Username')); ?></label>
<img class="svg" src="<?php print_unescaped(image_path('', 'actions/user.svg')); ?>" alt=""/>
</p>
- <p class="infield groupbottom">
- <input type="password" name="password" id="password" value="" placeholder=""
- <?php p($_['user_autofocus'] ? '' : 'autofocus'); ?>
- autocomplete="on" autocapitalize="off" autocorrect="off" required />
+ <p class="groupbottom">
+ <input type="password" name="password" id="password" value=""
+ placeholder="<?php p($l->t('Password')); ?>"
+ <?php p($_['user_autofocus'] ? '' : 'autofocus'); ?>
+ autocomplete="on" autocapitalize="off" autocorrect="off" required />
<label for="password" class="infield"><?php p($l->t('Password')); ?></label>
<img class="svg" id="password-icon" src="<?php print_unescaped(image_path('', 'actions/password.svg')); ?>" alt=""/>
</p>